libthreads: thrd_join() always return 0
authorBrian Norris <banorris@uci.edu>
Fri, 13 Jul 2012 05:18:25 +0000 (22:18 -0700)
committerBrian Norris <banorris@uci.edu>
Fri, 13 Jul 2012 05:18:25 +0000 (22:18 -0700)
According to the spec, thrd_join() should return the return code from the
joining thread function. But for now, I implement the function type
(thrd_start_t, from C11) as returning void, not int. So just return 0 always.

libthreads.cc

index a414686dccb713116bad22a1e6126f590b72cc7b..c54c9aa415e6289c43abcba24e4e3a8d32874755 100644 (file)
@@ -23,11 +23,10 @@ int thrd_create(thrd_t *t, thrd_start_t start_routine, void *arg)
 
 int thrd_join(thrd_t t)
 {
-       int ret = 0;
        Thread *th = model->get_thread(thrd_to_id(t));
-       while (th->get_state() != THREAD_COMPLETED && !ret)
-               ret = model->switch_to_master(NULL);
-       return ret;
+       while (th->get_state() != THREAD_COMPLETED)
+               model->switch_to_master(NULL);
+       return 0;
 }
 
 int thrd_yield(void)