X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FOSThreads.h;fp=includes%2FOSThreads.h;h=d4dbc361e1febe76e6f813fd68111bf45a67572b;hb=9f35f6715879b9e81ffd538c3049e2dd243f807e;hp=fd57f56606bb0211e01db2c9847929494875735b;hpb=ff124db4ad2ea145a13c711d4da9e293fa82f58d;p=ghc-hetmet.git diff --git a/includes/OSThreads.h b/includes/OSThreads.h index fd57f56..d4dbc36 100644 --- a/includes/OSThreads.h +++ b/includes/OSThreads.h @@ -54,6 +54,11 @@ typedef pthread_key_t ThreadLocalKey; barf("RELEASE_LOCK: I do not own this lock: %s %d", __FILE__,__LINE__); \ } +// Note: this assertion calls pthread_mutex_lock() on a mutex that +// is already held by the calling thread. The mutex should therefore +// have been created with PTHREAD_MUTEX_ERRORCHECK, otherwise this +// assertion will hang. We always initialise mutexes with +// PTHREAD_MUTEX_ERRORCHECK when DEBUG is on (see rts/posix/OSThreads.h). #define ASSERT_LOCK_HELD(mutex) ASSERT(pthread_mutex_lock(mutex) == EDEADLK) #endif // CMINUSMINUS