X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/eb547ff91feeac5a0e9e258872cc648d6d947aa2..0ff2ce0eb47f6598efe54b6b614d0291594fbf6f:/include/xbt/synchro_core.h diff --git a/include/xbt/synchro_core.h b/include/xbt/synchro_core.h index 5313a9c448..a260c0d97b 100644 --- a/include/xbt/synchro_core.h +++ b/include/xbt/synchro_core.h @@ -79,6 +79,14 @@ XBT_PUBLIC(xbt_mutex_t) xbt_mutex_init(void); /** @brief Blocks onto the given mutex variable */ XBT_PUBLIC(void) xbt_mutex_acquire(xbt_mutex_t mutex); +/** @brief 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. + * \param mutex The mutex + * \return 1 - mutex free, 0 - mutex used + */ +XBT_PUBLIC(int) xbt_mutex_try_acquire(xbt_mutex_t mutex); + /** @brief Releases the given mutex variable */ XBT_PUBLIC(void) xbt_mutex_release(xbt_mutex_t mutex); @@ -107,10 +115,11 @@ XBT_PUBLIC(void) xbt_cond_broadcast(xbt_cond_t cond); XBT_PUBLIC(void) xbt_cond_destroy(xbt_cond_t cond); +#define XBT_BARRIER_SERIAL_PROCESS -1 typedef struct s_xbt_bar_ *xbt_bar_t; XBT_PUBLIC(xbt_bar_t) xbt_barrier_init( unsigned int count); XBT_PUBLIC(void) xbt_barrier_destroy(xbt_bar_t bar); -XBT_PUBLIC(void) xbt_barrier_wait(xbt_bar_t bar); +XBT_PUBLIC(int) xbt_barrier_wait(xbt_bar_t bar); /** @} */