SimGrid  3.11
Versatile Simulation of Distributed Systems

XBT synchronization tools. More...

Typedefs

typedef struct s_xbt_thread_ * xbt_thread_t
 Thread data type (opaque object)
 
typedef struct s_xbt_mutex_ * xbt_mutex_t
 Thread mutex data type (opaque object)
 
typedef struct s_xbt_cond_ * xbt_cond_t
 Thread condition data type (opaque object)
 

Functions

xbt_thread_t xbt_thread_create (const char *name, void_f_pvoid_t start_routine, void *param, int joinable)
 Creates a new thread. More...
 
xbt_thread_t xbt_thread_self (void)
 Get a reference to the currently running thread.
 
const char * xbt_thread_name (xbt_thread_t t)
 Get the name of a given thread.
 
const char * xbt_thread_self_name (void)
 Get a reference to the name of the currently running thread.
 
void xbt_thread_join (xbt_thread_t thread)
 Wait for the termination of the given thread, and free it (ie the XBT wrapper around it, the OS frees the rest)
 
void xbt_thread_cancel (xbt_thread_t thread)
 Ends the life of the poor victim (not always working if it's computing, but working if it's blocked in the OS)
 
void xbt_thread_exit (void)
 commit suicide
 
void xbt_thread_yield (void)
 the current thread passes control to any possible thread wanting it
 
xbt_mutex_t xbt_mutex_init (void)
 Creates a new mutex variable.
 
void xbt_mutex_acquire (xbt_mutex_t mutex)
 Blocks onto the given mutex variable.
 
void xbt_mutex_release (xbt_mutex_t mutex)
 Releases the given mutex variable.
 
void xbt_mutex_destroy (xbt_mutex_t mutex)
 Destroyes the given mutex variable.
 
xbt_cond_t xbt_cond_init (void)
 Creates a condition variable.
 
void xbt_cond_wait (xbt_cond_t cond, xbt_mutex_t mutex)
 Blocks onto the given condition variable.
 
void xbt_cond_timedwait (xbt_cond_t cond, xbt_mutex_t mutex, double delay)
 Blocks onto the given condition variable, but only for the given amount of time. a timeout exception is raised if it was impossible to acquire it in the given time frame.
 
void xbt_cond_signal (xbt_cond_t cond)
 Signals the given mutex variable.
 
void xbt_cond_broadcast (xbt_cond_t cond)
 Broadcasts the given mutex variable.
 
void xbt_cond_destroy (xbt_cond_t cond)
 Destroys the given mutex variable.
 

Detailed Description

XBT synchronization tools.

This section describes the XBT synchronization tools. It defines types and functions very close to the pthread API, but widly usable. When used from the simulator, you will lock simulated processes as expected. When used from GRAS programs compiled for in-situ execution, you have synchronization mecanism portable to windows and UNIX. Nice, isn't it?

Function Documentation

xbt_thread_t xbt_thread_create ( const char *  name,
void_f_pvoid_t  start_routine,
void *  param,
int  joinable 
)

Creates a new thread.

Parameters
namethe name used in the logs for the newly created thread
start_routinefunction to run
paramparameter to pass to the function to run
joinablewhether the new thread should be started joinable or detached