From 79f3cf0ed1e293d62a23fd8d3e1c23a458d6f95a Mon Sep 17 00:00:00 2001 From: Mitya Selivanov <0x7fffff@guattari.ru> Date: Fri, 19 Aug 2022 09:47:05 +0400 Subject: Remove TSS support --- source/kit/CMakeLists.txt | 3 +- source/kit/threads.h | 10 ++----- source/kit/threads.posix.c | 24 ---------------- source/kit/threads.win32.c | 38 ------------------------- source/kit/threads.win32.h | 25 ---------------- source/kit/threads_tls_callback.win32.cpp | 21 -------------- source/test/unittests/condition_variable.test.c | 2 -- 7 files changed, 4 insertions(+), 119 deletions(-) delete mode 100644 source/kit/threads.win32.h delete mode 100644 source/kit/threads_tls_callback.win32.cpp diff --git a/source/kit/CMakeLists.txt b/source/kit/CMakeLists.txt index 86c39dc..b5fe0f6 100644 --- a/source/kit/CMakeLists.txt +++ b/source/kit/CMakeLists.txt @@ -4,7 +4,7 @@ target_sources( atomic.c input_buffer.c threads.win32.c time.c threads.posix.c input_stream.c lower_bound.c string_ref.c async_function.c allocator.c array_ref.c dynamic_array.c - mersenne_twister_64.c threads_tls_callback.win32.cpp + mersenne_twister_64.c PUBLIC $ $ @@ -13,7 +13,6 @@ target_sources( $ $ $ - $ $ $ $ diff --git a/source/kit/threads.h b/source/kit/threads.h index 197f34f..5cfb5d3 100644 --- a/source/kit/threads.h +++ b/source/kit/threads.h @@ -184,13 +184,9 @@ int thrd_equal(thrd_t, thrd_t); _Noreturn # endif void thrd_exit(int); -int thrd_join(thrd_t, int *); -int thrd_sleep(const struct timespec *, struct timespec *); -void thrd_yield(void); -int tss_create(tss_t *, tss_dtor_t); -void tss_delete(tss_t); -void *tss_get(tss_t); -int tss_set(tss_t, void *); +int thrd_join(thrd_t, int *); +int thrd_sleep(const struct timespec *, struct timespec *); +void thrd_yield(void); # ifdef __cplusplus } diff --git a/source/kit/threads.posix.c b/source/kit/threads.posix.c index c9a9094..efedbaa 100644 --- a/source/kit/threads.posix.c +++ b/source/kit/threads.posix.c @@ -318,29 +318,5 @@ void thrd_yield(void) { sched_yield(); } -/*----------- 7.25.6 Thread-specific storage functions -----------*/ -// 7.25.6.1 -int tss_create(tss_t *key, tss_dtor_t dtor) { - assert(key != NULL); - return (pthread_key_create(key, dtor) == 0) ? thrd_success - : thrd_error; -} - -// 7.25.6.2 -void tss_delete(tss_t key) { - pthread_key_delete(key); -} - -// 7.25.6.3 -void *tss_get(tss_t key) { - return pthread_getspecific(key); -} - -// 7.25.6.4 -int tss_set(tss_t key, void *val) { - return (pthread_setspecific(key, val) == 0) ? thrd_success - : thrd_error; -} - # endif #endif diff --git a/source/kit/threads.win32.c b/source/kit/threads.win32.c index b8ca7ae..4fe19b6 100644 --- a/source/kit/threads.win32.c +++ b/source/kit/threads.win32.c @@ -311,15 +311,6 @@ int mtx_unlock(mtx_t *mtx) { return thrd_success; } -void __threads_win32_tls_callback(void) { - struct thrd_state *state = &impl_current_thread; - impl_tss_dtor_invoke(); - if (state->handle_need_close) { - state->handle_need_close = false; - CloseHandle(state->thrd.handle); - } -} - /*------------------- 7.25.5 Thread functions -------------------*/ // 7.25.5.1 int thrd_create_with_stack(thrd_t *thr, thrd_start_t func, void *arg, @@ -440,34 +431,5 @@ void thrd_yield(void) { SwitchToThread(); } -/*----------- 7.25.6 Thread-specific storage functions -----------*/ -// 7.25.6.1 -int tss_create(tss_t *key, tss_dtor_t dtor) { - assert(key != NULL); - *key = TlsAlloc(); - if (dtor) { - if (impl_tss_dtor_register(*key, dtor)) { - TlsFree(*key); - return thrd_error; - } - } - return (*key != 0xFFFFFFFF) ? thrd_success : thrd_error; -} - -// 7.25.6.2 -void tss_delete(tss_t key) { - TlsFree(key); -} - -// 7.25.6.3 -void *tss_get(tss_t key) { - return TlsGetValue(key); -} - -// 7.25.6.4 -int tss_set(tss_t key, void *val) { - return TlsSetValue(key, val) ? thrd_success : thrd_error; -} - # endif #endif /* KIT_DISABLE_SYSTEM_THREADS */ diff --git a/source/kit/threads.win32.h b/source/kit/threads.win32.h deleted file mode 100644 index e8e9abf..0000000 --- a/source/kit/threads.win32.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2022 Yonggang Luo - * SPDX-License-Identifier: MIT - */ - -#ifndef KIT_THREADS_WIN32_H -#define KIT_THREADS_WIN32_H - -#ifndef KIT_DISABLE_SYSTEM_THREADS - -# ifdef __cplusplus -extern "C" { -# endif - -# if defined(_WIN32) && !defined(__CYGWIN__) -void __threads_win32_tls_callback(void); -# endif - -# ifdef __cplusplus -} -# endif - -#endif - -#endif diff --git a/source/kit/threads_tls_callback.win32.cpp b/source/kit/threads_tls_callback.win32.cpp deleted file mode 100644 index 3cc3cc6..0000000 --- a/source/kit/threads_tls_callback.win32.cpp +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2022 Yonggang Luo - * SPDX-License-Identifier: MIT - */ - -#ifndef KIT_DISABLE_SYSTEM_THREADS -# if defined(_WIN32) && !defined(__CYGWIN__) - -# include "threads.win32.h" - -struct tls_callback { - tls_callback() { } - ~tls_callback() { - __threads_win32_tls_callback(); - } -}; - -static thread_local tls_callback tls_callback_instance; - -# endif -#endif diff --git a/source/test/unittests/condition_variable.test.c b/source/test/unittests/condition_variable.test.c index b7fc7db..93389e9 100644 --- a/source/test/unittests/condition_variable.test.c +++ b/source/test/unittests/condition_variable.test.c @@ -3,8 +3,6 @@ #define KIT_TEST_FILE condition_variable #include "../../kit_test/test.h" -#include - typedef struct { mtx_t m; int in; -- cgit v1.2.3