diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-04-13 05:57:21 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-04-13 05:57:21 +0000 |
commit | d8d914df6806c6057b20c7311cad0bc2ac201c03 (patch) | |
tree | 6d2512373ef92b0abbebd4e0d0761cdd9715ea0b /linuxthreads/condvar.c | |
parent | b3ae0650bcff54f12d87f878000d4c488b365bf7 (diff) | |
download | glibc-d8d914df6806c6057b20c7311cad0bc2ac201c03.tar glibc-d8d914df6806c6057b20c7311cad0bc2ac201c03.tar.gz glibc-d8d914df6806c6057b20c7311cad0bc2ac201c03.tar.bz2 glibc-d8d914df6806c6057b20c7311cad0bc2ac201c03.zip |
Update.
* sysdeps/pthread/pthread.h: Add prototypes for pthread_spin_init,
pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
and pthread_spin_unlock.
* sysdeps/pthread/bits/pthreadtypes.h: Change struct _pthread_fastlock
into pthread_spinlock_t. Change all uses.
* spinlock.c: Implement pthread_spin_lock.
Rename __pthread_unlock to __pthread_spin_unlock and define weak
alias for real name.
Define pthread_spin_trylock, pthread_spin_init, and
pthread_spin_destroy.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* spinlock.h: Rename __pthread_unlock to __pthread_spin_unlock.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* Versions [libpthread] (GLIBC_2.2): Add pthread_spin_init,
pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
and pthread_spin_unlock.
* cancel.c: Use __pthread_spin_unlock instead of __pthread_unlock.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* condvar.c: Likewise.
* internals.h: Likewise.
* join.c: Likewise.
* manager.c: Likewise.
* mutex.c: Likewise.
* pthread.c: Likewise.
* rwlock.c: Likewise.
* semaphore.c: Likewise.
* signals.c: Likewise.
Diffstat (limited to 'linuxthreads/condvar.c')
-rw-r--r-- | linuxthreads/condvar.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/linuxthreads/condvar.c b/linuxthreads/condvar.c index 1c1b736f40..e1c8119231 100644 --- a/linuxthreads/condvar.c +++ b/linuxthreads/condvar.c @@ -66,7 +66,7 @@ static int cond_extricate_func(void *obj, pthread_descr th) __pthread_lock(&cond->__c_lock, self); did_remove = remove_from_queue(&cond->__c_waiting, th); - __pthread_unlock(&cond->__c_lock); + __pthread_spin_unlock(&cond->__c_lock); return did_remove; } @@ -101,7 +101,7 @@ int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) enqueue(&cond->__c_waiting, self); else already_canceled = 1; - __pthread_unlock(&cond->__c_lock); + __pthread_spin_unlock(&cond->__c_lock); if (already_canceled) { __pthread_set_own_extricate_if(self, 0); @@ -161,7 +161,7 @@ pthread_cond_timedwait_relative_old(pthread_cond_t *cond, enqueue(&cond->__c_waiting, self); else already_canceled = 1; - __pthread_unlock(&cond->__c_lock); + __pthread_spin_unlock(&cond->__c_lock); if (already_canceled) { __pthread_set_own_extricate_if(self, 0); @@ -231,7 +231,7 @@ pthread_cond_timedwait_relative_old(pthread_cond_t *cond, int was_on_queue; __pthread_lock(&cond->__c_lock, self); was_on_queue = remove_from_queue(&cond->__c_waiting, self); - __pthread_unlock(&cond->__c_lock); + __pthread_spin_unlock(&cond->__c_lock); if (was_on_queue) { __pthread_set_own_extricate_if(self, 0); @@ -295,7 +295,7 @@ pthread_cond_timedwait_relative_new(pthread_cond_t *cond, enqueue(&cond->__c_waiting, self); else already_canceled = 1; - __pthread_unlock(&cond->__c_lock); + __pthread_spin_unlock(&cond->__c_lock); if (already_canceled) { __pthread_set_own_extricate_if(self, 0); @@ -361,7 +361,7 @@ pthread_cond_timedwait_relative_new(pthread_cond_t *cond, __pthread_lock(&cond->__c_lock, self); was_on_queue = remove_from_queue(&cond->__c_waiting, self); - __pthread_unlock(&cond->__c_lock); + __pthread_spin_unlock(&cond->__c_lock); if (was_on_queue) { __pthread_set_own_extricate_if(self, 0); @@ -402,7 +402,7 @@ int pthread_cond_signal(pthread_cond_t *cond) __pthread_lock(&cond->__c_lock, NULL); th = dequeue(&cond->__c_waiting); - __pthread_unlock(&cond->__c_lock); + __pthread_spin_unlock(&cond->__c_lock); if (th != NULL) restart(th); return 0; } @@ -415,7 +415,7 @@ int pthread_cond_broadcast(pthread_cond_t *cond) /* Copy the current state of the waiting queue and empty it */ tosignal = cond->__c_waiting; cond->__c_waiting = NULL; - __pthread_unlock(&cond->__c_lock); + __pthread_spin_unlock(&cond->__c_lock); /* Now signal each process in the queue */ while ((th = dequeue(&tosignal)) != NULL) restart(th); return 0; |