summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-08-15 01:34:57 +0200
committerDavid Lönnhager <david.l@mullvad.net>2020-09-01 14:15:49 +0200
commitc2fd9b42b65821891fbdde2244d6685079808282 (patch)
tree5e1871e0519f1b5a641a6999068a2ab275104a5f
parentd2a563f70fd3d2f3d476f46c31d3777d301c3874 (diff)
downloadmullvadvpn-c2fd9b42b65821891fbdde2244d6685079808282.tar.xz
mullvadvpn-c2fd9b42b65821891fbdde2244d6685079808282.zip
Remove unnecessary 'event_loop' module
-rw-r--r--mullvad-daemon/src/event_loop.rs38
-rw-r--r--mullvad-daemon/src/lib.rs23
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")),