/* NB, always called with the shared handle lock held */ static gboolean namedmutex_own (gpointer handle) { struct _WapiHandle_namedmutex *namedmutex_handle; gboolean ok; DEBUG ("%s: owning named mutex handle %p", __func__, handle); ok = _wapi_lookup_handle (handle, WAPI_HANDLE_NAMEDMUTEX, (gpointer *)&namedmutex_handle); if (ok == FALSE) { g_warning ("%s: error looking up named mutex handle %p", __func__, handle); return(FALSE); } _wapi_thread_own_mutex (handle); namedmutex_handle->pid = _wapi_getpid (); namedmutex_handle->tid = pthread_self (); namedmutex_handle->recursion++; _wapi_shared_handle_set_signal_state (handle, FALSE); DEBUG ("%s: mutex handle %p locked %d times by %d:%ld", __func__, handle, namedmutex_handle->recursion, namedmutex_handle->pid, namedmutex_handle->tid); return(TRUE); }
static gboolean mutex_own (gpointer handle) { struct _WapiHandle_mutex *mutex_handle; gboolean ok; ok = _wapi_lookup_handle (handle, WAPI_HANDLE_MUTEX, (gpointer *)&mutex_handle); if (ok == FALSE) { g_warning ("%s: error looking up mutex handle %p", __func__, handle); return(FALSE); } _wapi_thread_own_mutex (handle); #ifdef DEBUG g_message("%s: owning mutex handle %p", __func__, handle); #endif _wapi_handle_set_signal_state (handle, FALSE, FALSE); mutex_handle->pid = _wapi_getpid (); mutex_handle->tid = pthread_self (); mutex_handle->recursion++; #ifdef DEBUG g_message ("%s: mutex handle %p locked %d times by %d:%ld", __func__, handle, mutex_handle->recursion, mutex_handle->pid, mutex_handle->tid); #endif return(TRUE); }