From 6519ad9c82549817d797a5d9d463a418eb35273f Mon Sep 17 00:00:00 2001 From: Eskil Queseth Date: Fri, 21 May 2021 15:21:57 +0200 Subject: fix deadlock and change message registering properly --- mumd/src/state.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'mumd/src/state.rs') diff --git a/mumd/src/state.rs b/mumd/src/state.rs index 483f915..fba6ab0 100644 --- a/mumd/src/state.rs +++ b/mumd/src/state.rs @@ -612,16 +612,6 @@ pub fn handle_command( } Command::PastMessages { block } => { if block { - let messages = std::mem::take(&mut state.message_buffer); - let server = match state.server.as_ref() { - Some(s) => s, - None => return now!(Err(Error::Disconnected)), - }; - let messages = messages.into_iter() - .map(|(msg, user)| (msg, server.users().get(&user).unwrap().name().to_string())).collect(); - - now!(Ok(Some(CommandResponse::PastMessages { messages }))) - } else { let ref_state = Arc::clone(&og_state); ExecutionContext::TcpEventSubscriber( TcpEvent::TextMessage, @@ -637,6 +627,16 @@ pub fn handle_command( } }), ) + } else { + let messages = std::mem::take(&mut state.message_buffer); + let server = match state.server.as_ref() { + Some(s) => s, + None => return now!(Err(Error::Disconnected)), + }; + let messages = messages.into_iter() + .map(|(msg, user)| (msg, server.users().get(&user).unwrap().name().to_string())).collect(); + + now!(Ok(Some(CommandResponse::PastMessages { messages }))) } } Command::SendMessage { message, targets } => { -- cgit v1.2.1