From 99acb3fb113a739fe65a3593d86dabaf9d676b67 Mon Sep 17 00:00:00 2001 From: rpj Date: Fri, 24 Jul 1998 09:45:04 +0000 Subject: Fri Jul 24 16:33:17 1998 Ross Johnson * fork.c (pthread_atfork): Add all the necessary push calls. Local implementation semantics: If we get an ENOMEM at any time then ALL handlers (including those from previous pthread_atfork() calls) will be popped off each of the three atfork stacks before we return. (fork): Add all the necessary pop calls. Add the thread cancellation and join calls to the child fork. Add #includes. * implement.h: (_pthread_handler_push): Fix return type and stack arg type in prototype. (_pthread_handler_pop): Fix stack arg type in prototype. (_pthread_handler_pop_all): Fix stack arg type in prototype. * cleanup.c (_pthread_handler_push): Change return type to int and return ENOMEM if malloc() fails. --- pthread.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pthread.h') diff --git a/pthread.h b/pthread.h index dc3c608..8f6fdc5 100644 --- a/pthread.h +++ b/pthread.h @@ -276,8 +276,8 @@ enum { #define pthread_cleanup_push(routine, arg) \ { \ - _pthread_handler_push(_PTHREAD_CLEANUP_STACK, \ - _PTHREAD_HANDLER_POP_LIFO, routine, arg); + (void ) _pthread_handler_push(_PTHREAD_CLEANUP_STACK, \ + _PTHREAD_HANDLER_POP_LIFO, routine, arg); #ifdef pthread_cleanup_pop #undef pthread_cleanup_pop -- cgit v1.2.3