diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2022-10-31 13:31:58 +0200 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2022-11-11 13:41:43 +0200 |
commit | 6930f14733757592a4f8d92513f642a5dcc9ec9c (patch) | |
tree | ded7f8bfd5c18a9b0550580f5c2cc09a71b888fc | |
parent | CMake: Sync tuklib_cpucores.cmake with tuklib_cpucores.m4. (diff) | |
download | xz-6930f14733757592a4f8d92513f642a5dcc9ec9c.tar.xz |
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.
Diffstat (limited to '')
-rw-r--r-- | src/common/mythread.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/common/mythread.h b/src/common/mythread.h index be226542..41382183 100644 --- a/src/common/mythread.h +++ b/src/common/mythread.h @@ -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 |