mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Don't block the script listener thread on window.close().
This does not appear to have any effect. I believe this has been the case sincee841065351
, when the helper thread was introduced. It was added ina7ef1cd35e
, where it blocked the script thread rather than this helper thread.
This commit is contained in:
parent
7cea4eb01c
commit
041c907d1b
2 changed files with 5 additions and 8 deletions
|
@ -529,9 +529,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
(Msg::Exit(channel), _) => {
|
(Msg::Exit, _) => {
|
||||||
self.start_shutting_down();
|
self.start_shutting_down();
|
||||||
let _ = channel.send(());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
(Msg::ShutdownComplete, _) => {
|
(Msg::ShutdownComplete, _) => {
|
||||||
|
|
|
@ -9,7 +9,7 @@ use compositor::{self, CompositingReason};
|
||||||
use euclid::point::Point2D;
|
use euclid::point::Point2D;
|
||||||
use euclid::size::Size2D;
|
use euclid::size::Size2D;
|
||||||
use gfx_traits::{Epoch, FrameTreeId, LayerId, LayerProperties, PaintListener};
|
use gfx_traits::{Epoch, FrameTreeId, LayerId, LayerProperties, PaintListener};
|
||||||
use ipc_channel::ipc::{self, IpcReceiver, IpcSender};
|
use ipc_channel::ipc::{IpcReceiver, IpcSender};
|
||||||
use layers::layers::{BufferRequest, LayerBufferSet};
|
use layers::layers::{BufferRequest, LayerBufferSet};
|
||||||
use layers::platform::surface::{NativeDisplay, NativeSurface};
|
use layers::platform::surface::{NativeDisplay, NativeSurface};
|
||||||
use msg::constellation_msg::{Image, Key, KeyModifiers, KeyState, PipelineId};
|
use msg::constellation_msg::{Image, Key, KeyModifiers, KeyState, PipelineId};
|
||||||
|
@ -81,9 +81,7 @@ pub fn run_script_listener_thread(compositor_proxy: Box<CompositorProxy + 'stati
|
||||||
}
|
}
|
||||||
|
|
||||||
ScriptToCompositorMsg::Exit => {
|
ScriptToCompositorMsg::Exit => {
|
||||||
let (chan, port) = ipc::channel().unwrap();
|
compositor_proxy.send(Msg::Exit);
|
||||||
compositor_proxy.send(Msg::Exit(chan));
|
|
||||||
port.recv().unwrap();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ScriptToCompositorMsg::SetTitle(pipeline_id, title) => {
|
ScriptToCompositorMsg::SetTitle(pipeline_id, title) => {
|
||||||
|
@ -169,7 +167,7 @@ impl PaintListener for Box<CompositorProxy + 'static + Send> {
|
||||||
/// Messages from the painting thread and the constellation thread to the compositor thread.
|
/// Messages from the painting thread and the constellation thread to the compositor thread.
|
||||||
pub enum Msg {
|
pub enum Msg {
|
||||||
/// Requests that the compositor shut down.
|
/// Requests that the compositor shut down.
|
||||||
Exit(IpcSender<()>),
|
Exit,
|
||||||
|
|
||||||
/// Informs the compositor that the constellation has completed shutdown.
|
/// Informs the compositor that the constellation has completed shutdown.
|
||||||
/// Required because the constellation can have pending calls to make
|
/// Required because the constellation can have pending calls to make
|
||||||
|
@ -248,7 +246,7 @@ pub enum Msg {
|
||||||
impl Debug for Msg {
|
impl Debug for Msg {
|
||||||
fn fmt(&self, f: &mut Formatter) -> Result<(), Error> {
|
fn fmt(&self, f: &mut Formatter) -> Result<(), Error> {
|
||||||
match *self {
|
match *self {
|
||||||
Msg::Exit(..) => write!(f, "Exit"),
|
Msg::Exit => write!(f, "Exit"),
|
||||||
Msg::ShutdownComplete => write!(f, "ShutdownComplete"),
|
Msg::ShutdownComplete => write!(f, "ShutdownComplete"),
|
||||||
Msg::GetNativeDisplay(..) => write!(f, "GetNativeDisplay"),
|
Msg::GetNativeDisplay(..) => write!(f, "GetNativeDisplay"),
|
||||||
Msg::InitializeLayersForPipeline(..) => write!(f, "InitializeLayersForPipeline"),
|
Msg::InitializeLayersForPipeline(..) => write!(f, "InitializeLayersForPipeline"),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue