NAME
evthread_condition_callbacks - This structure describes the interface a
threading library uses for condition variables.
SYNOPSIS
#include <thread.h>
Data Fields
void *(*
alloc_condition )(unsigned condtype)
Function to allocate and initialize a new condition variable. int
condition_api_version
The current version of the conditions API. void(*
free_condition
)(void *cond)
Function to free a condition variable. int(*
signal_condition
)(void *cond, int broadcast)
Function to signal a condition variable. int(*
wait_condition
)(void *cond, void *lock, const struct timeval *timeout)
Function to wait for a condition variable.
Detailed Description
This structure describes the interface a threading library uses for condition
variables.
It's used to tell evthread_set_condition_callbacks how to use locking on this
platform.
Field Documentation
void*(* evthread_condition_callbacks::alloc_condition) (unsigned
condtype)
Function to allocate and initialize a new condition variable. Returns the
condition variable on success, and NULL on failure. The 'condtype' argument
will be 0 with this API version.
int evthread_condition_callbacks::condition_api_version
The current version of the conditions API. Set this to
EVTHREAD_CONDITION_API_VERSION
void(* evthread_condition_callbacks::free_condition) (void
*cond)
Function to free a condition variable.
int(* evthread_condition_callbacks::signal_condition) (void
*cond, int broadcast)
Function to signal a condition variable. If 'broadcast' is 1, all threads
waiting on 'cond' should be woken; otherwise, only on one thread is worken.
Should return 0 on success, -1 on failure. This function will only be called
while holding the associated lock for the condition.
int(* evthread_condition_callbacks::wait_condition) (void *cond,
void *lock, const struct timeval *timeout)
Function to wait for a condition variable. The lock 'lock' will be held when
this function is called; should be released while waiting for the condition to
be come signalled, and should be held again when this function returns. If
timeout is provided, it is interval of seconds to wait for the event to become
signalled; if it is NULL, the function should wait indefinitely.
The function should return -1 on error; 0 if the condition was signalled, or 1
on a timeout.
Author
Generated automatically by Doxygen for libevent from the source code.