diff options
author | Simon Sapin <simon.sapin@exyr.org> | 2017-12-17 23:53:32 +0100 |
---|---|---|
committer | Gregory Terzian <gterzian@users.noreply.github.com> | 2018-09-12 13:33:32 +0800 |
commit | 2a996fbc8fef722b264389680cc55c25c46807d1 (patch) | |
tree | 22c19321899cf4b35384c8c8e186f1a0bf7913c8 /components/script/dom/window.rs | |
parent | b977b4994c678ce1d9bca69be72d095522c25f71 (diff) | |
download | servo-2a996fbc8fef722b264389680cc55c25c46807d1.tar.gz servo-2a996fbc8fef722b264389680cc55c25c46807d1.zip |
Replace mpsc with crossbeam/servo channel, update ipc-channel
Co-authored-by: Gregory Terzian <gterzian@users.noreply.github.com>
Diffstat (limited to 'components/script/dom/window.rs')
-rw-r--r-- | components/script/dom/window.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 052f121fb2a..65630e126a5 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -94,6 +94,7 @@ use script_traits::{TimerSchedulerMsg, UntrustedNodeAddress, WindowSizeData, Win use script_traits::webdriver_msg::{WebDriverJSError, WebDriverJSResult}; use selectors::attr::CaseSensitivity; use servo_arc; +use servo_channel::{channel, Sender}; use servo_config::opts; use servo_geometry::{f32_rect_to_au_rect, MaxRect}; use servo_url::{Host, MutableOrigin, ImmutableOrigin, ServoUrl}; @@ -109,8 +110,6 @@ use std::mem; use std::rc::Rc; use std::sync::{Arc, Mutex}; use std::sync::atomic::{AtomicBool, Ordering}; -use std::sync::mpsc::{Sender, channel}; -use std::sync::mpsc::TryRecvError::{Disconnected, Empty}; use style::error_reporting::ParseErrorReporter; use style::media_queries; use style::parser::ParserContext as CssParserContext; @@ -1376,15 +1375,16 @@ impl Window { debug!("script: layout forked"); - let complete = match join_port.try_recv() { - Err(Empty) => { + let complete = select! { + recv(join_port.select(), msg) => if let Some(reflow_complete) = msg { + reflow_complete + } else { + panic!("Layout thread failed while script was waiting for a result."); + }, + default => { info!("script: waiting on layout"); join_port.recv().unwrap() } - Ok(reflow_complete) => reflow_complete, - Err(Disconnected) => { - panic!("Layout thread failed while script was waiting for a result."); - } }; debug!("script: layout joined"); |