diff options
Diffstat (limited to 'tests/glthread/thread.h')
-rw-r--r-- | tests/glthread/thread.h | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/tests/glthread/thread.h b/tests/glthread/thread.h index b64e267f..1e266bd6 100644 --- a/tests/glthread/thread.h +++ b/tests/glthread/thread.h @@ -1,5 +1,5 @@ /* Creating and controlling threads. - Copyright (C) 2005-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -54,7 +54,7 @@ gl_thread_exit (return_value); extern _Noreturn void gl_thread_exit (void *return_value); - Requesting custom code to be executed at fork() time(not supported on all + Requesting custom code to be executed at fork() time (not supported on all platforms): gl_thread_atfork (prepare_func, parent_func, child_func); Or with control of error handling: @@ -90,6 +90,17 @@ _GL_INLINE_HEADER_BEGIN # include <pthread.h> +/* On IRIX, pthread_atfork is declared in <unistd.h>, not in <pthread.h>. */ +# if defined __sgi +# include <unistd.h> +# endif + +# if USE_POSIX_THREADS_WEAK +/* Compilers other than GCC need to see the declaration of pthread_sigmask + before the "#pragma weak pthread_sigmask" below. */ +# include <signal.h> +# endif + # ifdef __cplusplus extern "C" { # endif @@ -124,10 +135,6 @@ extern int glthread_in_use (void); # pragma weak pthread_create -# ifdef __clang__ - /* Without this, clang complains that pthread_sigmask is never declared. */ -# include <signal.h> -# endif # ifndef pthread_sigmask /* Do not declare rpl_pthread_sigmask weak. */ # pragma weak pthread_sigmask # endif @@ -142,8 +149,8 @@ extern int glthread_in_use (void); # endif # if !PTHREAD_IN_USE_DETECTION_HARD -# pragma weak pthread_cancel -# define pthread_in_use() (pthread_cancel != NULL) +# pragma weak pthread_mutexattr_gettype +# define pthread_in_use() (pthread_mutexattr_gettype != NULL) # endif # else |