diff options
author | Bastien Orivel <eijebong@bananium.fr> | 2018-11-07 19:48:07 +0100 |
---|---|---|
committer | Bastien Orivel <eijebong@bananium.fr> | 2018-11-18 19:33:19 +0100 |
commit | 9a7eeb349a8aa657e063665ac92387ab8ef3ce28 (patch) | |
tree | 63c5aa1ba7cd7fdb1bf14bcc9cbb6e6c0e24431b /components/script/serviceworker_manager.rs | |
parent | 76195e0779469f29a5e27cd882e2bbe8b2c9d6dd (diff) | |
download | servo-9a7eeb349a8aa657e063665ac92387ab8ef3ce28.tar.gz servo-9a7eeb349a8aa657e063665ac92387ab8ef3ce28.zip |
Update crossbeam-channel to 0.3
Diffstat (limited to 'components/script/serviceworker_manager.rs')
-rw-r--r-- | components/script/serviceworker_manager.rs | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/components/script/serviceworker_manager.rs b/components/script/serviceworker_manager.rs index 198c230adf9..f269e6b23be 100644 --- a/components/script/serviceworker_manager.rs +++ b/components/script/serviceworker_manager.rs @@ -11,11 +11,12 @@ use crate::dom::abstractworker::WorkerScriptMsg; use crate::dom::bindings::structuredclone::StructuredCloneData; use crate::dom::serviceworkerglobalscope::{ServiceWorkerGlobalScope, ServiceWorkerScriptMsg}; use crate::dom::serviceworkerregistration::longest_prefix_match; +use crossbeam_channel::{unbounded, Receiver, RecvError, Sender}; use devtools_traits::{DevtoolsPageInfo, ScriptToDevtoolsControlMsg}; use ipc_channel::ipc::{self, IpcSender}; +use ipc_channel::router::ROUTER; use net_traits::{CoreResourceMsg, CustomResponseMediator}; use script_traits::{DOMMessage, SWManagerMsg, SWManagerSenders, ScopeThings, ServiceWorkerMsg}; -use servo_channel::{channel, route_ipc_receiver_to_new_servo_receiver, Receiver, Sender}; use servo_config::prefs::PREFS; use servo_url::ServoUrl; use std::collections::HashMap; @@ -58,8 +59,8 @@ impl ServiceWorkerManager { let (own_sender, from_constellation_receiver) = ipc::channel().unwrap(); let (resource_chan, resource_port) = ipc::channel().unwrap(); let from_constellation = - route_ipc_receiver_to_new_servo_receiver(from_constellation_receiver); - let resource_port = route_ipc_receiver_to_new_servo_receiver(resource_port); + ROUTER.route_ipc_receiver_to_new_crossbeam_receiver(from_constellation_receiver); + let resource_port = ROUTER.route_ipc_receiver_to_new_crossbeam_receiver(resource_port); let _ = sw_senders .resource_sender .send(CoreResourceMsg::NetworkMediator(resource_chan)); @@ -90,7 +91,7 @@ impl ServiceWorkerManager { ) -> Option<Sender<ServiceWorkerScriptMsg>> { let scope_things = self.registered_workers.get(&scope_url); if let Some(scope_things) = scope_things { - let (sender, receiver) = channel(); + let (sender, receiver) = unbounded(); let (devtools_sender, devtools_receiver) = ipc::channel().unwrap(); if let Some(ref chan) = scope_things.devtools_chan { let title = format!("ServiceWorker for {}", scope_things.script_url); @@ -122,7 +123,7 @@ impl ServiceWorkerManager { } fn handle_message(&mut self) { - while let Some(message) = self.receive_message() { + while let Ok(message) = self.receive_message() { let should_continue = match message { Message::FromConstellation(msg) => self.handle_message_from_constellation(msg), Message::FromResource(msg) => self.handle_message_from_resource(msg), @@ -196,10 +197,10 @@ impl ServiceWorkerManager { true } - fn receive_message(&mut self) -> Option<Message> { + fn receive_message(&mut self) -> Result<Message, RecvError> { select! { - recv(self.own_port.select(), msg) => msg.map(Message::FromConstellation), - recv(self.resource_receiver.select(), msg) => msg.map(Message::FromResource), + recv(self.own_port) -> msg => msg.map(Message::FromConstellation), + recv(self.resource_receiver) -> msg => msg.map(Message::FromResource), } } } |