From ccdf2dc54feb5091599ceb024cc906534bfa1aad Mon Sep 17 00:00:00 2001 From: Yuke Peng Date: Sun, 25 Aug 2024 15:37:26 +0800 Subject: [PATCH] Drop the `MutexGuard` of semaphore earlier --- kernel/src/ipc/semaphore/system_v/sem.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/src/ipc/semaphore/system_v/sem.rs b/kernel/src/ipc/semaphore/system_v/sem.rs index bc8d9ad20..b8b672c25 100644 --- a/kernel/src/ipc/semaphore/system_v/sem.rs +++ b/kernel/src/ipc/semaphore/system_v/sem.rs @@ -198,6 +198,7 @@ impl Semaphore { } else if zero_condition { return Ok(()); } + drop(val); // Need to wait for the semaphore if flags.contains(IpcFlags::IPC_NOWAIT) { @@ -219,7 +220,6 @@ impl Semaphore { } else { self.pending_alters.lock().push_back(pending_op); } - drop(val); // Wait if let Some(timeout) = timeout {