diff options
Diffstat (limited to 'components/canvas/webgl_paint_thread.rs')
-rw-r--r-- | components/canvas/webgl_paint_thread.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/components/canvas/webgl_paint_thread.rs b/components/canvas/webgl_paint_thread.rs index 7558bc765cc..084ce49d491 100644 --- a/components/canvas/webgl_paint_thread.rs +++ b/components/canvas/webgl_paint_thread.rs @@ -187,10 +187,8 @@ impl WebGLPaintThread { /// sender for it. pub fn start(size: Size2D<i32>, attrs: GLContextAttributes) -> Result<(IpcSender<CanvasMsg>, Sender<CanvasMsg>), &'static str> { - let (out_of_process_chan, out_of_process_port) = ipc::channel::<CanvasMsg>().unwrap(); let (in_process_chan, in_process_port) = channel(); let (result_chan, result_port) = channel(); - ROUTER.route_ipc_receiver_to_mpsc_sender(out_of_process_port, in_process_chan.clone()); spawn_named("WebGLThread".to_owned(), move || { let mut painter = match WebGLPaintThread::new(size, attrs) { Ok(thread) => { @@ -230,7 +228,11 @@ impl WebGLPaintThread { } }); - result_port.recv().unwrap().map(|_| (out_of_process_chan, in_process_chan)) + result_port.recv().unwrap().map(|_| { + let (out_of_process_chan, out_of_process_port) = ipc::channel::<CanvasMsg>().unwrap(); + ROUTER.route_ipc_receiver_to_mpsc_sender(out_of_process_port, in_process_chan.clone()); + (out_of_process_chan, in_process_chan) + }) } #[inline] |