hrev43955 adds 1 changeset to branch 'master' old head: 81eb68f28064918f4947fb410dbb23c0c21cb8bd new head: c83bde410aa07480175ab2b0743c35da9a0572bb ---------------------------------------------------------------------------- c83bde4: switch_sem_etc(): Unbreak the actual switch case The scheduler lock was still being held when release_sem_etc() was called. The bug was introduced in 24df65921befcd0ad0c5c7866118f922da61cb96. Fixes #8448. [ Ingo Weinhold <ingo_weinhold@xxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev43955 Commit: c83bde410aa07480175ab2b0743c35da9a0572bb URL: http://cgit.haiku-os.org/haiku/commit/?id=c83bde4 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Apr 5 15:35:59 2012 UTC Ticket: https://dev.haiku-os.org/ticket/8448 ---------------------------------------------------------------------------- 1 files changed, 1 insertions(+), 0 deletions(-) src/system/kernel/sem.cpp | 1 + ---------------------------------------------------------------------------- diff --git a/src/system/kernel/sem.cpp b/src/system/kernel/sem.cpp index 2c460b9..ad32ddd 100644 --- a/src/system/kernel/sem.cpp +++ b/src/system/kernel/sem.cpp @@ -844,6 +844,7 @@ switch_sem_etc(sem_id semToBeReleased, sem_id id, int32 count, thread_prepare_to_block(thread, flags, THREAD_BLOCK_TYPE_SEMAPHORE, (void*)(addr_t)id); + schedulerLocker.Unlock(); RELEASE_SEM_LOCK(sSems[slot]); // release the other semaphore, if any