diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2005-05-06 02:43:04 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2005-05-06 02:43:04 +0000 |
commit | 4e506c9aefe5b89970ae6894d05ad53c81af0d83 (patch) | |
tree | 2fac98df209e72eaba773cad2d7b90c99d9d9249 /mdk-stage1/dietlibc/libpthread/pthread_cond_wait.c | |
parent | 793707b39bf2e9df40a6d2d60b83b3061088ae9e (diff) | |
download | drakx-4e506c9aefe5b89970ae6894d05ad53c81af0d83.tar drakx-4e506c9aefe5b89970ae6894d05ad53c81af0d83.tar.gz drakx-4e506c9aefe5b89970ae6894d05ad53c81af0d83.tar.bz2 drakx-4e506c9aefe5b89970ae6894d05ad53c81af0d83.tar.xz drakx-4e506c9aefe5b89970ae6894d05ad53c81af0d83.zip |
use installed dietlibc, not our forked cvs version
Diffstat (limited to 'mdk-stage1/dietlibc/libpthread/pthread_cond_wait.c')
-rw-r--r-- | mdk-stage1/dietlibc/libpthread/pthread_cond_wait.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_cond_wait.c b/mdk-stage1/dietlibc/libpthread/pthread_cond_wait.c deleted file mode 100644 index 8db49e840..000000000 --- a/mdk-stage1/dietlibc/libpthread/pthread_cond_wait.c +++ /dev/null @@ -1,59 +0,0 @@ -#include <unistd.h> -#include <errno.h> - -#include <pthread.h> -#include "thread_internal.h" - -int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) -{ - _pthread_descr tmp; - _pthread_descr this; - - __THREAD_INIT(); - - this=__thread_self(); - - /* put in wait-chain */ - __NO_ASYNC_CANCEL_BEGIN; - __pthread_lock(&(cond->lock)); - this->waiting=1; - if (cond->wait_chain) { - for(tmp=cond->wait_chain;tmp->waitnext;tmp=tmp->waitnext); - tmp->waitnext=this; - } else cond->wait_chain=this; - __pthread_unlock(&(cond->lock)); - __NO_ASYNC_CANCEL_STOP; - - /* Aeh yeah / wait till signal */ - pthread_mutex_unlock(mutex); - while (this->waiting) { - __thread_wait_some_time(); - if (this->canceled) break; /* we got a cancel signal */ - } - pthread_mutex_lock(mutex); - - __NO_ASYNC_CANCEL_BEGIN; - __pthread_lock(&(cond->lock)); - if (this->waiting) { /* still waiting -> SIGNAL */ - _pthread_descr prev; - /* remove from wait-chain */ - prev=cond->wait_chain; - if ((prev=cond->wait_chain)==this) { - cond->wait_chain=this->waitnext; - } else { - for (tmp=prev->waitnext;tmp;prev=tmp,tmp=prev->waitnext) { - if (tmp==this) { - prev->waitnext=this->waitnext; - break; - } - } - } - this->waiting=0; - this->waitnext=0; - } - __pthread_unlock(&(cond->lock)); - __NO_ASYNC_CANCEL_END; - return 0; -} - - |