SimGrid
3.13
Versatile Simulation of Distributed Systems
|
This section describes several explicit synchronization mechanisms existing in MSG: semaphores (msg_sem_t) and friends. More...
Macros | |
#define | MSG_BARRIER_SERIAL_PROCESS |
Opaque type representing a barrier identifier. More... | |
Typedefs | |
typedef struct s_smx_sem * | msg_sem_t |
Opaque type representing a semaphore. More... | |
Functions | |
msg_sem_t | MSG_sem_init (int initial_value) |
creates a semaphore object of the given initial capacity More... | |
void | MSG_sem_acquire (msg_sem_t sem) |
locks on a semaphore object More... | |
msg_error_t | MSG_sem_acquire_timeout (msg_sem_t sem, double timeout) |
locks on a semaphore object up until the provided timeout expires More... | |
void | MSG_sem_release (msg_sem_t sem) |
releases the semaphore object More... | |
void | MSG_sem_get_capacity (msg_sem_t sem) |
void | MSG_sem_destroy (msg_sem_t sem) |
int | MSG_sem_would_block (msg_sem_t sem) |
returns a boolean indicating if this semaphore would block at this very specific time More... | |
msg_bar_t | MSG_barrier_init (unsigned int count) |
Initializes a barrier, with count elements. More... | |
void | MSG_barrier_destroy (msg_bar_t bar) |
Initializes a barrier, with count elements. More... | |
int | MSG_barrier_wait (msg_bar_t bar) |
Performs a barrier already initialized. More... | |
This section describes several explicit synchronization mechanisms existing in MSG: semaphores (msg_sem_t) and friends.
In some situations, these things are very helpful to synchronize processes without message exchanges.
#define MSG_BARRIER_SERIAL_PROCESS |
Opaque type representing a barrier identifier.
msg_sem_t MSG_sem_init | ( | int | initial_value | ) |
creates a semaphore object of the given initial capacity
msg_error_t MSG_sem_acquire_timeout | ( | msg_sem_t | sem, |
double | timeout | ||
) |
locks on a semaphore object up until the provided timeout expires
int MSG_sem_would_block | ( | msg_sem_t | sem | ) |
returns a boolean indicating if this semaphore would block at this very specific time
Note that the returned value may be wrong right after the function call, when you try to use it... But that's a classical semaphore issue, and SimGrid's semaphore are not different to usual ones here.
msg_bar_t MSG_barrier_init | ( | unsigned int | count | ) |
Initializes a barrier, with count elements.
int MSG_barrier_wait | ( | msg_bar_t | bar | ) |
Performs a barrier already initialized.