diff options
| -rw-r--r-- | talpid-core/src/routing/android.rs | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/talpid-core/src/routing/android.rs b/talpid-core/src/routing/android.rs index d364f0769e..cfacbe3474 100644 --- a/talpid-core/src/routing/android.rs +++ b/talpid-core/src/routing/android.rs @@ -1,5 +1,6 @@ use crate::routing::{imp::RouteManagerCommand, RequiredRoute}; -use futures01::{stream::Stream, sync::mpsc}; +// use futures01::{stream::Stream, sync::mpsc}; +use futures::{channel::mpsc, stream::StreamExt}; use std::collections::HashSet; /// Stub error type for routing errors on Android. @@ -8,25 +9,23 @@ use std::collections::HashSet; pub struct Error; /// Stub route manager for Android -pub struct RouteManagerImpl { - manage_rx: mpsc::UnboundedReceiver<RouteManagerCommand>, -} +pub struct RouteManagerImpl {} + impl RouteManagerImpl { - pub fn new( - _required_routes: HashSet<RequiredRoute>, - manage_rx: mpsc::UnboundedReceiver<RouteManagerCommand>, - ) -> Result<Self, Error> { - Ok(RouteManagerImpl { manage_rx }) + pub async fn new(_required_routes: HashSet<RequiredRoute>) -> Result<Self, Error> { + Ok(RouteManagerImpl {}) } - pub fn wait(self) -> Result<(), Error> { - for msg in self.manage_rx.wait() { - if let Ok(command) = msg { - if let RouteManagerCommand::Shutdown(tx) = command { - tx.send(()).map_err(|()| Error)?; - break; - } + pub async fn run( + self, + manage_rx: mpsc::UnboundedReceiver<RouteManagerCommand>, + ) -> Result<(), Error> { + let mut manage_rx = manage_rx.fuse(); + while let Some(command) = manage_rx.next().await { + if let RouteManagerCommand::Shutdown(tx) = command { + tx.send(()).map_err(|()| Error)?; + break; } } Ok(()) |
