X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fio-layer%2Fmutexes.c;h=730363e6302b1fa16a42da9722eb0690ea970402;hb=3d2ddac37f5d79e00e4eea92645901c1ad2ff31e;hp=8852a4b36d1b3e0489a6bac2bcca93333d8501b1;hpb=f07b0c9415e975fa80b45d4c671271e4a291d39d;p=mono.git diff --git a/mono/io-layer/mutexes.c b/mono/io-layer/mutexes.c index 8852a4b36d1..730363e6302 100644 --- a/mono/io-layer/mutexes.c +++ b/mono/io-layer/mutexes.c @@ -17,13 +17,9 @@ #include #include #include +#include #include - -#if 0 -#define DEBUG(...) g_message(__VA_ARGS__) -#else -#define DEBUG(...) -#endif +#include static void mutex_signal(gpointer handle); static gboolean mutex_own (gpointer handle); @@ -91,13 +87,9 @@ static mono_once_t mutex_ops_once=MONO_ONCE_INIT; static void mutex_ops_init (void) { _wapi_handle_register_capabilities (WAPI_HANDLE_MUTEX, - WAPI_HANDLE_CAP_WAIT | - WAPI_HANDLE_CAP_SIGNAL | - WAPI_HANDLE_CAP_OWN); + (WapiHandleCapability)(WAPI_HANDLE_CAP_WAIT | WAPI_HANDLE_CAP_SIGNAL | WAPI_HANDLE_CAP_OWN)); _wapi_handle_register_capabilities (WAPI_HANDLE_NAMEDMUTEX, - WAPI_HANDLE_CAP_WAIT | - WAPI_HANDLE_CAP_SIGNAL | - WAPI_HANDLE_CAP_OWN); + (WapiHandleCapability)(WAPI_HANDLE_CAP_WAIT | WAPI_HANDLE_CAP_SIGNAL | WAPI_HANDLE_CAP_OWN)); } static void mutex_signal(gpointer handle) @@ -120,7 +112,7 @@ static gboolean mutex_own (gpointer handle) _wapi_thread_own_mutex (handle); - DEBUG("%s: owning mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: owning mutex handle %p", __func__, handle); _wapi_handle_set_signal_state (handle, FALSE, FALSE); @@ -128,7 +120,7 @@ static gboolean mutex_own (gpointer handle) mutex_handle->tid = pthread_self (); mutex_handle->recursion++; - DEBUG ("%s: mutex handle %p locked %d times by %d:%ld", __func__, + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: mutex handle %p locked %d times by %d:%ld", __func__, handle, mutex_handle->recursion, mutex_handle->pid, mutex_handle->tid); @@ -148,17 +140,17 @@ static gboolean mutex_is_owned (gpointer handle) return(FALSE); } - DEBUG("%s: testing ownership mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: testing ownership mutex handle %p", __func__, handle); if (mutex_handle->recursion > 0 && mutex_handle->pid == _wapi_getpid () && pthread_equal (mutex_handle->tid, pthread_self ())) { - DEBUG ("%s: mutex handle %p owned by %d:%ld", __func__, + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: mutex handle %p owned by %d:%ld", __func__, handle, _wapi_getpid (), pthread_self ()); return(TRUE); } else { - DEBUG ("%s: mutex handle %p not owned by %d:%ld, but locked %d times by %d:%ld", __func__, handle, _wapi_getpid (), pthread_self (), mutex_handle->recursion, mutex_handle->pid, mutex_handle->tid); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: mutex handle %p not owned by %d:%ld, but locked %d times by %d:%ld", __func__, handle, _wapi_getpid (), pthread_self (), mutex_handle->recursion, mutex_handle->pid, mutex_handle->tid); return(FALSE); } @@ -175,7 +167,7 @@ static gboolean namedmutex_own (gpointer handle) struct _WapiHandle_namedmutex *namedmutex_handle; gboolean ok; - DEBUG ("%s: owning named mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: owning named mutex handle %p", __func__, handle); ok = _wapi_lookup_handle (handle, WAPI_HANDLE_NAMEDMUTEX, (gpointer *)&namedmutex_handle); @@ -193,7 +185,7 @@ static gboolean namedmutex_own (gpointer handle) _wapi_shared_handle_set_signal_state (handle, FALSE); - DEBUG ("%s: mutex handle %p locked %d times by %d:%ld", __func__, + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: mutex handle %p locked %d times by %d:%ld", __func__, handle, namedmutex_handle->recursion, namedmutex_handle->pid, namedmutex_handle->tid); @@ -213,17 +205,17 @@ static gboolean namedmutex_is_owned (gpointer handle) return(FALSE); } - DEBUG ("%s: testing ownership mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: testing ownership mutex handle %p", __func__, handle); if (namedmutex_handle->recursion > 0 && namedmutex_handle->pid == _wapi_getpid () && pthread_equal (namedmutex_handle->tid, pthread_self ())) { - DEBUG ("%s: mutex handle %p owned by %d:%ld", __func__, + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: mutex handle %p owned by %d:%ld", __func__, handle, _wapi_getpid (), pthread_self ()); return(TRUE); } else { - DEBUG ("%s: mutex handle %p not owned by %d:%ld, but locked %d times by %d:%ld", __func__, handle, _wapi_getpid (), pthread_self (), namedmutex_handle->recursion, namedmutex_handle->pid, namedmutex_handle->tid); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: mutex handle %p not owned by %d:%ld, but locked %d times by %d:%ld", __func__, handle, _wapi_getpid (), pthread_self (), namedmutex_handle->recursion, namedmutex_handle->pid, namedmutex_handle->tid); return(FALSE); } @@ -249,26 +241,26 @@ static void namedmutex_prewait (gpointer handle) return; } - DEBUG ("%s: Checking ownership of named mutex handle %p", __func__, + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Checking ownership of named mutex handle %p", __func__, handle); if (namedmutex_handle->recursion == 0) { - DEBUG ("%s: Named mutex handle %p not owned", __func__, + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Named mutex handle %p not owned", __func__, handle); } else if (namedmutex_handle->pid == _wapi_getpid ()) { - DEBUG ("%s: Named mutex handle %p owned by this process", + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Named mutex handle %p owned by this process", __func__, handle); } else { int thr_ret; gpointer proc_handle; - DEBUG ("%s: Named mutex handle %p owned by another process", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Named mutex handle %p owned by another process", __func__, handle); proc_handle = OpenProcess (0, 0, namedmutex_handle->pid); if (proc_handle == NULL) { /* Didn't find the process that this handle * was owned by, overriding it */ - DEBUG ("%s: overriding old owner of named mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: overriding old owner of named mutex handle %p", __func__, handle); thr_ret = _wapi_handle_lock_shared_handles (); g_assert (thr_ret == 0); @@ -279,7 +271,7 @@ static void namedmutex_prewait (gpointer handle) _wapi_shared_handle_set_signal_state (handle, TRUE); _wapi_handle_unlock_shared_handles (); } else { - DEBUG ("%s: Found active pid %d for named mutex handle %p", __func__, namedmutex_handle->pid, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Found active pid %d for named mutex handle %p", __func__, namedmutex_handle->pid, handle); } if (proc_handle != NULL) CloseProcess (proc_handle); @@ -305,7 +297,7 @@ static void mutex_abandon (gpointer handle, pid_t pid, pthread_t tid) if (mutex_handle->pid == pid && pthread_equal (mutex_handle->tid, tid)) { - DEBUG ("%s: Mutex handle %p abandoned!", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Mutex handle %p abandoned!", __func__, handle); mutex_handle->recursion = 0; mutex_handle->pid = 0; @@ -337,7 +329,7 @@ static void namedmutex_abandon (gpointer handle, pid_t pid, pthread_t tid) if (mutex_handle->pid == pid && pthread_equal (mutex_handle->tid, tid)) { - DEBUG ("%s: Mutex handle %p abandoned!", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Mutex handle %p abandoned!", __func__, handle); mutex_handle->recursion = 0; mutex_handle->pid = 0; @@ -379,7 +371,7 @@ static gpointer mutex_create (WapiSecurityAttributes *security G_GNUC_UNUSED, */ SetLastError (ERROR_SUCCESS); - DEBUG ("%s: Creating unnamed mutex", __func__); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Creating unnamed mutex", __func__); handle = _wapi_handle_new (WAPI_HANDLE_MUTEX, &mutex_handle); if (handle == _WAPI_HANDLE_INVALID) { @@ -397,7 +389,7 @@ static gpointer mutex_create (WapiSecurityAttributes *security G_GNUC_UNUSED, _wapi_handle_set_signal_state (handle, TRUE, FALSE); } - DEBUG ("%s: returning mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: returning mutex handle %p", __func__, handle); thr_ret = _wapi_handle_unlock_handle (handle); g_assert (thr_ret == 0); @@ -430,7 +422,7 @@ static gpointer namedmutex_create (WapiSecurityAttributes *security G_GNUC_UNUSE utf8_name = g_utf16_to_utf8 (name, -1, NULL, NULL, NULL); - DEBUG ("%s: Creating named mutex [%s]", __func__, utf8_name); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Creating named mutex [%s]", __func__, utf8_name); offset = _wapi_search_handle_namespace (WAPI_HANDLE_NAMEDMUTEX, utf8_name); @@ -494,7 +486,7 @@ static gpointer namedmutex_create (WapiSecurityAttributes *security G_GNUC_UNUSE _wapi_handle_unlock_shared_handles (); } - DEBUG ("%s: returning mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: returning mutex handle %p", __func__, handle); cleanup: g_free (utf8_name); @@ -555,11 +547,11 @@ static gboolean mutex_release (gpointer handle) thr_ret = _wapi_handle_lock_handle (handle); g_assert (thr_ret == 0); - DEBUG("%s: Releasing mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Releasing mutex handle %p", __func__, handle); if (!pthread_equal (mutex_handle->tid, tid) || mutex_handle->pid != pid) { - DEBUG("%s: We don't own mutex handle %p (owned by %d:%ld, me %d:%ld)", __func__, handle, mutex_handle->pid, mutex_handle->tid, _wapi_getpid (), tid); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: We don't own mutex handle %p (owned by %d:%ld, me %d:%ld)", __func__, handle, mutex_handle->pid, mutex_handle->tid, _wapi_getpid (), tid); goto cleanup; } @@ -571,7 +563,7 @@ static gboolean mutex_release (gpointer handle) if(mutex_handle->recursion==0) { _wapi_thread_disown_mutex (handle); - DEBUG("%s: Unlocking mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Unlocking mutex handle %p", __func__, handle); mutex_handle->pid=0; mutex_handle->tid=0; @@ -605,11 +597,11 @@ static gboolean namedmutex_release (gpointer handle) thr_ret = _wapi_handle_lock_shared_handles (); g_assert (thr_ret == 0); - DEBUG("%s: Releasing mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Releasing mutex handle %p", __func__, handle); if (!pthread_equal (mutex_handle->tid, tid) || mutex_handle->pid != pid) { - DEBUG("%s: We don't own mutex handle %p (owned by %d:%ld, me %d:%ld)", __func__, handle, mutex_handle->pid, mutex_handle->tid, _wapi_getpid (), tid); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: We don't own mutex handle %p (owned by %d:%ld, me %d:%ld)", __func__, handle, mutex_handle->pid, mutex_handle->tid, _wapi_getpid (), tid); goto cleanup; } @@ -621,7 +613,7 @@ static gboolean namedmutex_release (gpointer handle) if(mutex_handle->recursion==0) { _wapi_thread_disown_mutex (handle); - DEBUG("%s: Unlocking mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Unlocking mutex handle %p", __func__, handle); mutex_handle->pid=0; mutex_handle->tid=0; @@ -680,7 +672,7 @@ gpointer OpenMutex (guint32 access G_GNUC_UNUSED, gboolean inherit G_GNUC_UNUSED utf8_name = g_utf16_to_utf8 (name, -1, NULL, NULL, NULL); - DEBUG ("%s: Opening named mutex [%s]", __func__, utf8_name); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: Opening named mutex [%s]", __func__, utf8_name); offset = _wapi_search_handle_namespace (WAPI_HANDLE_NAMEDMUTEX, utf8_name); @@ -709,7 +701,7 @@ gpointer OpenMutex (guint32 access G_GNUC_UNUSED, gboolean inherit G_GNUC_UNUSED } ret = handle; - DEBUG ("%s: returning named mutex handle %p", __func__, handle); + MONO_TRACE (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_LAYER, "%s: returning named mutex handle %p", __func__, handle); cleanup: g_free (utf8_name);