Page Menu
Home
Phabricator (Chris)
Search
Configure Global Search
Log In
Files
F628381
Threads.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Authored By
Unknown
Size
1 KB
Referenced Files
None
Subscribers
None
Threads.h
View Options
/* Threads.h -- multithreading library
2009-03-27 : Igor Pavlov : Public domain */
#ifndef __7Z_THREADS_H
#define __7Z_THREADS_H
#include
"Types.h"
#ifdef __cplusplus
extern
"C"
{
#endif
WRes
HandlePtr_Close
(
HANDLE
*
h
);
WRes
Handle_WaitObject
(
HANDLE
h
);
typedef
HANDLE
CThread
;
#define Thread_Construct(p) *(p) = NULL
#define Thread_WasCreated(p) (*(p) != NULL)
#define Thread_Close(p) HandlePtr_Close(p)
#define Thread_Wait(p) Handle_WaitObject(*(p))
typedef
unsigned
THREAD_FUNC_RET_TYPE
;
#define THREAD_FUNC_CALL_TYPE MY_STD_CALL
#define THREAD_FUNC_DECL THREAD_FUNC_RET_TYPE THREAD_FUNC_CALL_TYPE
typedef
THREAD_FUNC_RET_TYPE
(
THREAD_FUNC_CALL_TYPE
*
THREAD_FUNC_TYPE
)(
void
*
);
WRes
Thread_Create
(
CThread
*
p
,
THREAD_FUNC_TYPE
func
,
LPVOID
param
);
typedef
HANDLE
CEvent
;
typedef
CEvent
CAutoResetEvent
;
typedef
CEvent
CManualResetEvent
;
#define Event_Construct(p) *(p) = NULL
#define Event_IsCreated(p) (*(p) != NULL)
#define Event_Close(p) HandlePtr_Close(p)
#define Event_Wait(p) Handle_WaitObject(*(p))
WRes
Event_Set
(
CEvent
*
p
);
WRes
Event_Reset
(
CEvent
*
p
);
WRes
ManualResetEvent_Create
(
CManualResetEvent
*
p
,
int
signaled
);
WRes
ManualResetEvent_CreateNotSignaled
(
CManualResetEvent
*
p
);
WRes
AutoResetEvent_Create
(
CAutoResetEvent
*
p
,
int
signaled
);
WRes
AutoResetEvent_CreateNotSignaled
(
CAutoResetEvent
*
p
);
typedef
HANDLE
CSemaphore
;
#define Semaphore_Construct(p) (*p) = NULL
#define Semaphore_Close(p) HandlePtr_Close(p)
#define Semaphore_Wait(p) Handle_WaitObject(*(p))
WRes
Semaphore_Create
(
CSemaphore
*
p
,
UInt32
initCount
,
UInt32
maxCount
);
WRes
Semaphore_ReleaseN
(
CSemaphore
*
p
,
UInt32
num
);
WRes
Semaphore_Release1
(
CSemaphore
*
p
);
typedef
CRITICAL_SECTION
CCriticalSection
;
WRes
CriticalSection_Init
(
CCriticalSection
*
p
);
#define CriticalSection_Delete(p) DeleteCriticalSection(p)
#define CriticalSection_Enter(p) EnterCriticalSection(p)
#define CriticalSection_Leave(p) LeaveCriticalSection(p)
#ifdef __cplusplus
}
#endif
#endif
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Sun, Nov 15, 4:00 AM (15 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
127061
Default Alt Text
Threads.h (1 KB)
Attached To
Mode
R75 R-Tech1
Attached
Detach File
Event Timeline