diff --git a/components/constellation/pipeline.rs b/components/constellation/pipeline.rs index a8bdb168e5f..0d92cf8baa2 100644 --- a/components/constellation/pipeline.rs +++ b/components/constellation/pipeline.rs @@ -55,7 +55,6 @@ pub struct Pipeline { /// A channel to the compositor. pub compositor_proxy: Box, pub chrome_to_paint_chan: Sender, - pub paint_shutdown_port: IpcReceiver<()>, /// URL corresponding to the most recently-loaded page. pub url: Url, /// The title of the most recently-loaded page. @@ -129,8 +128,6 @@ impl Pipeline { // probably requires a general low-memory strategy. let (layout_to_paint_chan, layout_to_paint_port) = util::ipc::optional_ipc_channel(); let (chrome_to_paint_chan, chrome_to_paint_port) = channel(); - let (paint_shutdown_chan, paint_shutdown_port) = ipc::channel() - .expect("Pipeline paint shutdown chan"); let (pipeline_chan, pipeline_port) = ipc::channel() .expect("Pipeline main chan");; @@ -173,8 +170,7 @@ impl Pipeline { state.panic_chan.clone(), state.font_cache_thread.clone(), state.time_profiler_chan.clone(), - state.mem_profiler_chan.clone(), - paint_shutdown_chan); + state.mem_profiler_chan.clone()); let mut child_process = None; if let Some((script_port, pipeline_port)) = content_ports { @@ -252,7 +248,6 @@ impl Pipeline { pipeline_chan, state.compositor_proxy, chrome_to_paint_chan, - paint_shutdown_port, state.load_data.url, state.window_size); @@ -265,7 +260,6 @@ impl Pipeline { layout_chan: IpcSender, compositor_proxy: Box, chrome_to_paint_chan: Sender, - paint_shutdown_port: IpcReceiver<()>, url: Url, size: Option>) -> Pipeline { @@ -276,7 +270,6 @@ impl Pipeline { layout_chan: layout_chan, compositor_proxy: compositor_proxy, chrome_to_paint_chan: chrome_to_paint_chan, - paint_shutdown_port: paint_shutdown_port, url: url, title: None, children: vec!(), diff --git a/components/gfx/paint_thread.rs b/components/gfx/paint_thread.rs index 9a7b6e3c49c..db86e62f69e 100644 --- a/components/gfx/paint_thread.rs +++ b/components/gfx/paint_thread.rs @@ -396,46 +396,38 @@ impl PaintThread where C: PaintListener + Send + 'static { panic_chan: IpcSender, font_cache_thread: FontCacheThread, time_profiler_chan: time::ProfilerChan, - mem_profiler_chan: mem::ProfilerChan, - shutdown_chan: IpcSender<()>) { + mem_profiler_chan: mem::ProfilerChan) { thread::spawn_named_with_send_on_panic(format!("PaintThread {:?}", id), thread_state::PAINT, move || { - { - // Ensures that the paint thread and graphics context are destroyed before the - // shutdown message. - let native_display = compositor.native_display(); - let worker_threads = WorkerThreadProxy::spawn(native_display, - font_cache_thread, - time_profiler_chan.clone()); + let native_display = compositor.native_display(); + let worker_threads = WorkerThreadProxy::spawn(native_display, + font_cache_thread, + time_profiler_chan.clone()); - let mut paint_thread = PaintThread { - id: id, - _url: url, - layout_to_paint_port: layout_to_paint_port, - chrome_to_paint_port: chrome_to_paint_port, - compositor: compositor, - time_profiler_chan: time_profiler_chan, - root_display_list: None, - layer_map: HashMap::new(), - paint_permission: false, - current_epoch: None, - worker_threads: worker_threads, - }; + let mut paint_thread = PaintThread { + id: id, + _url: url, + layout_to_paint_port: layout_to_paint_port, + chrome_to_paint_port: chrome_to_paint_port, + compositor: compositor, + time_profiler_chan: time_profiler_chan, + root_display_list: None, + layer_map: HashMap::new(), + paint_permission: false, + current_epoch: None, + worker_threads: worker_threads, + }; - let reporter_name = format!("paint-reporter-{}", id); - mem_profiler_chan.run_with_memory_reporting(|| { - paint_thread.start(); - }, reporter_name, chrome_to_paint_chan, ChromeToPaintMsg::CollectReports); + let reporter_name = format!("paint-reporter-{}", id); + mem_profiler_chan.run_with_memory_reporting(|| { + paint_thread.start(); + }, reporter_name, chrome_to_paint_chan, ChromeToPaintMsg::CollectReports); - // Tell all the worker threads to shut down. - for worker_thread in &mut paint_thread.worker_threads { - worker_thread.exit() - } + // Tell all the worker threads to shut down. + for worker_thread in &mut paint_thread.worker_threads { + worker_thread.exit() } - - debug!("paint_thread: shutdown_chan send"); - let _ = shutdown_chan.send(()); }, Some(id), panic_chan); }