diff options
| author | Eskil Queseth <eskilq@kth.se> | 2020-10-15 22:11:08 +0200 |
|---|---|---|
| committer | Eskil Queseth <eskilq@kth.se> | 2020-10-15 22:11:08 +0200 |
| commit | b156b43b0994017636b153abceb78d86542047d7 (patch) | |
| tree | 6cd5d6e536cc445e6450eca5079c13b4ba75ddbb /mumd/src/command.rs | |
| parent | cfc0ab78a893d6a16d2eedfef290c9e1496a23e1 (diff) | |
| download | mum-b156b43b0994017636b153abceb78d86542047d7.tar.gz | |
change loop to avoid panic
Diffstat (limited to 'mumd/src/command.rs')
| -rw-r--r-- | mumd/src/command.rs | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/mumd/src/command.rs b/mumd/src/command.rs index 6314870..57eaaa3 100644 --- a/mumd/src/command.rs +++ b/mumd/src/command.rs @@ -11,22 +11,16 @@ pub async fn handle( mut command_receiver: mpsc::UnboundedReceiver<(Command, IpcSender<mumlib::error::Result<Option<CommandResponse>>>)>, ) { debug!("Begin listening for commands"); - loop { - debug!("Enter loop"); - let command = command_receiver.recv().await.unwrap(); + while let Some(command) = command_receiver.recv().await { 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 { |
