diff options
Diffstat (limited to 'src/thread/sem_post.c')
| -rw-r--r-- | src/thread/sem_post.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/src/thread/sem_post.c b/src/thread/sem_post.c index 14a2dfe2..31e3293d 100644 --- a/src/thread/sem_post.c +++ b/src/thread/sem_post.c @@ -3,7 +3,7 @@  int sem_post(sem_t *sem)  { -	int val, waiters; +	int val, waiters, priv = sem->__val[2];  	do {  		val = sem->__val[0];  		waiters = sem->__val[1]; @@ -12,6 +12,6 @@ int sem_post(sem_t *sem)  			return -1;  		}  	} while (a_cas(sem->__val, val, val+1+(val<0)) != val); -	if (val<0 || waiters) __wake(sem->__val, 1, 0); +	if (val<0 || waiters) __wake(sem->__val, 1, priv);  	return 0;  }  | 
