Lines Matching full:global_init_lock
150 static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER;
163 static volatile LPCRITICAL_SECTION global_init_lock = NULL;
170 static int32 global_init_lock = -1;
443 pthread_mutex_lock(&global_init_lock);
448 if (global_init_lock == NULL) {
457 /* Swap it into the global_init_lock */
459 InterlockedCompareExchangePointer(&global_init_lock, cs, NULL);
461 InterlockedCompareExchange((void **) &global_init_lock,
466 * section in the global_init_lock then discard the one
468 if (global_init_lock != cs) {
475 EnterCriticalSection(global_init_lock);
482 while (global_init_lock == -1) {
484 global_init_lock = sem;
492 * section in the global_init_lock then discard the one
494 if (global_init_lock != sem)
498 if (acquire_sem(global_init_lock) != B_NO_ERROR) {
512 pthread_mutex_unlock(&global_init_lock);
514 if (global_init_lock != NULL) {
515 LeaveCriticalSection(global_init_lock);
518 release_sem(global_init_lock);
533 if (global_init_lock != NULL) {
534 DeleteCriticalSection(global_init_lock);
535 free(global_init_lock);
536 global_init_lock = NULL;