mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
Make the layout content process shutdown sender optional.
This commit is contained in:
parent
6778043340
commit
c044b66979
5 changed files with 9 additions and 7 deletions
|
@ -166,7 +166,7 @@ impl Pipeline {
|
||||||
window_size: window_size,
|
window_size: window_size,
|
||||||
pipeline_port: pipeline_port,
|
pipeline_port: pipeline_port,
|
||||||
layout_to_constellation_chan: state.layout_to_constellation_chan.clone(),
|
layout_to_constellation_chan: state.layout_to_constellation_chan.clone(),
|
||||||
content_process_shutdown_chan: layout_content_process_shutdown_chan.clone(),
|
content_process_shutdown_chan: Some(layout_content_process_shutdown_chan.clone()),
|
||||||
layout_threads: PREFS.get("layout.threads").as_u64().expect("count") as usize,
|
layout_threads: PREFS.get("layout.threads").as_u64().expect("count") as usize,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -448,7 +448,7 @@ impl UnprivilegedPipelineContent {
|
||||||
self.font_cache_thread,
|
self.font_cache_thread,
|
||||||
self.time_profiler_chan,
|
self.time_profiler_chan,
|
||||||
self.mem_profiler_chan,
|
self.mem_profiler_chan,
|
||||||
self.layout_content_process_shutdown_chan,
|
Some(self.layout_content_process_shutdown_chan),
|
||||||
self.webrender_api_sender,
|
self.webrender_api_sender,
|
||||||
self.prefs.get("layout.threads").expect("exists").value()
|
self.prefs.get("layout.threads").expect("exists").value()
|
||||||
.as_u64().expect("count") as usize);
|
.as_u64().expect("count") as usize);
|
||||||
|
|
|
@ -246,7 +246,7 @@ impl LayoutThreadFactory for LayoutThread {
|
||||||
font_cache_thread: FontCacheThread,
|
font_cache_thread: FontCacheThread,
|
||||||
time_profiler_chan: time::ProfilerChan,
|
time_profiler_chan: time::ProfilerChan,
|
||||||
mem_profiler_chan: mem::ProfilerChan,
|
mem_profiler_chan: mem::ProfilerChan,
|
||||||
content_process_shutdown_chan: IpcSender<()>,
|
content_process_shutdown_chan: Option<IpcSender<()>>,
|
||||||
webrender_api_sender: webrender_traits::RenderApiSender,
|
webrender_api_sender: webrender_traits::RenderApiSender,
|
||||||
layout_threads: usize) {
|
layout_threads: usize) {
|
||||||
thread::spawn_named(format!("LayoutThread {:?}", id),
|
thread::spawn_named(format!("LayoutThread {:?}", id),
|
||||||
|
@ -278,7 +278,9 @@ impl LayoutThreadFactory for LayoutThread {
|
||||||
layout.start();
|
layout.start();
|
||||||
}, reporter_name, sender, Msg::CollectReports);
|
}, reporter_name, sender, Msg::CollectReports);
|
||||||
}
|
}
|
||||||
|
if let Some(content_process_shutdown_chan) = content_process_shutdown_chan {
|
||||||
let _ = content_process_shutdown_chan.send(());
|
let _ = content_process_shutdown_chan.send(());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ pub trait LayoutThreadFactory {
|
||||||
font_cache_thread: FontCacheThread,
|
font_cache_thread: FontCacheThread,
|
||||||
time_profiler_chan: time::ProfilerChan,
|
time_profiler_chan: time::ProfilerChan,
|
||||||
mem_profiler_chan: mem::ProfilerChan,
|
mem_profiler_chan: mem::ProfilerChan,
|
||||||
content_process_shutdown_chan: IpcSender<()>,
|
content_process_shutdown_chan: Option<IpcSender<()>>,
|
||||||
webrender_api_sender: webrender_traits::RenderApiSender,
|
webrender_api_sender: webrender_traits::RenderApiSender,
|
||||||
layout_threads: usize);
|
layout_threads: usize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -142,6 +142,6 @@ pub struct NewLayoutThreadInfo {
|
||||||
pub constellation_chan: IpcSender<ConstellationMsg>,
|
pub constellation_chan: IpcSender<ConstellationMsg>,
|
||||||
pub script_chan: IpcSender<ConstellationControlMsg>,
|
pub script_chan: IpcSender<ConstellationControlMsg>,
|
||||||
pub image_cache_thread: ImageCacheThread,
|
pub image_cache_thread: ImageCacheThread,
|
||||||
pub content_process_shutdown_chan: IpcSender<()>,
|
pub content_process_shutdown_chan: Option<IpcSender<()>>,
|
||||||
pub layout_threads: usize,
|
pub layout_threads: usize,
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,7 +180,7 @@ pub struct NewLayoutInfo {
|
||||||
/// A sender for the layout thread to communicate to the constellation.
|
/// A sender for the layout thread to communicate to the constellation.
|
||||||
pub layout_to_constellation_chan: IpcSender<LayoutMsg>,
|
pub layout_to_constellation_chan: IpcSender<LayoutMsg>,
|
||||||
/// A shutdown channel so that layout can tell the content process to shut down when it's done.
|
/// A shutdown channel so that layout can tell the content process to shut down when it's done.
|
||||||
pub content_process_shutdown_chan: IpcSender<()>,
|
pub content_process_shutdown_chan: Option<IpcSender<()>>,
|
||||||
/// Number of threads to use for layout.
|
/// Number of threads to use for layout.
|
||||||
pub layout_threads: usize,
|
pub layout_threads: usize,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue