From 0c57f42f9e1bd459a95596b4d70e06f9a7b31148 Mon Sep 17 00:00:00 2001 From: rpj Date: Fri, 24 Jul 1998 03:58:18 +0000 Subject: * sync.c (pthread_join): Save valueptr arg in joinvalueptr for pthread_exit() to use. * private.c (_pthread_new_thread_entry): Initialise joinvalueptr to NULL. * create.c (_pthread_start_call): Rewrite to facilitate joins. pthread_exit() will do a longjmp() back to here. Does appropriate cleanup and exit/return from the thread. (pthread_create): _beginthreadex() now passes a pointer to our thread table entry instead of just the call member of that entry. * implement.h (_pthread_threads_thread): New member void ** joinvalueptr. (_pthread_call_t): New member jmpbuf env. * exit.c (pthread_exit): Major rewrite to handle joins and handing value pointer to joining thread. Uses longjmp() back to _pthread_start_call(). --- ChangeLog | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 102ef6f..29b2289 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,25 @@ Fri Jul 24 03:00:25 1998 Ross Johnson + * sync.c (pthread_join): Save valueptr arg in joinvalueptr for + pthread_exit() to use. + + * private.c (_pthread_new_thread_entry): Initialise joinvalueptr to + NULL. + + * create.c (_pthread_start_call): Rewrite to facilitate joins. + pthread_exit() will do a longjmp() back to here. Does appropriate + cleanup and exit/return from the thread. + (pthread_create): _beginthreadex() now passes a pointer to our + thread table entry instead of just the call member of that entry. + + * implement.h (_pthread_threads_thread): New member + void ** joinvalueptr. + (_pthread_call_t): New member jmpbuf env. + + * exit.c (pthread_exit): Major rewrite to handle joins and handing + value pointer to joining thread. Uses longjmp() back to + _pthread_start_call(). + * create.c (pthread_create): Ensure values of new attribute members are copied to the thread attribute object. -- cgit v1.2.3