summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/kit/CMakeLists.txt3
-rw-r--r--source/kit/threads.h10
-rw-r--r--source/kit/threads.posix.c24
-rw-r--r--source/kit/threads.win32.c38
-rw-r--r--source/kit/threads.win32.h25
-rw-r--r--source/kit/threads_tls_callback.win32.cpp21
-rw-r--r--source/test/unittests/condition_variable.test.c2
7 files changed, 4 insertions, 119 deletions
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
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/time.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/atomic.h>
@@ -13,7 +13,6 @@ target_sources(
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/threads.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/dynamic_array.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/async_function.h>
- $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/threads.win32.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/input_stream.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/input_buffer.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/lower_bound.h>
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 <stdio.h>
-
typedef struct {
mtx_t m;
int in;