diff --git a/artiq/firmware/runtime/session.rs b/artiq/firmware/runtime/session.rs index ae23c3410..0ed5a3b62 100644 --- a/artiq/firmware/runtime/session.rs +++ b/artiq/firmware/runtime/session.rs @@ -502,16 +502,16 @@ fn host_kernel_worker(io: &Io, aux_mutex: &Mutex, let mut session = Session::new(congress); loop { - while !rpc_queue::empty() { - process_kern_queued_rpc(stream, &mut session)? - } - if stream.can_recv() { process_host_message(io, stream, &mut session)? } else if !stream.may_recv() { return Ok(()) } + while !rpc_queue::empty() { + process_kern_queued_rpc(stream, &mut session)? + } + if mailbox::receive() != 0 { process_kern_message(io, aux_mutex, routing_table, up_destinations,