diff options
author | Sadie Powell <sadie@witchery.services> | 2024-02-11 20:17:48 +0000 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2024-02-11 20:35:21 +0000 |
commit | 274bb19d03698958e9ef9298ec29c8644a310daf (patch) | |
tree | d3698930e2395dbcc2bc892f8e984e153c03f772 /src/win32 | |
parent | 2c5b84bd1d7a846b10d302ef5da185a75ab2489c (diff) |
Switch Thread to use the C++11 equivalent, remove win32/pthread.
Diffstat (limited to 'src/win32')
-rw-r--r-- | src/win32/anope_windows.h | 1 | ||||
-rw-r--r-- | src/win32/pthread/pthread.cpp | 119 | ||||
-rw-r--r-- | src/win32/pthread/pthread.h | 35 |
3 files changed, 0 insertions, 155 deletions
diff --git a/src/win32/anope_windows.h b/src/win32/anope_windows.h index 18b18c496..e7210b020 100644 --- a/src/win32/anope_windows.h +++ b/src/win32/anope_windows.h @@ -53,7 +53,6 @@ #include "socket.h" #include "dl/dl.h" #include "pipe/pipe.h" -#include "pthread/pthread.h" #include "sigaction/sigaction.h" typedef int ssize_t; diff --git a/src/win32/pthread/pthread.cpp b/src/win32/pthread/pthread.cpp deleted file mode 100644 index 971066d0e..000000000 --- a/src/win32/pthread/pthread.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/* POSIX emulation layer for Windows. - * - * (C) 2008-2024 Anope Team - * Contact us at team@anope.org - * - * Please read COPYING and README for further details. - */ - -#include "pthread.h" - -struct ThreadInfo final -{ - void *(*entry)(void *); - void *param; -}; - -static DWORD WINAPI entry_point(void *parameter) -{ - ThreadInfo *ti = static_cast<ThreadInfo *>(parameter); - ti->entry(ti->param); - delete ti; - return 0; -} - -int pthread_attr_init(pthread_attr_t *) -{ - /* No need for this */ - return 0; -} - -int pthread_attr_setdetachstate(pthread_attr_t *, int) -{ - /* No need for this */ - return 0; -} - -int pthread_create(pthread_t *thread, const pthread_attr_t *, void *(*entry)(void *), void *param) -{ - auto *ti = new ThreadInfo; - ti->entry = entry; - ti->param = param; - - *thread = CreateThread(NULL, 0, entry_point, ti, 0, NULL); - if (!*thread) - { - delete ti; - return -1; - } - - return 0; -} - -int pthread_join(pthread_t thread, void **) -{ - if (WaitForSingleObject(thread, INFINITE) == WAIT_FAILED) - return -1; - CloseHandle(thread); - return 0; -} - -void pthread_exit(int i) -{ - ExitThread(i); -} - -int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *) -{ - InitializeCriticalSection(mutex); - return 0; -} - -int pthread_mutex_destroy(pthread_mutex_t *mutex) -{ - DeleteCriticalSection(mutex); - return 0; -} - -int pthread_mutex_lock(pthread_mutex_t *mutex) -{ - EnterCriticalSection(mutex); - return 0; -} - -int pthread_mutex_trylock(pthread_mutex_t *mutex) -{ - return !TryEnterCriticalSection(mutex); -} - -int pthread_mutex_unlock(pthread_mutex_t *mutex) -{ - LeaveCriticalSection(mutex); - return 0; -} - -int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *) -{ - *cond = CreateEvent(NULL, false, false, NULL); - if (*cond == NULL) - return -1; - return 0; -} - -int pthread_cond_destroy(pthread_cond_t *cond) -{ - return !CloseHandle(*cond); -} - -int pthread_cond_signal(pthread_cond_t *cond) -{ - return !PulseEvent(*cond); -} - -int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) -{ - LeaveCriticalSection(mutex); - WaitForSingleObject(*cond, INFINITE); - EnterCriticalSection(mutex); - return 0; -} diff --git a/src/win32/pthread/pthread.h b/src/win32/pthread/pthread.h deleted file mode 100644 index 072d66c93..000000000 --- a/src/win32/pthread/pthread.h +++ /dev/null @@ -1,35 +0,0 @@ -/* POSIX emulation layer for Windows. - * - * (C) 2008-2024 Anope Team - * Contact us at team@anope.org - * - * Please read COPYING and README for further details. - */ - -#include <Windows.h> - -typedef HANDLE pthread_t; -typedef CRITICAL_SECTION pthread_mutex_t; -typedef HANDLE pthread_cond_t; -typedef int pthread_attr_t; -typedef void pthread_mutexattr_t; -typedef void pthread_condattr_t; - -#define PTHREAD_CREATE_JOINABLE 0 - -extern int pthread_attr_init(pthread_attr_t *); -extern int pthread_attr_setdetachstate(pthread_attr_t *, int); -extern int pthread_create(pthread_t *, const pthread_attr_t *, void *(*)(void *), void *); -extern int pthread_join(pthread_t, void **); -extern void pthread_exit(int); - -extern int pthread_mutex_init(pthread_mutex_t *, const pthread_mutexattr_t *); -extern int pthread_mutex_destroy(pthread_mutex_t *); -extern int pthread_mutex_lock(pthread_mutex_t *); -extern int pthread_mutex_trylock(pthread_mutex_t *); -extern int pthread_mutex_unlock(pthread_mutex_t *); - -extern int pthread_cond_init(pthread_cond_t *, const pthread_condattr_t *); -extern int pthread_cond_destroy(pthread_cond_t *); -extern int pthread_cond_signal(pthread_cond_t *); -extern int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *); |