summaryrefslogtreecommitdiff
path: root/tests/glthread/thread.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/glthread/thread.h')
-rw-r--r--tests/glthread/thread.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/tests/glthread/thread.h b/tests/glthread/thread.h
index b64e267..1e266bd 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