X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/88e148ebc9d4eb7278b0fb333b17d3b87e9706ea..954676b700e711f38ec4d286d33d5427d3f4ca46:/src/msg/msg_synchro.c diff --git a/src/msg/msg_synchro.c b/src/msg/msg_synchro.c index c82528984b..70f13837fc 100644 --- a/src/msg/msg_synchro.c +++ b/src/msg/msg_synchro.c @@ -6,6 +6,7 @@ #include "msg_private.h" #include "xbt/sysdep.h" +#include "xbt/synchro_core.h" #include "xbt/log.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_synchro, msg, @@ -64,4 +65,22 @@ int MSG_sem_would_block(msg_sem_t sem) { return simcall_sem_would_block(sem); } +/** @brief Initializes a barrier, with count elements */ +msg_bar_t MSG_barrier_init(unsigned int count) { + return (msg_bar_t)xbt_barrier_init(count); +} + +/** @brief Initializes a barrier, with count elements */ +void MSG_barrier_destroy(msg_bar_t bar) { + xbt_barrier_destroy((xbt_bar_t)bar); +} + +/** @brief Performs a barrier already initialized */ +int MSG_barrier_wait(msg_bar_t bar) { + if(xbt_barrier_wait((xbt_bar_t)bar) == XBT_BARRIER_SERIAL_PROCESS) + return MSG_BARRIER_SERIAL_PROCESS; + else + return 0; +} + /**@}*/