Lines Matching refs:__mutex

469 __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
471 __gthr_win32_mutex_init_function (__mutex);
475 __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
477 __gthr_win32_mutex_destroy (__mutex);
481 __gthread_mutex_lock (__gthread_mutex_t *__mutex)
484 return __gthr_win32_mutex_lock (__mutex);
490 __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
493 return __gthr_win32_mutex_trylock (__mutex);
499 __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
502 return __gthr_win32_mutex_unlock (__mutex);
508 __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
510 __gthr_win32_recursive_mutex_init_function (__mutex);
514 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
517 return __gthr_win32_recursive_mutex_lock (__mutex);
523 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
526 return __gthr_win32_recursive_mutex_trylock (__mutex);
532 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
535 return __gthr_win32_recursive_mutex_unlock (__mutex);
541 __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
543 return __gthr_win32_recursive_mutex_destroy (__mutex);
636 __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
638 __mutex->counter = -1;
639 __mutex->sema = CreateSemaphoreW (NULL, 0, 65535, NULL);
643 __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
645 CloseHandle ((HANDLE) __mutex->sema);
649 __gthread_mutex_lock (__gthread_mutex_t *__mutex)
655 if (InterlockedIncrement (&__mutex->counter) == 0 ||
656 WaitForSingleObject (__mutex->sema, INFINITE) == WAIT_OBJECT_0)
662 InterlockedDecrement (&__mutex->counter);
670 __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
676 if (__GTHR_W32_InterlockedCompareExchange (&__mutex->counter, 0, -1) < 0)
685 __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
689 if (InterlockedDecrement (&__mutex->counter) >= 0)
690 return ReleaseSemaphore (__mutex->sema, 1, NULL) ? 0 : 1;
696 __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
698 __mutex->counter = -1;
699 __mutex->depth = 0;
700 __mutex->owner = 0;
701 __mutex->sema = CreateSemaphoreW (NULL, 0, 65535, NULL);
705 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
710 if (InterlockedIncrement (&__mutex->counter) == 0)
712 __mutex->depth = 1;
713 __mutex->owner = __me;
715 else if (__mutex->owner == __me)
717 InterlockedDecrement (&__mutex->counter);
718 ++(__mutex->depth);
720 else if (WaitForSingleObject (__mutex->sema, INFINITE) == WAIT_OBJECT_0)
722 __mutex->depth = 1;
723 __mutex->owner = __me;
729 InterlockedDecrement (&__mutex->counter);
737 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
742 if (__GTHR_W32_InterlockedCompareExchange (&__mutex->counter, 0, -1) < 0)
744 __mutex->depth = 1;
745 __mutex->owner = __me;
747 else if (__mutex->owner == __me)
748 ++(__mutex->depth);
756 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
760 --(__mutex->depth);
761 if (__mutex->depth == 0)
763 __mutex->owner = 0;
765 if (InterlockedDecrement (&__mutex->counter) >= 0)
766 return ReleaseSemaphore (__mutex->sema, 1, NULL) ? 0 : 1;
773 __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
775 CloseHandle ((HANDLE) __mutex->sema);