SimGrid: Synchro stuff

SimGrid 3.10 Versatile Simulation of Distributed Systems

- Home page
- Online documentation
- Dev's Corner

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Typedefs | Functions
Synchro stuff
Misc general purposes library components

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.
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

  name | the name used in the logs for the newly created thread
  start_routine | function to run
  param | parameter to pass to the function to run
  joinable | whether the new thread should be started joinable or detached