X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6de03ecc4e630732984a0673512a5d15fd75e270..0917b3d40163b247c05fe33f60eb71c00a7c6854:/include/xbt/synchro_core.h diff --git a/include/xbt/synchro_core.h b/include/xbt/synchro_core.h index c41c26c648..2c8e641a1b 100644 --- a/include/xbt/synchro_core.h +++ b/include/xbt/synchro_core.h @@ -79,6 +79,15 @@ 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 + * \param issuer The process that tries to acquire 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); @@ -106,6 +115,13 @@ XBT_PUBLIC(void) xbt_cond_broadcast(xbt_cond_t cond); /** @brief Destroys the given mutex variable */ 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(int) xbt_barrier_wait(xbt_bar_t bar); + /** @} */ SG_END_DECL()