Lines Matching defs:mutex
18 /* Now, define a non-recursive mutex using either condition variables
55 FreeNonRecursiveMutex(PNRMUTEX mutex)
57 if (mutex) {
58 PyCOND_FINI(&mutex->cv);
59 PyMUTEX_FINI(&mutex->cs);
60 PyMem_RawFree(mutex);
65 EnterNonRecursiveMutex(PNRMUTEX mutex, DWORD milliseconds)
68 if (PyMUTEX_LOCK(&mutex->cs))
71 while (mutex->locked) {
72 if (PyCOND_WAIT(&mutex->cv, &mutex->cs)) {
81 while (mutex->locked) {
84 if (PyCOND_TIMEDWAIT(&mutex->cv, &mutex->cs, microseconds) < 0) {
94 if (!mutex->locked) {
95 mutex->locked = 1;
100 PyMUTEX_UNLOCK(&mutex->cs); /* must ignore result here */
105 LeaveNonRecursiveMutex(PNRMUTEX mutex)
108 if (PyMUTEX_LOCK(&mutex->cs))
110 mutex->locked = 0;
112 result = !PyCOND_SIGNAL(&mutex->cv);
113 PyMUTEX_UNLOCK(&mutex->cs);
119 /* NR-locks based on a kernel mutex */
129 FreeNonRecursiveMutex(PNRMUTEX mutex)
132 CloseHandle(mutex);
136 EnterNonRecursiveMutex(PNRMUTEX mutex, DWORD milliseconds)
138 return WaitForSingleObjectEx(mutex, milliseconds, FALSE);
142 LeaveNonRecursiveMutex(PNRMUTEX mutex)
144 return ReleaseSemaphore(mutex, 1, NULL);
268 * I [Dag] tried to implement it with mutex but I could find a way to