Fixed BLooper::UnlockFully(): It assumed benaphore style locking whereas semaphore style is used.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@977 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
4b14055011
commit
7bb1eb8242
@ -595,7 +595,7 @@ DBG(OUT(" ... done: %lx\n", err));
|
||||
int32 temp;
|
||||
do
|
||||
{
|
||||
DBG(OUT(" wait_for_thread()...\n"));
|
||||
DBG(OUT(" wait_for_thread(%lx)...\n", tid));
|
||||
err = wait_for_thread(tid, &temp);
|
||||
} while (err == B_INTERRUPTED);
|
||||
}
|
||||
@ -1191,6 +1191,7 @@ DBG(OUT("LOOPER: looper locked\n"));
|
||||
delete obj;
|
||||
}
|
||||
|
||||
DBG(OUT("LOOPER: _task0_() done: thread %ld\n", find_thread(NULL)));
|
||||
return B_OK;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
@ -1591,8 +1592,9 @@ void BLooper::UnlockFully()
|
||||
// Nobody owns the lock now
|
||||
fOwner = -1;
|
||||
// There is now one less thread holding a lock on this looper
|
||||
long atomicCount = atomic_add(&fAtomicCount, -1);
|
||||
if (atomicCount > 0)
|
||||
// bonefish: Currently _Lock() always acquires the semaphore.
|
||||
/* long atomicCount = */atomic_add(&fAtomicCount, -1);
|
||||
// if (atomicCount > 0)
|
||||
{
|
||||
release_sem(fLockSem);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user