From 8f73d5a25af9648761f12276e6fece97c1cffbd6 Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Sat, 12 Oct 2019 15:46:35 -0700 Subject: [PATCH] Release lock while rendering. --- rtiow/src/renderer.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rtiow/src/renderer.rs b/rtiow/src/renderer.rs index b43d66e..2088976 100644 --- a/rtiow/src/renderer.rs +++ b/rtiow/src/renderer.rs @@ -263,17 +263,20 @@ fn render_worker( output_chan: &SyncSender, ) { 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 }); }