aboutsummaryrefslogtreecommitdiffstats
path: root/mumd
diff options
context:
space:
mode:
authorEskil Queseth <eskilq@kth.se>2020-10-15 22:11:08 +0200
committerEskil Queseth <eskilq@kth.se>2020-10-15 22:11:08 +0200
commitb156b43b0994017636b153abceb78d86542047d7 (patch)
tree6cd5d6e536cc445e6450eca5079c13b4ba75ddbb /mumd
parentcfc0ab78a893d6a16d2eedfef290c9e1496a23e1 (diff)
downloadmum-b156b43b0994017636b153abceb78d86542047d7.tar.gz
change loop to avoid panic
Diffstat (limited to 'mumd')
-rw-r--r--mumd/src/command.rs8
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 {