diff options
-rw-r--r-- | components/canvas/canvas_paint_thread.rs | 10 | ||||
-rw-r--r-- | components/canvas/webgl_paint_thread.rs | 12 |
2 files changed, 7 insertions, 15 deletions
diff --git a/components/canvas/canvas_paint_thread.rs b/components/canvas/canvas_paint_thread.rs index ceaee808569..390eee3cae4 100644 --- a/components/canvas/canvas_paint_thread.rs +++ b/components/canvas/canvas_paint_thread.rs @@ -14,12 +14,10 @@ use euclid::size::Size2D; use gfx_traits::color; use ipc_channel::ipc::IpcSharedMemory; use ipc_channel::ipc::{self, IpcSender}; -use ipc_channel::router::ROUTER; use num::ToPrimitive; use premultiplytable::PREMULTIPLY_TABLE; use std::borrow::ToOwned; use std::mem; -use std::sync::mpsc::channel; use util::opts; use util::thread::spawn_named; use util::vec::byte_swap; @@ -127,13 +125,11 @@ impl<'a> CanvasPaintThread<'a> { -> IpcSender<CanvasMsg> { // TODO(pcwalton): Ask the pipeline to create this for us instead of spawning it directly. // This will be needed for multiprocess Servo. - let (out_of_process_chan, out_of_process_port) = ipc::channel::<CanvasMsg>().unwrap(); - let (in_process_chan, in_process_port) = channel(); - ROUTER.route_ipc_receiver_to_mpsc_sender(out_of_process_port, in_process_chan); + let (sender, receiver) = ipc::channel::<CanvasMsg>().unwrap(); spawn_named("CanvasThread".to_owned(), move || { let mut painter = CanvasPaintThread::new(size, webrender_api_sender); loop { - let msg = in_process_port.recv(); + let msg = receiver.recv(); match msg.unwrap() { CanvasMsg::Canvas2d(message) => { match message { @@ -209,7 +205,7 @@ impl<'a> CanvasPaintThread<'a> { } }); - out_of_process_chan + sender } fn save_context_state(&mut self) { diff --git a/components/canvas/webgl_paint_thread.rs b/components/canvas/webgl_paint_thread.rs index 85f03e758ba..652a11b9332 100644 --- a/components/canvas/webgl_paint_thread.rs +++ b/components/canvas/webgl_paint_thread.rs @@ -6,7 +6,6 @@ use canvas_traits::{CanvasCommonMsg, CanvasMsg, CanvasPixelData, CanvasData, Can use euclid::size::Size2D; use gleam::gl; use ipc_channel::ipc::{self, IpcSender, IpcSharedMemory}; -use ipc_channel::router::ROUTER; use offscreen_gl_context::{ColorAttachmentType, GLContext, GLContextAttributes, NativeGLContext}; use std::borrow::ToOwned; use std::sync::mpsc::channel; @@ -61,7 +60,7 @@ impl WebGLPaintThread { attrs: GLContextAttributes, webrender_api_sender: Option<webrender_traits::RenderApiSender>) -> Result<IpcSender<CanvasMsg>, String> { - let (in_process_chan, in_process_port) = channel(); + let (sender, receiver) = ipc::channel::<CanvasMsg>().unwrap(); let (result_chan, result_port) = channel(); spawn_named("WebGLThread".to_owned(), move || { let mut painter = match WebGLPaintThread::new(size, attrs, webrender_api_sender) { @@ -76,7 +75,7 @@ impl WebGLPaintThread { }; painter.init(); loop { - match in_process_port.recv().unwrap() { + match receiver.recv().unwrap() { CanvasMsg::WebGL(message) => painter.handle_webgl_message(message), CanvasMsg::Common(message) => { match message { @@ -96,11 +95,8 @@ impl WebGLPaintThread { } }); - 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); - out_of_process_chan - }) + try!(result_port.recv().unwrap()); + Ok(sender) } fn send_data(&mut self, chan: IpcSender<CanvasData>) { |