diff --git a/[refs] b/[refs] index 187f345476d3..998caa75b503 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d4212093dca95c1f52197017d969cc66d5d962aa +refs/heads/master: b6e90822e77cd476c18410f7003197d466e36ac6 diff --git a/trunk/ipc/sem.c b/trunk/ipc/sem.c index 2705fbbc4374..eac3f46a5968 100644 --- a/trunk/ipc/sem.c +++ b/trunk/ipc/sem.c @@ -445,13 +445,13 @@ static void update_queue (struct sem_array * sma) * of the completed operation: * - if the operation modified the array, then restart from the * head of the queue and check for threads that might be - * waiting for semaphore values to become 0. + * waiting for the new semaphore values. * - if the operation didn't modify the array, then just * continue. */ alter = q->alter; wake_up_sem_queue(q, error); - if (alter) + if (alter && !error) goto again; } }