X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Flock-tracer.h;h=2f1a9ef0265e43dfc07184cce43d159a8c64631c;hb=HEAD;hp=4069e97173fe1a355aff3aac47a22c93d5eed9f5;hpb=3fd4901a235bda0019f03317f4ee083744195758;p=mono.git diff --git a/mono/metadata/lock-tracer.h b/mono/metadata/lock-tracer.h index 4069e97173f..2f1a9ef0265 100644 --- a/mono/metadata/lock-tracer.h +++ b/mono/metadata/lock-tracer.h @@ -1,10 +1,15 @@ +/** + * \file + */ + #ifndef __MONO_METADATA_LOCK_TRACER_H__ #define __MONO_METADATA_LOCK_TRACER_H__ /*This is a private header*/ #include -#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 +22,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 +44,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__ */