diff options
author | rpj <rpj> | 1998-07-26 11:25:32 +0000 |
---|---|---|
committer | rpj <rpj> | 1998-07-26 11:25:32 +0000 |
commit | e54818fa1513ff6802c929d27f01df2257d8c153 (patch) | |
tree | 455b1d70a09d8d7649265e225cbdc6a2e0ee916b | |
parent | c9d01733e79f70581d2e6616332ac47677a6a2bd (diff) |
Sun Jul 26 13:06:12 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* exit.c (_pthread_exit): New function. Called from pthread_exit()
and _pthread_start_call() to exit the thread. It allows an extra
argument which is the return code passed to _endthreadex().
* create.c (_pthread_start_call): Change pthread_exit() call to
_pthread_exit() call.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | create.c | 3 | ||||
-rw-r--r-- | exit.c | 10 |
3 files changed, 17 insertions, 3 deletions
@@ -1,5 +1,12 @@ Sun Jul 26 13:06:12 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au> + * exit.c (_pthread_exit): New function. Called from pthread_exit() + and _pthread_start_call() to exit the thread. It allows an extra + argument which is the return code passed to _endthreadex(). + + * create.c (_pthread_start_call): Change pthread_exit() call to + _pthread_exit() call. + * exit.c (_pthread_vacuum): Add thread entry deletion code moved from _pthread_start_call(). See next item. (pthread_exit): Remove longjmp(). Add mutex lock around thread table @@ -40,7 +40,8 @@ _pthread_start_call(void * us_arg) ret = (*func)(arg); - pthread_exit(NULL); + _pthread_exit(NULL, ret); + /* Never Reached */ } @@ -46,7 +46,7 @@ _pthread_vacuum(void) } void -pthread_exit(void * value) +_pthread_exit(void * value, int return_code) { _pthread_threads_thread_t * us = _PTHREAD_THIS; @@ -62,5 +62,11 @@ pthread_exit(void * value) _pthread_vacuum(); - _endthreadex(0); + _endthreadex(return_code); +} + +void +pthread_exit(void * value) +{ + _pthread_exit(value, 0); } |