evthread_condition_callbacks - This structure describes the interface a
  threading library uses for condition variables.
#include <thread.h>
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. 
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.
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.
The current version of the conditions API. Set this to
  EVTHREAD_CONDITION_API_VERSION
Function to free a condition variable.
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.
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.
Generated automatically by Doxygen for libevent from the source code.