summaryrefslogtreecommitdiff
path: root/lib/glthread/lock.h
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2018-03-07 05:31:29 +0100
committerJörg Frings-Fürst <debian@jff.email>2018-03-07 05:31:29 +0100
commit69bb64199daa7706d4b74d13b65d88ba8aab5e57 (patch)
tree55f95f9bd36ff038dc60f1f6994baef78d735ba9 /lib/glthread/lock.h
parent0cb66c451a1a4e717878b8296b79c8d7cfd38b30 (diff)
parentf7c3580478601e3a77dc864e5a1d91c1edad5187 (diff)
Update upstream source from tag 'upstream/0.9.9'
Update to upstream version '0.9.9' with Debian dir 17ff42c74c83731ce6c9bc739436c59103f706be
Diffstat (limited to 'lib/glthread/lock.h')
-rw-r--r--lib/glthread/lock.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/glthread/lock.h b/lib/glthread/lock.h
index 0628555..ffb2b0e 100644
--- a/lib/glthread/lock.h
+++ b/lib/glthread/lock.h
@@ -1,5 +1,5 @@
/* Locking in multithreaded situations.
- 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 either:
@@ -158,8 +158,18 @@ extern int glthread_in_use (void);
# endif
# if !PTHREAD_IN_USE_DETECTION_HARD
-# pragma weak pthread_cancel
-# define pthread_in_use() (pthread_cancel != NULL)
+ /* On most platforms, pthread_cancel or pthread_kill can be used to
+ determine whether libpthread is in use.
+ On newer versions of FreeBSD, however, this is no longer possible,
+ because pthread_cancel and pthread_kill got added to libc. Therefore
+ use pthread_create to test whether libpthread is in use. */
+# if defined __FreeBSD__ || defined __DragonFly__ /* FreeBSD */
+# pragma weak pthread_create
+# define pthread_in_use() (pthread_create != NULL)
+# else /* glibc, NetBSD, OpenBSD, IRIX, OSF/1, Solaris */
+# pragma weak pthread_cancel
+# define pthread_in_use() (pthread_cancel != NULL)
+# endif
# endif
# else