Lines Matching refs:__mutex

450 __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
452 __gthr_win32_mutex_init_function (__mutex);
456 __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
458 __gthr_win32_mutex_destroy (__mutex);
462 __gthread_mutex_lock (__gthread_mutex_t *__mutex)
465 return __gthr_win32_mutex_lock (__mutex);
471 __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
474 return __gthr_win32_mutex_trylock (__mutex);
480 __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
483 return __gthr_win32_mutex_unlock (__mutex);
489 __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
491 __gthr_win32_recursive_mutex_init_function (__mutex);
495 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
498 return __gthr_win32_recursive_mutex_lock (__mutex);
504 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
507 return __gthr_win32_recursive_mutex_trylock (__mutex);
513 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
516 return __gthr_win32_recursive_mutex_unlock (__mutex);
522 __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
524 return __gthr_win32_recursive_mutex_destroy (__mutex);
617 __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
619 __mutex->counter = -1;
620 __mutex->sema = CreateSemaphoreW (NULL, 0, 65535, NULL);
624 __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
626 CloseHandle ((HANDLE) __mutex->sema);
630 __gthread_mutex_lock (__gthread_mutex_t *__mutex)
636 if (InterlockedIncrement (&__mutex->counter) == 0 ||
637 WaitForSingleObject (__mutex->sema, INFINITE) == WAIT_OBJECT_0)
643 InterlockedDecrement (&__mutex->counter);
651 __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
657 if (__GTHR_W32_InterlockedCompareExchange (&__mutex->counter, 0, -1) < 0)
666 __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
670 if (InterlockedDecrement (&__mutex->counter) >= 0)
671 return ReleaseSemaphore (__mutex->sema, 1, NULL) ? 0 : 1;
677 __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
679 __mutex->counter = -1;
680 __mutex->depth = 0;
681 __mutex->owner = 0;
682 __mutex->sema = CreateSemaphoreW (NULL, 0, 65535, NULL);
686 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
691 if (InterlockedIncrement (&__mutex->counter) == 0)
693 __mutex->depth = 1;
694 __mutex->owner = __me;
696 else if (__mutex->owner == __me)
698 InterlockedDecrement (&__mutex->counter);
699 ++(__mutex->depth);
701 else if (WaitForSingleObject (__mutex->sema, INFINITE) == WAIT_OBJECT_0)
703 __mutex->depth = 1;
704 __mutex->owner = __me;
710 InterlockedDecrement (&__mutex->counter);
718 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
723 if (__GTHR_W32_InterlockedCompareExchange (&__mutex->counter, 0, -1) < 0)
725 __mutex->depth = 1;
726 __mutex->owner = __me;
728 else if (__mutex->owner == __me)
729 ++(__mutex->depth);
737 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
741 --(__mutex->depth);
742 if (__mutex->depth == 0)
744 __mutex->owner = 0;
746 if (InterlockedDecrement (&__mutex->counter) >= 0)
747 return ReleaseSemaphore (__mutex->sema, 1, NULL) ? 0 : 1;
754 __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
756 CloseHandle ((HANDLE) __mutex->sema);