Skip to content

Commit

Permalink
options/posix: Fix function prototype of pthread_exit
Browse files Browse the repository at this point in the history
  • Loading branch information
Dennisbonke committed Oct 23, 2023
1 parent e0b134d commit a89e0b7
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
5 changes: 3 additions & 2 deletions options/posix/generic/pthread-stubs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -354,11 +354,11 @@ 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
goto exit;

__atomic_fetch_or(&self->cancelBits, tcbExitingBit, __ATOMIC_RELAXED);

Expand Down Expand Up @@ -392,6 +392,7 @@ int pthread_exit(void *ret_val) {
// TODO: clean up thread resources when we are detached.

// TODO: do exit(0) when we're the only thread instead
exit:
mlibc::sys_thread_exit();
__builtin_unreachable();
}
Expand Down
2 changes: 1 addition & 1 deletion options/posix/include/pthread.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit a89e0b7

Please sign in to comment.