VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Common/lzma/Threads.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/lzma/Threads.h')
-rw-r--r--src/Common/lzma/Threads.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/Common/lzma/Threads.h b/src/Common/lzma/Threads.h
index 4028464a..c1484a27 100644
--- a/src/Common/lzma/Threads.h
+++ b/src/Common/lzma/Threads.h
@@ -1,6 +1,6 @@
/* Threads.h -- multithreading library
-2023-04-02 : Igor Pavlov : Public domain */
+2024-03-28 : Igor Pavlov : Public domain */
#ifndef ZIP7_INC_THREADS_H
#define ZIP7_INC_THREADS_H
@@ -8,14 +8,23 @@
#include "7zWindows.h"
#else
+#include "Compiler.h"
+
+// #define Z7_AFFINITY_DISABLE
#if defined(__linux__)
#if !defined(__APPLE__) && !defined(_AIX) && !defined(__ANDROID__)
#ifndef Z7_AFFINITY_DISABLE
#define Z7_AFFINITY_SUPPORTED
// #pragma message(" ==== Z7_AFFINITY_SUPPORTED")
-// #define _GNU_SOURCE
+#if !defined(_GNU_SOURCE)
+// #pragma message(" ==== _GNU_SOURCE set")
+// we need _GNU_SOURCE for cpu_set_t, if we compile for MUSL
+Z7_DIAGNOSTIC_IGNORE_BEGIN_RESERVED_MACRO_IDENTIFIER
+#define _GNU_SOURCE
+Z7_DIAGNOSTIC_IGNORE_END_RESERVED_MACRO_IDENTIFIER
+#endif
#endif
#endif
#endif
@@ -172,9 +181,9 @@ WRes CriticalSection_Init(CCriticalSection *p);
#else // _WIN32
-typedef struct _CEvent
+typedef struct
{
int _created;
int _manual_reset;
int _state;
@@ -198,9 +207,9 @@ WRes Event_Reset(CEvent *p);
WRes Event_Wait(CEvent *p);
WRes Event_Close(CEvent *p);
-typedef struct _CSemaphore
+typedef struct
{
int _created;
UInt32 _count;
UInt32 _maxCount;
@@ -218,9 +227,9 @@ WRes Semaphore_ReleaseN(CSemaphore *p, UInt32 num);
WRes Semaphore_Wait(CSemaphore *p);
WRes Semaphore_Close(CSemaphore *p);
-typedef struct _CCriticalSection
+typedef struct
{
pthread_mutex_t _mutex;
} CCriticalSection;
@@ -229,8 +238,9 @@ void CriticalSection_Delete(CCriticalSection *cs);
void CriticalSection_Enter(CCriticalSection *cs);
void CriticalSection_Leave(CCriticalSection *cs);
LONG InterlockedIncrement(LONG volatile *addend);
+LONG InterlockedDecrement(LONG volatile *addend);
#endif // _WIN32
WRes AutoResetEvent_OptCreate_And_Reset(CAutoResetEvent *p);