diff options
| -rw-r--r-- | Cargo.lock | 1 | ||||
| -rw-r--r-- | mullvad-daemon/Cargo.toml | 1 | ||||
| -rw-r--r-- | mullvad-daemon/src/management_interface.rs | 14 |
3 files changed, 8 insertions, 8 deletions
diff --git a/Cargo.lock b/Cargo.lock index 32263a0cac..8b3f12373a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1125,6 +1125,7 @@ dependencies = [ "mullvad-paths 0.1.0", "mullvad-rpc 0.1.0", "mullvad-types 0.1.0", + "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/mullvad-daemon/Cargo.toml b/mullvad-daemon/Cargo.toml index 69a66c5d2d..9f27f3f822 100644 --- a/mullvad-daemon/Cargo.toml +++ b/mullvad-daemon/Cargo.toml @@ -28,6 +28,7 @@ jsonrpc-pubsub = { git = "https://github.com/mullvad/jsonrpc", branch = "mullvad lazy_static = "1.0" log = "0.4" log-panics = "2.0.0" +parking_lot = "0.8" rand = "0.6" regex = "1.0" serde = { version = "1.0", features = ["derive"] } diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs index 103e39b25e..ecd012c440 100644 --- a/mullvad-daemon/src/management_interface.rs +++ b/mullvad-daemon/src/management_interface.rs @@ -21,9 +21,10 @@ use mullvad_types::{ states::{TargetState, TunnelState}, version, DaemonEvent, }; +use parking_lot::{Mutex, RwLock}; use std::{ collections::{hash_map::Entry, HashMap}, - sync::{Arc, Mutex, RwLock}, + sync::Arc, }; use talpid_core::mpsc::IntoSender; use talpid_ipc; @@ -305,7 +306,7 @@ impl EventListener for ManagementInterfaceEventBroadcaster { impl ManagementInterfaceEventBroadcaster { fn notify(&self, value: DaemonEvent) { - let subscriptions = self.subscriptions.read().unwrap(); + let subscriptions = self.subscriptions.read(); for sink in subscriptions.values() { let _ = sink.notify(Ok(value.clone())).wait(); } @@ -335,10 +336,7 @@ impl<T: From<ManagementCommand> + 'static + Send> ManagementInterface<T> { /// Sends a command to the daemon and maps the error to an RPC error. fn send_command_to_daemon(&self, command: ManagementCommand) -> BoxFuture<(), Error> { - Box::new( - future::result(self.tx.lock().unwrap().send(command)) - .map_err(|_| Error::internal_error()), - ) + Box::new(future::result(self.tx.lock().send(command)).map_err(|_| Error::internal_error())) } /// Converts the given error to an error that can be given to the caller of the API. @@ -684,7 +682,7 @@ impl<T: From<ManagementCommand> + 'static + Send> ManagementInterfaceApi subscriber: pubsub::Subscriber<DaemonEvent>, ) { log::debug!("daemon_event_subscribe"); - let mut subscriptions = self.subscriptions.write().unwrap(); + let mut subscriptions = self.subscriptions.write(); loop { let id = SubscriptionId::String(uuid::Uuid::new_v4().to_string()); if let Entry::Vacant(entry) = subscriptions.entry(id.clone()) { @@ -699,7 +697,7 @@ impl<T: From<ManagementCommand> + 'static + Send> ManagementInterfaceApi fn daemon_event_unsubscribe(&self, id: SubscriptionId) -> BoxFuture<(), Error> { log::debug!("daemon_event_unsubscribe"); - let was_removed = self.subscriptions.write().unwrap().remove(&id).is_some(); + let was_removed = self.subscriptions.write().remove(&id).is_some(); let result = if was_removed { log::debug!("Unsubscribing id {:?}", id); future::ok(()) |
