B_RELEASE_ALL is now a bit faster if it has nothing to do.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9349 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
d67750858c
commit
f197107a3d
@ -562,9 +562,14 @@ release_sem_etc(sem_id id, int32 count, uint32 flags)
|
|||||||
// order in sem_interrupt_thread.
|
// order in sem_interrupt_thread.
|
||||||
releaseQueue.head = releaseQueue.tail = NULL;
|
releaseQueue.head = releaseQueue.tail = NULL;
|
||||||
|
|
||||||
if (flags & B_RELEASE_ALL)
|
if (flags & B_RELEASE_ALL) {
|
||||||
count = -gSems[slot].u.used.count;
|
count = -gSems[slot].u.used.count;
|
||||||
|
|
||||||
|
// is there anything to do for us at all?
|
||||||
|
if (count == 0)
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
while (count > 0) {
|
while (count > 0) {
|
||||||
int delta = count;
|
int delta = count;
|
||||||
if (gSems[slot].u.used.count < 0) {
|
if (gSems[slot].u.used.count < 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user