/* Threads.h -- multithreading library\r
-2013-11-12 : Igor Pavlov : Public domain */\r
+2017-06-18 : Igor Pavlov : Public domain */\r
\r
#ifndef __7Z_THREADS_H\r
#define __7Z_THREADS_H\r
WRes AutoResetEvent_CreateNotSignaled(CAutoResetEvent *p);\r
\r
typedef HANDLE CSemaphore;\r
-#define Semaphore_Construct(p) (*p) = NULL\r
+#define Semaphore_Construct(p) *(p) = NULL\r
+#define Semaphore_IsCreated(p) (*(p) != NULL)\r
#define Semaphore_Close(p) HandlePtr_Close(p)\r
#define Semaphore_Wait(p) Handle_WaitObject(*(p))\r
WRes Semaphore_Create(CSemaphore *p, UInt32 initCount, UInt32 maxCount);\r