struct SilcMutexStruct {
#ifdef SILC_THREADS
CRITICAL_SECTION mutex;
- BOOL locked;
-#else
- void *tmp;
#endif /* SILC_THREADS */
+ unsigned int locked : 1;
};
SilcBool silc_mutex_alloc(SilcMutex *mutex)
#ifdef SILC_THREADS
if (mutex) {
EnterCriticalSection(&mutex->mutex);
- assert(mutex->locked == FALSE);
+ SILC_ASSERT(mutex->locked == FALSE);
mutex->locked = TRUE;
}
#endif /* SILC_THREADS */
{
#ifdef SILC_THREADS
if (mutex) {
- assert(mutex->locked == TRUE);
+ SILC_ASSERT(mutex->locked == TRUE);
mutex->locked = FALSE;
LeaveCriticalSection(&mutex->mutex);
}
#endif /* SILC_THREADS */
}
+void silc_mutex_assert_locked(SilcMutex mutex)
+{
+#ifdef SILC_THREADS
+ if (mutex)
+ SILC_ASSERT(mutex->locked);
+#endif /* SILC_THREADS */
+}
+
/**************************** SILC Cond API ******************************/