*/
/*
- * Copyright (C) 2015-2016 Eric Biggers
+ * Copyright (C) 2015-2023 Eric Biggers
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* along with this file; if not, see http://www.gnu.org/licenses/.
*/
-#ifdef __WIN32__
+#ifdef _WIN32
#ifdef HAVE_CONFIG_H
# include "config.h"
#include "wimlib/win32_common.h"
#include <cguid.h>
-#include <pthread.h>
#include "wimlib/error.h"
+#include "wimlib/threads.h"
#include "wimlib/util.h"
#include "wimlib/win32_vss.h"
*----------------------------------------------------------------------------*/
static bool vss_initialized;
-static pthread_mutex_t vss_initialization_mutex = PTHREAD_MUTEX_INITIALIZER;
+static struct mutex vss_initialization_mutex = MUTEX_INITIALIZER;
/* vssapi.dll */
static HANDLE hVssapi;
if (vss_initialized)
return true;
- pthread_mutex_lock(&vss_initialization_mutex);
+ mutex_lock(&vss_initialization_mutex);
if (!vss_initialized)
vss_initialized = vss_global_init_impl();
- pthread_mutex_unlock(&vss_initialization_mutex);
+ mutex_unlock(&vss_initialization_mutex);
if (vss_initialized)
return true;
if (!vss_initialized)
return;
- pthread_mutex_lock(&vss_initialization_mutex);
+ mutex_lock(&vss_initialization_mutex);
if (vss_initialized) {
(*func_CoUninitialize)();
FreeLibrary(hOle32);
FreeLibrary(hVssapi);
vss_initialized = false;
}
- pthread_mutex_unlock(&vss_initialization_mutex);
+ mutex_unlock(&vss_initialization_mutex);
}
/*----------------------------------------------------------------------------*
return ret;
}
-#endif /* __WIN32__ */
+#endif /* _WIN32 */