aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/canvas/canvas_paint_thread.rs10
-rw-r--r--components/canvas/webgl_paint_thread.rs12
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>) {