diff options
Diffstat (limited to 'mumd/src/command.rs')
| -rw-r--r-- | mumd/src/command.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/mumd/src/command.rs b/mumd/src/command.rs index 9adf7d8..6314870 100644 --- a/mumd/src/command.rs +++ b/mumd/src/command.rs @@ -8,7 +8,7 @@ use tokio::sync::mpsc; pub async fn handle( state: Arc<Mutex<State>>, - mut command_receiver: mpsc::UnboundedReceiver<(Command, IpcSender<Result<Option<CommandResponse>, ()>>)>, + mut command_receiver: mpsc::UnboundedReceiver<(Command, IpcSender<mumlib::error::Result<Option<CommandResponse>>>)>, ) { debug!("Begin listening for commands"); loop { @@ -16,13 +16,17 @@ pub async fn handle( let command = command_receiver.recv().await.unwrap(); debug!("Received command {:?}", command.0); let mut state = state.lock().unwrap(); + debug!("Got mutex lock"); let (wait_for_connected, command_response) = state.handle_command(command.0).await; if wait_for_connected { let mut watcher = state.phase_receiver(); drop(state); + debug!("Waiting to be connected"); while !matches!(watcher.recv().await.unwrap(), StatePhase::Connected) {} } + debug!("Sending response"); command.1.send(command_response).unwrap(); + debug!("Sent response"); } //TODO err if not connected //while let Some(command) = command_receiver.recv().await { |
