From: Simon Marlow Date: Mon, 26 Jan 2009 14:00:30 +0000 (+0000) Subject: add comment for ASSERT_LOCK_HELD() X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=9f35f6715879b9e81ffd538c3049e2dd243f807e add comment for ASSERT_LOCK_HELD() --- 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