#include <errno.h>
#include <fcntl.h>
-#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
#include "wimlib/integrity.h"
#include "wimlib/metadata.h"
#include "wimlib/security.h"
+#include "wimlib/threads.h"
#include "wimlib/wim.h"
#include "wimlib/xml.h"
#include "wimlib/win32.h"
}
static bool lib_initialized = false;
-static pthread_mutex_t lib_initialization_mutex = PTHREAD_MUTEX_INITIALIZER;
+static struct mutex lib_initialization_mutex = MUTEX_INITIALIZER;
/* API function documented in wimlib.h */
WIMLIBAPI int
if (lib_initialized)
goto out;
- pthread_mutex_lock(&lib_initialization_mutex);
+ mutex_lock(&lib_initialization_mutex);
if (lib_initialized)
goto out_unlock;
lib_initialized = true;
ret = 0;
out_unlock:
- pthread_mutex_unlock(&lib_initialization_mutex);
+ mutex_unlock(&lib_initialization_mutex);
out:
return ret;
}
if (!lib_initialized)
return;
- pthread_mutex_lock(&lib_initialization_mutex);
+ mutex_lock(&lib_initialization_mutex);
if (!lib_initialized)
goto out_unlock;
lib_initialized = false;
out_unlock:
- pthread_mutex_unlock(&lib_initialization_mutex);
+ mutex_unlock(&lib_initialization_mutex);
}