X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/37a4ff2a0e7306c51b6b3ca04d1c2ba82157645f..c581d553ae0df2e3d481bce42644d2034c5e3dcd:/src/xbt/xbt_os_thread.c diff --git a/src/xbt/xbt_os_thread.c b/src/xbt/xbt_os_thread.c index 2bbec7e4e9..cdafb51495 100644 --- a/src/xbt/xbt_os_thread.c +++ b/src/xbt/xbt_os_thread.c @@ -1157,7 +1157,12 @@ xbt_os_rmutex_t xbt_os_rmutex_init(void) void xbt_os_rmutex_acquire(xbt_os_rmutex_t rmutex) { xbt_os_thread_t self = xbt_os_thread_self(); - xbt_assert(self != NULL, "Cannot get my own thread object (is the thread module initialized?)"); + + if (self == NULL) { + /* the thread module is not initialized yet */ + rmutex->owner = NULL; + return; + } if (self != rmutex->owner) { xbt_os_mutex_acquire(rmutex->mutex); @@ -1170,6 +1175,11 @@ void xbt_os_rmutex_acquire(xbt_os_rmutex_t rmutex) void xbt_os_rmutex_release(xbt_os_rmutex_t rmutex) { + if (rmutex->owner == NULL) { + /* the thread module was not initialized */ + return; + } + xbt_assert(rmutex->owner == xbt_os_thread_self()); if (--rmutex->count == 0) {