diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-08-15 01:34:57 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2020-09-01 14:15:49 +0200 |
| commit | c2fd9b42b65821891fbdde2244d6685079808282 (patch) | |
| tree | 5e1871e0519f1b5a641a6999068a2ab275104a5f | |
| parent | d2a563f70fd3d2f3d476f46c31d3777d301c3874 (diff) | |
| download | mullvadvpn-c2fd9b42b65821891fbdde2244d6685079808282.tar.xz mullvadvpn-c2fd9b42b65821891fbdde2244d6685079808282.zip | |
Remove unnecessary 'event_loop' module
| -rw-r--r-- | mullvad-daemon/src/event_loop.rs | 38 | ||||
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 23 |
2 files changed, 11 insertions, 50 deletions
diff --git a/mullvad-daemon/src/event_loop.rs b/mullvad-daemon/src/event_loop.rs deleted file mode 100644 index 58f638a2ac..0000000000 --- a/mullvad-daemon/src/event_loop.rs +++ /dev/null @@ -1,38 +0,0 @@ -use futures01::{sync::oneshot, Future}; -use std::thread; -use tokio_core::reactor::{Core, Remote}; - -pub struct CoreHandle { - /// Remote used to spawn futures on the daemon's event loop. - pub remote: Remote, - /// A sender that will cause the event loop to stop once it's dropped. - shutdown_tx: Option<oneshot::Sender<()>>, -} - -impl Drop for CoreHandle { - fn drop(&mut self) { - if let Some(shutdown_tx) = self.shutdown_tx.take() { - if shutdown_tx.send(()).is_err() { - log::error!("Core already shut down"); - } - } - } -} - -/// Panics if a new tokio event loop can't be spawned. -pub fn spawn() -> CoreHandle { - let (tx, rx) = oneshot::channel(); - let (shutdown_tx, shutdown_rx) = oneshot::channel(); - thread::spawn(move || { - let mut core = Core::new().expect("Failed to spawn event loop"); - let remote = core.remote(); - let _ = tx.send(remote); - let _ = core.run(shutdown_rx); - }); - let remote = rx.wait().expect("Failed to spawn event loop"); - - CoreHandle { - remote, - shutdown_tx: Some(shutdown_tx), - } -} diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs index c987e0d5c1..e6c09753a8 100644 --- a/mullvad-daemon/src/lib.rs +++ b/mullvad-daemon/src/lib.rs @@ -27,7 +27,7 @@ use futures::{ future::{abortable, AbortHandle}, }; use futures01::{ - future::{self, Executor}, + future, sync::{mpsc as old_mpsc, oneshot as old_oneshot}, Future, }; @@ -77,7 +77,6 @@ use talpid_types::{ mod wireguard; const TARGET_START_STATE_FILE: &str = "target-start-state.json"; -mod event_loop; /// FIXME(linus): This is here just because the futures crate has deprecated it and jsonrpc_core /// did not introduce their own yet (https://github.com/paritytech/jsonrpc/pull/196). @@ -474,7 +473,6 @@ pub struct Daemon<L: EventListener> { rpc_handle: mullvad_rpc::rest::MullvadRestHandle, wireguard_key_manager: wireguard::KeyManager, version_updater_handle: version_check::VersionUpdaterHandle, - core_handle: event_loop::CoreHandle, relay_selector: relays::RelaySelector, last_generated_relay: Option<Relay>, last_generated_bridge_relay: Option<Relay>, @@ -505,8 +503,6 @@ where .map_err(Error::InitRpcFactory)?; let rpc_handle = rpc_runtime.mullvad_rest_handle(); - let core_handle = event_loop::spawn(); - let relay_list_listener = event_listener.clone(); let on_relay_list_update = move |relay_list: &RelayList| { relay_list_listener.notify_relay_list(relay_list.clone()); @@ -619,7 +615,6 @@ where rpc_handle, wireguard_key_manager, version_updater_handle, - core_handle, relay_selector, last_generated_relay: None, last_generated_bridge_relay: None, @@ -1190,8 +1185,10 @@ where } }; - self.core_handle.remote.spawn(move |_| { - get_location.map(|location| Self::oneshot_send(tx, location, "current location")) + self.rpc_runtime.runtime().spawn(async { + let _ = get_location + .map(|location| Self::oneshot_send(tx, location, "current location")) + .wait(); }); } @@ -1246,9 +1243,11 @@ where Ok(()) }); - if self.core_handle.remote.execute(future).is_err() { - log::error!("Failed to spawn future for creating a new account"); - } + self.rpc_runtime.runtime().spawn(async { + if future.wait().is_err() { + log::error!("Failed to spawn future for creating a new account"); + } + }); } fn on_get_account_data( @@ -1500,7 +1499,7 @@ where .notify_settings(self.settings.to_settings()); let runtime = self.rpc_runtime.runtime(); let mut handle = self.version_updater_handle.clone(); - runtime.block_on(async { handle.set_show_beta_releases(enabled).await }); + runtime.block_on(handle.set_show_beta_releases(enabled)); } } Err(e) => error!("{}", e.display_chain_with_msg("Unable to save settings")), |
