Merge pull request #1076 from BytesGalore/remove_return_from_noreturn_function

sys:posix:pthread removed explicit `return;` from `pthread_exit()`
dev/timer
BytesGalore 9 years ago
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…
Cancel
Save