mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-30 15:46:38 +02:00
3-2beta13
This commit is contained in:
+8
-3
@@ -35,28 +35,33 @@
|
||||
#include <pthread.h>
|
||||
typedef pthread_t THREAD;
|
||||
typedef pthread_mutex_t MUTEX;
|
||||
#define IRCCreateThreadEx(thread, start, arg, id) TDebug(CreateThread); pthread_create(&thread, NULL, (void*)start, arg)
|
||||
#define IRCCreateThread(thread, start, arg) TDebug(CreateThread); pthread_create(&thread, NULL, (void*)start, arg)
|
||||
#define IRCMutexLock(mutex) TDebug(MutexLock); pthread_mutex_lock(&mutex)
|
||||
#define IRCMutexTryLock(mutex) TDebug(MutexTryLock); pthread_mutex_trylock(&mutex);
|
||||
#define IRCMutexUnlock(mutex) TDebug(MutexUnlcok); pthread_mutex_unlock(&mutex)
|
||||
#define IRCCreateMutex(mutex) TDebug(CreateMutex); pthread_mutex_init(&mutex, NULL)
|
||||
#define IRCMutexDestroy(mutex) TDebug(MutexDestroy); pthread_mutex_destroy(&mutex)
|
||||
#define IRCJoinThread(thread,return) TDebug(JoinThread); pthread_join(thread, return)
|
||||
#define IRCJoinThread(thread,ppvalue) TDebug(JoinThread); pthread_join(thread, (void **)ppvalue)
|
||||
#define IRCExitThreadEx(value) TDebug(ExitThread); pthread_exit(value)
|
||||
#define IRCExitThread(value) TDebug(ExitThread); pthread_exit(value)
|
||||
#define IRCDetachThread(value) TDebug(DetachThread); pthread_detach(value);
|
||||
#define IRCTerminateThread(thread, value) pthread_cancel(&thread)
|
||||
#define IRCThreadSelf() pthread_self()
|
||||
#define IRCThreadEqual(thread1, thread2) pthread_equal(thread1,thread2)
|
||||
#else
|
||||
typedef unsigned long THREAD;
|
||||
typedef HANDLE THREAD;
|
||||
typedef HANDLE MUTEX;
|
||||
typedef unsigned (__stdcall *PTHREAD_START) (void *);
|
||||
#define IRCCreateThreadEx(thread, start, arg, id) thread = (THREAD)_beginthreadex(NULL, 0, (PTHREAD_START)start, arg, 0, id)
|
||||
#define IRCCreateThread(thread, start, arg) thread = _beginthread((void *)start, 0, arg)
|
||||
#define IRCMutexLock(mutex) WaitForSingleObject(mutex, INFINITE)
|
||||
#define IRCMutexTryLock(mutex) WaitForSingleObject(mutex, 0)
|
||||
#define IRCMutexUnlock(mutex) ReleaseMutex(mutex)
|
||||
#define IRCCreateMutex(mutex) mutex = CreateMutex(NULL, FALSE, NULL)
|
||||
#define IRCMutexDestroy(mutex) CloseHandle(mutex)
|
||||
#define IRCJoinThread(thread,return) WaitForSingleObject((HANDLE)thread, INFINITE); GetExitCodeThread((HANDLE)thread, (DWORD)return);
|
||||
#define IRCJoinThread(thread,pdwRc) { WaitForSingleObject((HANDLE)thread, INFINITE); GetExitCodeThread((HANDLE)thread, pdwRc); CloseHandle((HANDLE)thread); }
|
||||
#define IRCExitThreadEx(value) _endthreadex((unsigned int)value)
|
||||
#define IRCExitThread(value) _endthread()
|
||||
#define IRCTerminateThread(thread, value) TerminateThread((HANDLE)thread, value)
|
||||
#define IRCThreadSelf() GetCurrentThread()
|
||||
|
||||
Reference in New Issue
Block a user