From b967712e5fa02315ef791ccf2f79fa9138e762b6 Mon Sep 17 00:00:00 2001 From: Sean Cross Date: Wed, 24 Mar 2021 17:23:39 +0800 Subject: [PATCH] kernel: use correct thread ID when server queue is full Instead of queueing the client thread number inside the server, queue the server's thread number inside the server. This prevents many spooky messages that were occurring when server queues got full. Signed-off-by: Sean Cross --- kernel/src/syscall.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/src/syscall.rs b/kernel/src/syscall.rs index abc9171cf..112ac856a 100644 --- a/kernel/src/syscall.rs +++ b/kernel/src/syscall.rs @@ -156,7 +156,7 @@ fn send_message(pid: PID, thread: TID, cid: CID, message: Message) -> SysCallRes klog!("error remembering server message: {:?}", e); ss.server_from_sidx_mut(sidx) .expect("server couldn't be located") - .return_available_thread(thread); + .return_available_thread(server_tid); e })? } else { @@ -179,7 +179,7 @@ fn send_message(pid: PID, thread: TID, cid: CID, message: Message) -> SysCallRes ss.ready_thread(server_pid, server_tid).map_err(|e| { ss.server_from_sidx_mut(sidx) .expect("server couldn't be located") - .return_available_thread(thread); + .return_available_thread(server_tid); e })?;