Home | History | Annotate | Download | only in libxml2

Lines Matching full:global_init_lock

149 static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER;
162 static volatile LPCRITICAL_SECTION global_init_lock = NULL;
169 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) {
513 pthread_mutex_unlock(&global_init_lock);
515 if (global_init_lock != NULL) {
516 LeaveCriticalSection(global_init_lock);
519 release_sem(global_init_lock);
534 if (global_init_lock != NULL) {
535 DeleteCriticalSection(global_init_lock);
536 free(global_init_lock);
537 global_init_lock = NULL;