Merge pull request #1076 from BytesGalore/remove_return_from_noreturn_function
sys:posix:pthread removed explicit `return;` from `pthread_exit()`
This commit is contained in:
commit
f4a994ac89
@ -169,37 +169,37 @@ void pthread_exit(void *retval)
|
||||
|
||||
if (self_id == 0) {
|
||||
DEBUG("ERROR called pthread_self() returned 0 in \"%s\"!\n", __func__);
|
||||
sched_task_exit();
|
||||
return;
|
||||
}
|
||||
else {
|
||||
pthread_thread_t *self = pthread_sched_threads[self_id-1];
|
||||
|
||||
pthread_thread_t *self = pthread_sched_threads[self_id-1];
|
||||
while (self->cleanup_top) {
|
||||
__pthread_cleanup_datum_t *ct = self->cleanup_top;
|
||||
self->cleanup_top = ct->__next;
|
||||
|
||||
while (self->cleanup_top) {
|
||||
__pthread_cleanup_datum_t *ct = self->cleanup_top;
|
||||
self->cleanup_top = ct->__next;
|
||||
ct->__routine(ct->__arg);
|
||||
}
|
||||
|
||||
ct->__routine(ct->__arg);
|
||||
}
|
||||
self->thread_pid = -1;
|
||||
DEBUG("pthread_exit(%p), self == %p\n", retval, (void *) self);
|
||||
if (self->status != PTS_DETACHED) {
|
||||
self->returnval = retval;
|
||||
self->status = PTS_ZOMBIE;
|
||||
|
||||
self->thread_pid = -1;
|
||||
DEBUG("pthread_exit(%p), self == %p\n", retval, (void *) self);
|
||||
if (self->status != PTS_DETACHED) {
|
||||
self->returnval = retval;
|
||||
self->status = PTS_ZOMBIE;
|
||||
if (self->joining_thread) {
|
||||
/* our thread got an other thread waiting for us */
|
||||
thread_wakeup(self->joining_thread);
|
||||
}
|
||||
}
|
||||
|
||||
if (self->joining_thread) {
|
||||
/* our thread got an other thread waiting for us */
|
||||
thread_wakeup(self->joining_thread);
|
||||
dINT();
|
||||
if (self->stack) {
|
||||
msg_t m;
|
||||
m.content.ptr = self->stack;
|
||||
msg_send_int(&m, pthread_reaper_pid);
|
||||
}
|
||||
}
|
||||
|
||||
dINT();
|
||||
if (self->stack) {
|
||||
msg_t m;
|
||||
m.content.ptr = self->stack;
|
||||
msg_send_int(&m, pthread_reaper_pid);
|
||||
}
|
||||
sched_task_exit();
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user