Release lock while rendering.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Bill Thiede 2019-10-12 15:46:35 -07:00
parent 7f28a321e3
commit 8f73d5a25a

View File

@ -263,17 +263,20 @@ fn render_worker(
output_chan: &SyncSender<Response>,
) {
loop {
match input_chan.lock().unwrap().recv() {
let job = { input_chan.lock().unwrap().recv() };
match job {
Err(err) => {
info!("Shutting down render_worker {}: {}", tid, err);
return;
}
Ok(req) => match req {
Request::Line { width, y } => {
trace!("tid {} width {} y {}", tid, width, y);
let pixels = (0..width).map(|x| render_pixel(scene, x, y)).collect();
output_chan.send(Response::Line { width, y, pixels });
}
Request::Pixel { x, y } => {
trace!("tid {} x {} y {}", tid, x, y);
let pixel = render_pixel(scene, x, y);
output_chan.send(Response::Pixel { x, y, pixel });
}