mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
LibPThread: Make pthread_exit a noreturn function
LibPThread: mark pthread_exit a noreturn function using compiler attributes LibThread: remove a call to pthread_exit from Thread::start lambda expression as it make the return of teh lambda unreachable.
This commit is contained in:
parent
19d6884529
commit
f2d3cc7325
Notes:
sideshowbarker
2024-07-19 04:42:08 +09:00
Author: https://github.com/tryfinally 🔰 Commit: https://github.com/SerenityOS/serenity/commit/f2d3cc7325c Pull-request: https://github.com/SerenityOS/serenity/pull/2834 Reviewed-by: https://github.com/bugaevc
3 changed files with 3 additions and 3 deletions
|
@ -83,6 +83,7 @@ static int create_thread(void* (*entry)(void*), void* argument, PthreadAttrImpl*
|
|||
return syscall(SC_create_thread, pthread_create_helper, thread_params);
|
||||
}
|
||||
|
||||
[[noreturn]]
|
||||
static void exit_thread(void* code)
|
||||
{
|
||||
syscall(SC_exit_thread, code);
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
__BEGIN_DECLS
|
||||
|
||||
int pthread_create(pthread_t*, pthread_attr_t*, void* (*)(void*), void*);
|
||||
void pthread_exit(void*);
|
||||
void pthread_exit(void*) __attribute__ ((noreturn));
|
||||
int pthread_kill(pthread_t, int);
|
||||
void pthread_cleanup_push(void (*)(void*), void*);
|
||||
void pthread_cleanup_pop(int);
|
||||
|
|
|
@ -51,8 +51,7 @@ void LibThread::Thread::start()
|
|||
[](void* arg) -> void* {
|
||||
Thread* self = static_cast<Thread*>(arg);
|
||||
size_t exit_code = self->m_action();
|
||||
self->m_tid = 0;
|
||||
pthread_exit((void*)exit_code);
|
||||
self->m_tid = 0;
|
||||
return (void*)exit_code;
|
||||
},
|
||||
static_cast<void*>(this));
|
||||
|
|
Loading…
Reference in a new issue