summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2024-03-09 12:33:26 +0100
committerDavid Lönnhager <dv.lnh.d@gmail.com>2024-03-11 13:34:35 +0100
commit2adb9d64d4386fd78af58fb97fec092e63937b7e (patch)
treee847ed7c8807e48896c5201995a3f5c48a04e633
parent7869cb45e562dd285ed2646fa175742e3d3d187a (diff)
downloadmullvadvpn-2adb9d64d4386fd78af58fb97fec092e63937b7e.tar.xz
mullvadvpn-2adb9d64d4386fd78af58fb97fec092e63937b7e.zip
Don't block when dropping route manager
-rw-r--r--talpid-routing/src/unix/mod.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/talpid-routing/src/unix/mod.rs b/talpid-routing/src/unix/mod.rs
index a979b362e0..768000c010 100644
--- a/talpid-routing/src/unix/mod.rs
+++ b/talpid-routing/src/unix/mod.rs
@@ -331,8 +331,9 @@ impl RouteManager {
impl Drop for RouteManager {
fn drop(&mut self) {
- tokio::task::block_in_place(move || {
- tokio::runtime::Handle::current().block_on(self.stop());
- });
+ if let Some(tx) = self.manage_tx.take() {
+ let (done_tx, _) = oneshot::channel();
+ let _ = tx.unbounded_send(RouteManagerCommand::Shutdown(done_tx));
+ }
}
}