diff options
-rw-r--r-- | ipc/sem.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -445,13 +445,13 @@ again: | |||
445 | * of the completed operation: | 445 | * of the completed operation: |
446 | * - if the operation modified the array, then restart from the | 446 | * - if the operation modified the array, then restart from the |
447 | * head of the queue and check for threads that might be | 447 | * head of the queue and check for threads that might be |
448 | * waiting for semaphore values to become 0. | 448 | * waiting for the new semaphore values. |
449 | * - if the operation didn't modify the array, then just | 449 | * - if the operation didn't modify the array, then just |
450 | * continue. | 450 | * continue. |
451 | */ | 451 | */ |
452 | alter = q->alter; | 452 | alter = q->alter; |
453 | wake_up_sem_queue(q, error); | 453 | wake_up_sem_queue(q, error); |
454 | if (alter) | 454 | if (alter && !error) |
455 | goto again; | 455 | goto again; |
456 | } | 456 | } |
457 | } | 457 | } |