-#ifdef DEBUG
- g_message ("%s: Named mutex handle %p owned by another process", __func__, handle);
-#endif
-
- ret = EnumProcesses (pids, count * sizeof(guint32),
- &needed_bytes);
- if (ret == FALSE) {
- do {
- count = needed_bytes / sizeof(guint32);
-#ifdef DEBUG
- g_message ("%s: Retrying pid lookup with %d slots", __func__, count);
-#endif
- pids = g_renew (guint32, pids, count);
- ret = EnumProcesses (pids, needed_bytes,
- &needed_bytes);
- } while (ret == FALSE);
- }
-
- count = needed_bytes / sizeof(guint32);
-
-#ifdef DEBUG
- g_message ("%s: Need to look at %d pids for named mutex handle %p", __func__, count, handle);
-#endif
-
- thr_ret = _wapi_handle_lock_shared_handles ();
- g_assert (thr_ret == 0);
-
- for (i = 0; i < count; i++) {
-#ifdef DEBUG
- g_message ("%s: Checking pid %d for named mutex handle %p", __func__, pids[i], handle);
-#endif
-
- if (pids[i] == namedmutex_handle->pid) {
- /* Must be still alive, because
- * EnumProcesses() checks for us
- */
-#ifdef DEBUG
- g_message ("%s: Found active pid %d for named mutex handle %p", __func__, pids[i], handle);
-#endif
-
- break;
- }
- }
-
- g_free (pids);
-
- if (i == count) {
+ 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) {