Ejemplo n.º 1
0
APR_DECLARE(apr_status_t) apr_thread_cond_timedwait(apr_thread_cond_t *cond,
                                                    apr_thread_mutex_t *mutex,
                                                    apr_interval_time_t timeout)
{
    ULONG timeout_ms = apr_time_as_msec(timeout);
    return thread_cond_timedwait(cond, mutex, timeout_ms);
}
Ejemplo n.º 2
0
APR_DECLARE(apr_status_t) apr_thread_cond_timedwait(apr_thread_cond_t *cond,
                                                    apr_thread_mutex_t *mutex,
                                                    apr_interval_time_t timeout)
{
    ULONG timeout_ms = (timeout >= 0) ? apr_time_as_msec(timeout)
                                      : SEM_INDEFINITE_WAIT;
    return thread_cond_timedwait(cond, mutex, timeout_ms);
}
Ejemplo n.º 3
0
int main(void)
{
	int rv;
	thread_mutex_t *thread_mutex = NULL;
    thread_cond_t *thread_cond = NULL;
	thread_mutex_create(&thread_mutex,THREAD_MUTEX_DEFAULT);
	thread_cond_create(&thread_cond);

	rv = thread_cond_signal(thread_cond);                                                         
	rv = thread_mutex_lock(thread_mutex);                                                         
	rv = thread_cond_timedwait(thread_cond, thread_mutex, 10000);                                        
	printf("rv:%d\n",rv);
	rv = thread_mutex_unlock(thread_mutex);                                                       
	rv = thread_cond_broadcast(thread_cond);                                                      
	rv = thread_mutex_lock(thread_mutex);                                                         
	rv = thread_cond_timedwait(thread_cond, thread_mutex, 10000);                                        
	rv = thread_mutex_unlock(thread_mutex);


	thread_cond_destroy(thread_cond);
	thread_mutex_destroy(thread_mutex);
	return 0;
}
Ejemplo n.º 4
0
int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
                           const struct timespec *abstime)
{
    if (cond == NULL || mutex == NULL)
        return_errno(EINVAL, EINVAL);
    if (*cond == PTHREAD_COND_INITIALIZER)
        if (pthread_cond_init(cond, NULL) != OK)
            return errno;
    if (*mutex == PTHREAD_MUTEX_INITIALIZER)
        if (pthread_mutex_init(mutex, NULL) != OK)
            return errno;
    if (!thread_cond_timedwait((cond_t *)(*cond), (mutex_t *)(*mutex), abstime))
      return errno;
    return OK;
}
Ejemplo n.º 5
0
APR_DECLARE(apr_status_t) apr_thread_cond_wait(apr_thread_cond_t *cond,
                                               apr_thread_mutex_t *mutex)
{
    return thread_cond_timedwait(cond, mutex, SEM_INDEFINITE_WAIT);
}
Ejemplo n.º 6
0
int thread_cond_wait(cond_t *cond, mutex_t *mutex)
{
  return thread_cond_timedwait(cond, mutex, NULL);
}