Lines Matching defs:__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);
635 __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
637 __mutex->counter = -1;
638 __mutex->sema = CreateSemaphoreW (NULL, 0, 65535, NULL);
642 __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
644 CloseHandle ((HANDLE) __mutex->sema);
648 __gthread_mutex_lock (__gthread_mutex_t *__mutex)
654 if (InterlockedIncrement (&__mutex->counter) == 0 ||
655 WaitForSingleObject (__mutex->sema, INFINITE) == WAIT_OBJECT_0)
661 InterlockedDecrement (&__mutex->counter);
669 __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
675 if (__GTHR_W32_InterlockedCompareExchange (&__mutex->counter, 0, -1) < 0)
684 __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
688 if (InterlockedDecrement (&__mutex->counter) >= 0)
689 return ReleaseSemaphore (__mutex->sema, 1, NULL) ? 0 : 1;
695 __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
697 __mutex->counter = -1;
698 __mutex->depth = 0;
699 __mutex->owner = 0;
700 __mutex->sema = CreateSemaphoreW (NULL, 0, 65535, NULL);
704 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
709 if (InterlockedIncrement (&__mutex->counter) == 0)
711 __mutex->depth = 1;
712 __mutex->owner = __me;
714 else if (__mutex->owner == __me)
716 InterlockedDecrement (&__mutex->counter);
717 ++(__mutex->depth);
719 else if (WaitForSingleObject (__mutex->sema, INFINITE) == WAIT_OBJECT_0)
721 __mutex->depth = 1;
722 __mutex->owner = __me;
728 InterlockedDecrement (&__mutex->counter);
736 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
741 if (__GTHR_W32_InterlockedCompareExchange (&__mutex->counter, 0, -1) < 0)
743 __mutex->depth = 1;
744 __mutex->owner = __me;
746 else if (__mutex->owner == __me)
747 ++(__mutex->depth);
755 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
759 --(__mutex->depth);
760 if (__mutex->depth == 0)
762 __mutex->owner = 0;
764 if (InterlockedDecrement (&__mutex->counter) >= 0)
765 return ReleaseSemaphore (__mutex->sema, 1, NULL) ? 0 : 1;
772 __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
774 CloseHandle ((HANDLE) __mutex->sema);