Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / metadata / lock-tracer.h
index 82e29ad5ffa824c959a3219b73541276de8ee810..2f1a9ef0265e43dfc07184cce43d159a8c64631c 100644 (file)
@@ -1,10 +1,15 @@
+/**
+ * \file
+ */
+
 #ifndef __MONO_METADATA_LOCK_TRACER_H__
 #define __MONO_METADATA_LOCK_TRACER_H__
 
 /*This is a private header*/
 #include <glib.h>
 
-#include "mono/utils/mono-compiler.h"
+#include "mono/utils/mono-os-mutex.h"
+#include "mono/utils/mono-coop-mutex.h"
 
 G_BEGIN_DECLS
 
@@ -19,7 +24,8 @@ typedef enum {
        AssemblyBindingLock,
        MarshalLock,
        ClassesLock,
-       LoaderGlobalDataLock
+       LoaderGlobalDataLock,
+       ThreadsLock,
 } RuntimeLocks;
 
 #ifdef LOCK_TRACER
@@ -38,25 +44,30 @@ void mono_locks_lock_released (RuntimeLocks kind, gpointer lock);
 
 #endif
 
-#define mono_locks_acquire(LOCK, NAME) do { \
-       mono_mutex_lock (LOCK); \
-       mono_locks_lock_acquired (NAME, LOCK); \
-} while (0)
-
-#define mono_locks_release(LOCK, NAME) do { \
-       mono_locks_lock_released (NAME, LOCK); \
-       mono_mutex_unlock (LOCK); \
-} while (0)
-
-#define mono_locks_mutex_acquire(LOCK, NAME) do { \
-       mono_mutex_lock (LOCK); \
-       mono_locks_lock_acquired (NAME, LOCK); \
-} while (0)
-
-#define mono_locks_mutex_release(LOCK, NAME) do { \
-       mono_locks_lock_released (NAME, LOCK); \
-       mono_mutex_unlock (LOCK); \
-} while (0)
+#define mono_locks_os_acquire(LOCK,NAME)       \
+       do {    \
+               mono_os_mutex_lock (LOCK);      \
+               mono_locks_lock_acquired (NAME, LOCK);  \
+       } while (0)
+
+#define mono_locks_os_release(LOCK,NAME)       \
+       do {    \
+               mono_locks_lock_released (NAME, LOCK);  \
+               mono_os_mutex_unlock (LOCK);    \
+       } while (0)
+
+#define mono_locks_coop_acquire(LOCK,NAME)     \
+       do {    \
+               mono_coop_mutex_lock (LOCK);    \
+               mono_locks_lock_acquired (NAME, LOCK);  \
+       } while (0)
+
+#define mono_locks_coop_release(LOCK,NAME)     \
+       do {    \
+               mono_locks_lock_released (NAME, LOCK);  \
+               mono_coop_mutex_unlock (LOCK);  \
+       } while (0)
+
 G_END_DECLS
 
 #endif /* __MONO_METADATA_LOCK_TRACER_H__ */