示例#1
0
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;
}
示例#2
0
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;
}
示例#3
0
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 ) );
}
示例#4
0
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;
}
示例#5
0
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;
}
示例#6
0
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;
}
示例#7
0
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;
}
示例#8
0
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;
}
示例#9
0
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;
}
示例#10
0
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
}
示例#11
0
int 
ldap_pvt_thread_mutex_unlock( ldap_pvt_thread_mutex_t *mutex )
{
	return ERRVAL( pthread_mutex_unlock( mutex ) );
}
示例#12
0
int 
ldap_pvt_thread_mutex_init( ldap_pvt_thread_mutex_t *mutex )
{
	return ERRVAL( pthread_mutex_init(
		mutex, LDAP_INT_THREAD_MUTEXATTR_DEFAULT ) );
}
示例#13
0
int 
ldap_pvt_thread_mutex_destroy( ldap_pvt_thread_mutex_t *mutex )
{
	return ERRVAL( pthread_mutex_destroy( mutex ) );
}
示例#14
0
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 ) );
}
示例#15
0
int
ldap_pvt_thread_cond_broadcast( ldap_pvt_thread_cond_t *cond )
{
	return ERRVAL( pthread_cond_broadcast( cond ) );
}
示例#16
0
int 
ldap_pvt_thread_cond_signal( ldap_pvt_thread_cond_t *cond )
{
	return ERRVAL( pthread_cond_signal( cond ) );
}
示例#17
0
int 
ldap_pvt_thread_rdwr_init( ldap_pvt_thread_rdwr_t *rw )
{
	return ERRVAL( pthread_rwlock_init( rw, NULL ) );
}
示例#18
0
int ldap_pvt_thread_rdwr_wtrylock( ldap_pvt_thread_rdwr_t *rw )
{
	return ERRVAL( pthread_rwlock_trywrlock( rw ) );
}
示例#19
0
int 
ldap_pvt_thread_rdwr_destroy( ldap_pvt_thread_rdwr_t *rw )
{
	return ERRVAL( pthread_rwlock_destroy( rw ) );
}
示例#20
0
int 
ldap_pvt_thread_cond_init( ldap_pvt_thread_cond_t *cond )
{
	return ERRVAL( pthread_cond_init(
		cond, LDAP_INT_THREAD_CONDATTR_DEFAULT ) );
}
示例#21
0
int ldap_pvt_thread_rdwr_wunlock( ldap_pvt_thread_rdwr_t *rw )
{
	return ERRVAL( pthread_rwlock_unlock( rw ) );
}
示例#22
0
int 
ldap_pvt_thread_cond_destroy( ldap_pvt_thread_cond_t *cond )
{
	return ERRVAL( pthread_cond_destroy( cond ) );
}