#include "pthread_impl.h" | |
int pthread_rwlock_wrlock(pthread_rwlock_t *rw) | |
{ | |
int nr; | |
while (pthread_rwlock_trywrlock(rw)==EAGAIN) { | |
if ((nr=rw->__readers)) | |
__wait(&rw->__readers, &rw->__waiters, nr, 0); | |
else | |
__wait(&rw->__wrlock, &rw->__waiters, 1, 0); | |
} | |
return 0; | |
} |