#include <isc/lang.h>
#include <isc/mutex.h>
#include <isc/result.h>
#include <isc/types.h>
Go to the source code of this file.
Defines | |
#define | ISC_CONDITION_H 1 |
#define | isc_condition_init(cp) |
#define | isc_condition_wait(cp, mp) |
#define | isc_condition_signal(cp) |
#define | isc_condition_broadcast(cp) |
#define | isc_condition_destroy(cp) |
Typedefs | |
typedef pthread_cond_t | isc_condition_t |
Functions | |
ISC_LANG_BEGINDECLS isc_result_t | isc_condition_waituntil (isc_condition_t *, isc_mutex_t *, isc_time_t *) |
Definition in file condition.h.
#define ISC_CONDITION_H 1 |
Definition at line 21 of file condition.h.
#define isc_condition_init | ( | cp | ) |
Value:
((pthread_cond_init((cp), NULL) == 0) ? \ ISC_R_SUCCESS : ISC_R_UNEXPECTED)
Definition at line 32 of file condition.h.
#define isc_condition_wait | ( | cp, | |||
mp | ) |
Value:
((pthread_cond_wait((cp), (mp)) == 0) ? \ ISC_R_SUCCESS : ISC_R_UNEXPECTED)
Definition at line 41 of file condition.h.
#define isc_condition_signal | ( | cp | ) |
Value:
((pthread_cond_signal((cp)) == 0) ? \ ISC_R_SUCCESS : ISC_R_UNEXPECTED)
Definition at line 46 of file condition.h.
#define isc_condition_broadcast | ( | cp | ) |
Value:
((pthread_cond_broadcast((cp)) == 0) ? \ ISC_R_SUCCESS : ISC_R_UNEXPECTED)
Definition at line 50 of file condition.h.
#define isc_condition_destroy | ( | cp | ) |
Value:
((pthread_cond_destroy((cp)) == 0) ? \ ISC_R_SUCCESS : ISC_R_UNEXPECTED)
Definition at line 54 of file condition.h.
typedef pthread_cond_t isc_condition_t |
Definition at line 30 of file condition.h.
ISC_LANG_BEGINDECLS isc_result_t isc_condition_waituntil | ( | isc_condition_t * | , | |
isc_mutex_t * | , | |||
isc_time_t * | ||||
) |
POSIX defines a timespec's tv_nsec as long. isc_time_nanoseconds ensures its return value is < 1 billion, which will fit in a long.
Definition at line 34 of file condition.c.
References isc__strerror(), ISC_MSG_RETURNED, isc_msgcat_get(), ISC_MSGSET_GENERAL, ISC_R_RANGE, ISC_R_SUCCESS, ISC_R_TIMEDOUT, ISC_R_UNEXPECTED, ISC_STRERRORSIZE, isc_time_nanoseconds(), isc_time_secondsastimet(), REQUIRE, and UNEXPECTED_ERROR.