[haiku-commits] haiku: hrev43955 - src/system/kernel

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 5 Apr 2012 17:36:26 +0200 (CEST)

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


Other related posts:

  • » [haiku-commits] haiku: hrev43955 - src/system/kernel - ingo_weinhold