OpenMPI  0.1.1
evthread_condition_callbacks Struct Reference

This structure describes the interface a threading library uses for condition variables. More...

#include <thread.h>

Data Fields

int condition_api_version
 The current version of the conditions API. More...
 
void *(* alloc_condition )(unsigned condtype)
 Function to allocate and initialize a new condition variable. More...
 
void(* free_condition )(void *cond)
 Function to free a condition variable. More...
 
int(* signal_condition )(void *cond, int broadcast)
 Function to signal a condition variable. More...
 
int(* wait_condition )(void *cond, void *lock, const struct timeval *timeout)
 Function to wait for a condition variable. More...
 

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.

Referenced by evthread_set_condition_callbacks().

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.

Referenced by evthread_set_condition_callbacks().

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.

Referenced by evthread_set_condition_callbacks().

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.

Referenced by evthread_enable_lock_debuging(), and evthread_set_condition_callbacks().


The documentation for this struct was generated from the following file: