int ldap_pvt_thread_rdwr_wunlock( ldap_pvt_thread_rdwr_t *rw ) { int rc; LDAP_JITTER(25); rc = ERRVAL( pthread_rwlock_unlock( rw ) ); LDAP_ENSURE(rc == 0); LDAP_JITTER(25); return rc; }
int ldap_pvt_thread_rdwr_wtrylock( ldap_pvt_thread_rdwr_t *rw ) { int rc; LDAP_JITTER(25); rc = ERRVAL( pthread_rwlock_trywrlock( rw ) ); LDAP_ENSURE(rc == 0 || rc == EBUSY); LDAP_JITTER(25); return rc; }
int ldap_pvt_thread_join( ldap_pvt_thread_t thread, void **thread_return ) { #if HAVE_PTHREADS < 7 void *dummy; if (thread_return==NULL) thread_return=&dummy; #endif return ERRVAL( pthread_join( thread, thread_return ) ); }
int ldap_pvt_thread_rdwr_init( ldap_pvt_thread_rdwr_t *rw ) { int rc; LDAP_JITTER(25); rc = ERRVAL( pthread_rwlock_init( rw, NULL ) ); LDAP_ENSURE(rc == 0); LDAP_JITTER(25); return rc; }
int ldap_pvt_thread_mutex_unlock( ldap_pvt_thread_mutex_t *mutex ) { int rc; LDAP_JITTER(25); rc = ERRVAL( pthread_mutex_unlock( mutex ) ); LDAP_ENSURE(rc == 0); LDAP_JITTER(25); return rc; }
int ldap_pvt_thread_mutex_init( ldap_pvt_thread_mutex_t *mutex ) { int rc; LDAP_JITTER(25); rc = ERRVAL( pthread_mutex_init( mutex, ldap_mutex_attr() ) ); LDAP_ENSURE(rc == 0); LDAP_JITTER(25); return rc; }
int ldap_pvt_thread_cond_broadcast( ldap_pvt_thread_cond_t *cond ) { int rc; LDAP_JITTER(25); rc = ERRVAL( pthread_cond_broadcast( cond ) ); LDAP_ENSURE(rc == 0); LDAP_JITTER(25); return rc; }
int ldap_pvt_thread_cond_init( ldap_pvt_thread_cond_t *cond ) { int rc; LDAP_JITTER(25); rc = ERRVAL( pthread_cond_init( cond, LDAP_INT_THREAD_CONDATTR_DEFAULT ) ); LDAP_ENSURE(rc == 0); LDAP_JITTER(25); return rc; }
int ldap_pvt_thread_cond_wait( ldap_pvt_thread_cond_t *cond, ldap_pvt_thread_mutex_t *mutex ) { int rc; LDAP_JITTER(25); rc = ERRVAL( pthread_cond_wait( cond, mutex ) ); LDAP_ENSURE(rc == 0); LDAP_JITTER(25); return rc; }
int ldap_pvt_thread_kill( ldap_pvt_thread_t thread, int signo ) { #if defined(HAVE_PTHREAD_KILL) && HAVE_PTHREADS > 4 /* MacOS 10.1 is detected as v10 but has no pthread_kill() */ return ERRVAL( pthread_kill( thread, signo ) ); #else /* pthread package with DCE */ if (kill( getpid(), signo )<0) return errno; return 0; #endif }
int ldap_pvt_thread_mutex_unlock( ldap_pvt_thread_mutex_t *mutex ) { return ERRVAL( pthread_mutex_unlock( mutex ) ); }
int ldap_pvt_thread_mutex_init( ldap_pvt_thread_mutex_t *mutex ) { return ERRVAL( pthread_mutex_init( mutex, LDAP_INT_THREAD_MUTEXATTR_DEFAULT ) ); }
int ldap_pvt_thread_mutex_destroy( ldap_pvt_thread_mutex_t *mutex ) { return ERRVAL( pthread_mutex_destroy( mutex ) ); }
int ldap_pvt_thread_cond_wait( ldap_pvt_thread_cond_t *cond, ldap_pvt_thread_mutex_t *mutex ) { return ERRVAL( pthread_cond_wait( cond, mutex ) ); }
int ldap_pvt_thread_cond_broadcast( ldap_pvt_thread_cond_t *cond ) { return ERRVAL( pthread_cond_broadcast( cond ) ); }
int ldap_pvt_thread_cond_signal( ldap_pvt_thread_cond_t *cond ) { return ERRVAL( pthread_cond_signal( cond ) ); }
int ldap_pvt_thread_rdwr_init( ldap_pvt_thread_rdwr_t *rw ) { return ERRVAL( pthread_rwlock_init( rw, NULL ) ); }
int ldap_pvt_thread_rdwr_wtrylock( ldap_pvt_thread_rdwr_t *rw ) { return ERRVAL( pthread_rwlock_trywrlock( rw ) ); }
int ldap_pvt_thread_rdwr_destroy( ldap_pvt_thread_rdwr_t *rw ) { return ERRVAL( pthread_rwlock_destroy( rw ) ); }
int ldap_pvt_thread_cond_init( ldap_pvt_thread_cond_t *cond ) { return ERRVAL( pthread_cond_init( cond, LDAP_INT_THREAD_CONDATTR_DEFAULT ) ); }
int ldap_pvt_thread_rdwr_wunlock( ldap_pvt_thread_rdwr_t *rw ) { return ERRVAL( pthread_rwlock_unlock( rw ) ); }
int ldap_pvt_thread_cond_destroy( ldap_pvt_thread_cond_t *cond ) { return ERRVAL( pthread_cond_destroy( cond ) ); }