Build mono runtime under none desktop Windows API family, adjustments and cleanup.
[mono.git] / mono / metadata / lock-tracer.c
index e0e6ac96a61053d69735feb81d1cbb5e378e5041..8ca4a27ab8211ed592ba4f0cbbe4d7f78d4ad91f 100644 (file)
 #endif
 
 #include <mono/io-layer/io-layer.h>
+#include <mono/utils/mono-compiler.h>
 
 #include "lock-tracer.h"
 
-
 /*
  * This is a very simple lock trace implementation. It can be used to verify that the runtime is
  * correctly following all locking rules.
  * 
  * To log more kind of locks just do the following:
  *     - add an entry into the RuntimeLocks enum
- *  - change mono_mutex_lock(mutex) to mono_locks_acquire (mutex, LockName)
- *  - change mono_mutex_unlock to mono_locks_release (mutex, LockName)
+ *  - change mono_os_mutex_lock(mutex) to mono_locks_os_acquire (mutex, LockName)
+ *  - change mono_os_mutex_unlock(mutex) to mono_locks_os_release (mutex, LockName)
+ *  - change mono_coop_mutex_lock(mutex) to mono_locks_coop_acquire (mutex, LockName)
+ *  - change mono_coop_mutex_unlock(mutex) to mono_locks_coop_release (mutex, LockName)
  *  - change the decoder to understand the new lock kind.
  *
  * TODO:
@@ -71,7 +73,7 @@ mono_locks_tracer_init (void)
        Dl_info info;
        int res;
        char *name;
-       mono_mutex_init_recursive (&tracer_lock);
+       mono_os_mutex_init_recursive (&tracer_lock);
        if (!g_getenv ("MONO_ENABLE_LOCK_TRACER"))
                return;
        name = g_strdup_printf ("locks.%d", getpid ());
@@ -122,7 +124,7 @@ add_record (RecordType record_kind, RuntimeLocks kind, gpointer lock)
                frames [i] = (gpointer)((size_t)frames[i] - base_address);
 
        /*We only dump 5 frames, which should be more than enough to most analysis.*/
-       msg = g_strdup_printf ("%x,%d,%d,%p,%p,%p,%p,%p,%p\n", (guint32)GetCurrentThreadId (), record_kind, kind, lock, frames [1], frames [2], frames [3], frames [4], frames [5]);
+       msg = g_strdup_printf ("%x,%d,%d,%p,%p,%p,%p,%p,%p\n", (guint32)mono_native_thread_id_get (), record_kind, kind, lock, frames [1], frames [2], frames [3], frames [4], frames [5]);
        fwrite (msg, strlen (msg), 1, trace_file);
        fflush (trace_file);
        g_free (msg);
@@ -139,5 +141,7 @@ mono_locks_lock_released (RuntimeLocks kind, gpointer lock)
 {
        add_record (RECORD_LOCK_RELEASED, kind, lock);
 }
+#else
 
-#endif
+MONO_EMPTY_SOURCE_FILE (lock_tracer);
+#endif /* LOCK_TRACER */