From 18ce7cc13e00f98e214c211b55669e8dd4b3268c Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sun, 14 Jan 2018 21:45:46 -0600 Subject: pthread: Clean up, fix prototype * Add the missing parameter to __register_atfork. * Sort and document functions. __pthread_register_cancel and __pthread_unregister_cancel should be implemented at some point, or else pthread_cleanup_pop(true) will not work properly and could cause deadlocks in programs that use it. Signed-off-by: Samuel Holland --- libgcompat/pthread.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'libgcompat') diff --git a/libgcompat/pthread.c b/libgcompat/pthread.c index 9333554..4ebbe6b 100644 --- a/libgcompat/pthread.c +++ b/libgcompat/pthread.c @@ -2,17 +2,28 @@ #include "alias.h" /* weak_alias */ -int __register_atfork(void (*prepare)(void), void (*parent)(void), - void (*child)(void)) +/** + * Underlying function for pthread_cleanup_push. + */ +void __pthread_register_cancel(void *buf) { - return pthread_atfork(prepare, parent, child); } -weak_alias(__register_atfork, register_atfork); -void __pthread_register_cancel(void *buf) +/** + * Underlying function for pthread_cleanup_push. + */ +void __pthread_unregister_cancel(void *buf) { } -void __pthread_unregister_cancel(void *buf) +/** + * Register fork handlers. + * + * LSB 5.0: LSB-Core-generic/baselib---register-atfork.html + */ +int __register_atfork(void (*prepare)(void), void (*parent)(void), + void (*child)(void), void *__dso_handle) { + return pthread_atfork(prepare, parent, child); } +weak_alias(__register_atfork, register_atfork); -- cgit v1.2.3-70-g09d2