SimGrid  3.14.159
Versatile Simulation of Distributed Systems
Simulated Synchronization

Detailed Description

XBT synchronization tools.

This section describes the simulated synchronization mechanisms, that you can use in your simulation without deadlocks. See How to synchronize my user processes? for details.

Typedefs

typedef struct s_smx_mutex_ * xbt_mutex_t
 Thread mutex data type (opaque object) More...
 
typedef struct s_smx_cond_ * xbt_cond_t
 Thread condition data type (opaque object) More...
 

Functions

xbt_mutex_t xbt_mutex_init (void)
 Creates a new mutex variable. More...
 
void xbt_mutex_acquire (xbt_mutex_t mutex)
 Blocks onto the given mutex variable. More...
 
int xbt_mutex_try_acquire (xbt_mutex_t mutex)
 Tries to block onto the given mutex variable Tries to lock a mutex, return 1 if the mutex is unlocked, else 0. More...
 
void xbt_mutex_release (xbt_mutex_t mutex)
 Releases the given mutex variable. More...
 
void xbt_mutex_destroy (xbt_mutex_t mutex)
 Destroyes the given mutex variable. More...
 
xbt_cond_t xbt_cond_init (void)
 Creates a condition variable. More...
 
void xbt_cond_wait (xbt_cond_t cond, xbt_mutex_t mutex)
 Blocks onto the given condition variable. More...
 
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. More...
 
void xbt_cond_signal (xbt_cond_t cond)
 Signals the given mutex variable. More...
 
void xbt_cond_broadcast (xbt_cond_t cond)
 Broadcasts the given mutex variable. More...
 
void xbt_cond_destroy (xbt_cond_t cond)
 Destroys the given mutex variable. More...
 

Typedef Documentation

◆ xbt_mutex_t

typedef struct s_smx_mutex_* xbt_mutex_t

Thread mutex data type (opaque object)

◆ xbt_cond_t

typedef struct s_smx_cond_* xbt_cond_t

Thread condition data type (opaque object)

Function Documentation

◆ xbt_mutex_init()

xbt_mutex_t xbt_mutex_init ( void  )

Creates a new mutex variable.

Examples:
examples/msg/process-migration/process-migration.c.

◆ xbt_mutex_acquire()

void xbt_mutex_acquire ( xbt_mutex_t  mutex)

Blocks onto the given mutex variable.

Examples:
examples/msg/process-migration/process-migration.c.

◆ xbt_mutex_try_acquire()

int xbt_mutex_try_acquire ( xbt_mutex_t  mutex)

Tries to block onto the given mutex variable Tries to lock a mutex, return 1 if the mutex is unlocked, else 0.

This function does not block and wait for the mutex to be unlocked.

Parameters
mutexThe mutex
Returns
1 - mutex free, 0 - mutex used

◆ xbt_mutex_release()

void xbt_mutex_release ( xbt_mutex_t  mutex)

Releases the given mutex variable.

Examples:
examples/msg/process-migration/process-migration.c.

◆ xbt_mutex_destroy()

void xbt_mutex_destroy ( xbt_mutex_t  mutex)

Destroyes the given mutex variable.

Examples:
examples/msg/process-migration/process-migration.c.

◆ xbt_cond_init()

xbt_cond_t xbt_cond_init ( void  )

Creates a condition variable.

Examples:
examples/msg/process-migration/process-migration.c.

◆ xbt_cond_wait()

void xbt_cond_wait ( xbt_cond_t  cond,
xbt_mutex_t  mutex 
)

Blocks onto the given condition variable.

Examples:
examples/msg/process-migration/process-migration.c.

◆ xbt_cond_timedwait()

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

◆ xbt_cond_signal()

void xbt_cond_signal ( xbt_cond_t  cond)

Signals the given mutex variable.

◆ xbt_cond_broadcast()

void xbt_cond_broadcast ( xbt_cond_t  cond)

Broadcasts the given mutex variable.

Examples:
examples/msg/process-migration/process-migration.c.

◆ xbt_cond_destroy()

void xbt_cond_destroy ( xbt_cond_t  cond)

Destroys the given mutex variable.

Examples:
examples/msg/process-migration/process-migration.c.