diff --git a/components/constellation/pipeline.rs b/components/constellation/pipeline.rs index 7718eb76036..0d92cf8baa2 100644 --- a/components/constellation/pipeline.rs +++ b/components/constellation/pipeline.rs @@ -55,8 +55,6 @@ pub struct Pipeline { /// A channel to the compositor. pub compositor_proxy: Box, pub chrome_to_paint_chan: Sender, - pub layout_shutdown_port: IpcReceiver<()>, - pub paint_shutdown_port: IpcReceiver<()>, /// URL corresponding to the most recently-loaded page. pub url: Url, /// The title of the most recently-loaded page. @@ -130,10 +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 (layout_shutdown_chan, layout_shutdown_port) = ipc::channel() - .expect("Pipeline layout shutdown chan"); let (pipeline_chan, pipeline_port) = ipc::channel() .expect("Pipeline main chan");; @@ -153,7 +147,6 @@ impl Pipeline { panic_chan: state.panic_chan.clone(), pipeline_port: pipeline_port, layout_to_constellation_chan: state.layout_to_constellation_chan.clone(), - layout_shutdown_chan: layout_shutdown_chan.clone(), content_process_shutdown_chan: layout_content_process_shutdown_chan.clone(), }; @@ -177,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 { @@ -232,7 +224,6 @@ impl Pipeline { prefs: prefs::get_cloned(), layout_to_paint_chan: layout_to_paint_chan, pipeline_port: pipeline_port, - layout_shutdown_chan: layout_shutdown_chan, pipeline_namespace_id: state.pipeline_namespace_id, layout_content_process_shutdown_chan: layout_content_process_shutdown_chan, layout_content_process_shutdown_port: layout_content_process_shutdown_port, @@ -257,8 +248,6 @@ impl Pipeline { pipeline_chan, state.compositor_proxy, chrome_to_paint_chan, - layout_shutdown_port, - paint_shutdown_port, state.load_data.url, state.window_size); @@ -271,8 +260,6 @@ impl Pipeline { layout_chan: IpcSender, compositor_proxy: Box, chrome_to_paint_chan: Sender, - layout_shutdown_port: IpcReceiver<()>, - paint_shutdown_port: IpcReceiver<()>, url: Url, size: Option>) -> Pipeline { @@ -283,8 +270,6 @@ impl Pipeline { layout_chan: layout_chan, compositor_proxy: compositor_proxy, chrome_to_paint_chan: chrome_to_paint_chan, - layout_shutdown_port: layout_shutdown_port, - paint_shutdown_port: paint_shutdown_port, url: url, title: None, children: vec!(), @@ -407,7 +392,6 @@ pub struct UnprivilegedPipelineContent { prefs: HashMap, pipeline_port: IpcReceiver, pipeline_namespace_id: PipelineNamespaceId, - layout_shutdown_chan: IpcSender<()>, layout_content_process_shutdown_chan: IpcSender<()>, layout_content_process_shutdown_port: IpcReceiver<()>, script_content_process_shutdown_chan: IpcSender<()>, @@ -452,7 +436,6 @@ impl UnprivilegedPipelineContent { self.font_cache_thread, self.time_profiler_chan, self.mem_profiler_chan, - self.layout_shutdown_chan, self.layout_content_process_shutdown_chan, self.webrender_api_sender); 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); } diff --git a/components/layout/layout_thread.rs b/components/layout/layout_thread.rs index 779a23fba82..b48813a0c31 100644 --- a/components/layout/layout_thread.rs +++ b/components/layout/layout_thread.rs @@ -259,7 +259,6 @@ impl LayoutThreadFactory for LayoutThread { font_cache_thread: FontCacheThread, time_profiler_chan: time::ProfilerChan, mem_profiler_chan: mem::ProfilerChan, - shutdown_chan: IpcSender<()>, content_process_shutdown_chan: IpcSender<()>, webrender_api_sender: Option) { thread::spawn_named_with_send_on_panic(format!("LayoutThread {:?}", id), @@ -286,7 +285,6 @@ impl LayoutThreadFactory for LayoutThread { layout.start(); }, reporter_name, sender, Msg::CollectReports); } - let _ = shutdown_chan.send(()); let _ = content_process_shutdown_chan.send(()); }, Some(id), panic_chan); } @@ -748,7 +746,6 @@ impl LayoutThread { self.font_cache_thread.clone(), self.time_profiler_chan.clone(), self.mem_profiler_chan.clone(), - info.layout_shutdown_chan, info.content_process_shutdown_chan, self.webrender_api.as_ref().map(|wr| wr.clone_sender())); } diff --git a/components/layout_traits/lib.rs b/components/layout_traits/lib.rs index 0b431e71639..ad91999cc30 100644 --- a/components/layout_traits/lib.rs +++ b/components/layout_traits/lib.rs @@ -48,7 +48,6 @@ pub trait LayoutThreadFactory { font_cache_thread: FontCacheThread, time_profiler_chan: time::ProfilerChan, mem_profiler_chan: mem::ProfilerChan, - shutdown_chan: IpcSender<()>, content_process_shutdown_chan: IpcSender<()>, webrender_api_sender: Option); } diff --git a/components/script/layout_interface.rs b/components/script/layout_interface.rs index 29dff179525..61c99bc530b 100644 --- a/components/script/layout_interface.rs +++ b/components/script/layout_interface.rs @@ -232,6 +232,5 @@ pub struct NewLayoutThreadInfo { pub script_chan: IpcSender, pub image_cache_thread: ImageCacheThread, pub paint_chan: OptionalOpaqueIpcSender, - pub layout_shutdown_chan: IpcSender<()>, pub content_process_shutdown_chan: IpcSender<()>, } diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index ed2b0e03ee8..79cccc8ad00 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -1129,7 +1129,6 @@ impl ScriptThread { panic_chan, pipeline_port, layout_to_constellation_chan, - layout_shutdown_chan, content_process_shutdown_chan, } = new_layout_info; @@ -1147,7 +1146,6 @@ impl ScriptThread { paint_chan: paint_chan, script_chan: self.control_chan.clone(), image_cache_thread: self.image_cache_thread.clone(), - layout_shutdown_chan: layout_shutdown_chan, content_process_shutdown_chan: content_process_shutdown_chan, }; diff --git a/components/script_traits/lib.rs b/components/script_traits/lib.rs index 03bdf4b12b5..93239e5b42e 100644 --- a/components/script_traits/lib.rs +++ b/components/script_traits/lib.rs @@ -104,8 +104,6 @@ pub struct NewLayoutInfo { pub panic_chan: IpcSender, /// A sender for the layout thread to communicate to the constellation. pub layout_to_constellation_chan: IpcSender, - /// A shutdown channel so that layout can notify others when it's done. - pub layout_shutdown_chan: IpcSender<()>, /// A shutdown channel so that layout can tell the content process to shut down when it's done. pub content_process_shutdown_chan: IpcSender<()>, }