From bc7e2027f2e9922dbb2091ca78f25eb3b4c535c0 Mon Sep 17 00:00:00 2001 From: Dennis Bonke Date: Mon, 23 Oct 2023 20:04:00 +0200 Subject: [PATCH] options/posix: Fix function prototype of pthread_exit --- options/posix/generic/pthread-stubs.cpp | 5 +---- options/posix/include/pthread.h | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/options/posix/generic/pthread-stubs.cpp b/options/posix/generic/pthread-stubs.cpp index 7c60cc2900..e5557f1630 100644 --- a/options/posix/generic/pthread-stubs.cpp +++ b/options/posix/generic/pthread-stubs.cpp @@ -354,12 +354,9 @@ namespace { FutexLock key_mutex_; } -int pthread_exit(void *ret_val) { +[[noreturn]] void pthread_exit(void *ret_val) { auto self = mlibc::get_current_tcb(); - if (__atomic_load_n(&self->cancelBits, __ATOMIC_RELAXED) & tcbExitingBit) - return 0; // We are already exiting - __atomic_fetch_or(&self->cancelBits, tcbExitingBit, __ATOMIC_RELAXED); auto hand = self->cleanupEnd; diff --git a/options/posix/include/pthread.h b/options/posix/include/pthread.h index 87deb2966b..701e2fd8dc 100644 --- a/options/posix/include/pthread.h +++ b/options/posix/include/pthread.h @@ -179,7 +179,7 @@ int pthread_create(pthread_t *__restrict, const pthread_attr_t *__restrict, void *(*) (void *), void *__restrict); pthread_t pthread_self(void); int pthread_equal(pthread_t, pthread_t); -int pthread_exit(void *); +[[noreturn]] void pthread_exit(void *); int pthread_join(pthread_t, void **); int pthread_detach(pthread_t);