Windows: Fix mythread_once() macro with Vista threads.

Don't call InitOnceComplete() if initialization was already done.

So far mythread_once() has been needed only when building
with --enable-small. windows/build.bash does this together
with --disable-threads so the Vista-specific mythread_once()
is never needed by those builds. VS project files or
CMake-builds don't support HAVE_SMALL builds at all.
This commit is contained in:
Lasse Collin 2022-10-31 13:31:58 +02:00
parent 1c8cbb5be3
commit 6930f14733
1 changed files with 4 additions and 3 deletions

View File

@ -370,10 +370,11 @@ typedef struct {
BOOL pending_; \
if (!InitOnceBeginInitialize(&once_, 0, &pending_, NULL)) \
abort(); \
if (pending_) \
if (pending_) { \
func(); \
if (!InitOnceComplete(&once, 0, NULL)) \
abort(); \
if (!InitOnceComplete(&once, 0, NULL)) \
abort(); \
} \
} while (0)
#endif