Merge pull request #3763 from akoeplinger/move-type
[mono.git] / mono / metadata / lock-tracer.h
index 4069e97173fe1a355aff3aac47a22c93d5eed9f5..ee4ab3419504a593ece5443c857a74792ae186af 100644 (file)
@@ -4,7 +4,8 @@
 /*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
 
@@ -17,15 +18,18 @@ typedef enum {
        DomainJitCodeHashLock,
        IcallLock,
        AssemblyBindingLock,
-       MarshalLock
+       MarshalLock,
+       ClassesLock,
+       LoaderGlobalDataLock,
+       ThreadsLock,
 } RuntimeLocks;
 
 #ifdef LOCK_TRACER
 
-void mono_locks_tracer_init (void) MONO_INTERNAL;
+void mono_locks_tracer_init (void);
 
-void mono_locks_lock_acquired (RuntimeLocks kind, gpointer lock) MONO_INTERNAL;
-void mono_locks_lock_released (RuntimeLocks kind, gpointer lock) MONO_INTERNAL;
+void mono_locks_lock_acquired (RuntimeLocks kind, gpointer lock);
+void mono_locks_lock_released (RuntimeLocks kind, gpointer lock);
 
 #else
 
@@ -36,25 +40,30 @@ void mono_locks_lock_released (RuntimeLocks kind, gpointer lock) MONO_INTERNAL;
 
 #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__ */