diff options
-rw-r--r-- | nptl/ChangeLog | 3 | ||||
-rw-r--r-- | nptl/pthreadP.h | 10 |
2 files changed, 9 insertions, 4 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index b97c5120c8..a1152ea1a5 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,8 @@ 2002-12-08 Ulrich Drepper <drepper@redhat.com> + * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only + inside libpthread. + * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning. * pthreadP.h: Declare __pthread_enable_asynccancel and diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index c90b782722..4fba194108 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -190,19 +190,21 @@ extern int __pthread_setcanceltype (int type, int *oldtype); extern int __pthread_enable_asynccancel (void) attribute_hidden; extern void __pthread_disable_asynccancel (int oldtype) attribute_hidden; +#ifdef IS_IN_libpthread /* Special versions which use non-exported functions. */ extern void _GI_pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer, void (*routine) (void *), void *arg) attribute_hidden; -#undef pthread_cleanup_push -#define pthread_cleanup_push(routine,arg) \ +# undef pthread_cleanup_push +# define pthread_cleanup_push(routine,arg) \ { struct _pthread_cleanup_buffer _buffer; \ _GI_pthread_cleanup_push (&_buffer, (routine), (arg)); extern void _GI_pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, int execute) attribute_hidden; -#undef pthread_cleanup_pop -#define pthread_cleanup_pop(execute) \ +# undef pthread_cleanup_pop +# define pthread_cleanup_pop(execute) \ _GI_pthread_cleanup_pop (&_buffer, (execute)); } +#endif #endif /* pthreadP.h */ |