aboutsummaryrefslogtreecommitdiffstats
path: root/devel
diff options
context:
space:
mode:
authortegge <tegge@FreeBSD.org>2001-09-14 00:01:44 +0800
committertegge <tegge@FreeBSD.org>2001-09-14 00:01:44 +0800
commit69cf721b8c1e368a8de0b0e3b1a011b408a5d7fe (patch)
tree361ded6197d5979c604f530318ee97ab9dd8767f /devel
parent85a899598ac01c2e3e840f41b31f20f61cfa241d (diff)
downloadfreebsd-ports-gnome-69cf721b8c1e368a8de0b0e3b1a011b408a5d7fe.tar.gz
freebsd-ports-gnome-69cf721b8c1e368a8de0b0e3b1a011b408a5d7fe.tar.zst
freebsd-ports-gnome-69cf721b8c1e368a8de0b0e3b1a011b408a5d7fe.zip
Handle internal race that caused pthread_cond_timedwait() to block
waiting for a signal that wasn't sent.
Diffstat (limited to 'devel')
-rw-r--r--devel/linuxthreads/Makefile2
-rw-r--r--devel/linuxthreads/files/patch-aa9
2 files changed, 10 insertions, 1 deletions
diff --git a/devel/linuxthreads/Makefile b/devel/linuxthreads/Makefile
index 0c09a9dc6c61..9c341c54d04b 100644
--- a/devel/linuxthreads/Makefile
+++ b/devel/linuxthreads/Makefile
@@ -7,7 +7,7 @@
PORTNAME= linuxthreads
PORTVERSION= 2.2.3
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU}
MASTER_SITE_SUBDIR= glibc
diff --git a/devel/linuxthreads/files/patch-aa b/devel/linuxthreads/files/patch-aa
index 54a6f6a848c2..ef2383e4861d 100644
--- a/devel/linuxthreads/files/patch-aa
+++ b/devel/linuxthreads/files/patch-aa
@@ -801,6 +801,15 @@ diff -ru ../../work/linuxthreads-2.2.3/pthread.c ./pthread.c
/* Make current thread the main thread in case the calling thread
changes its mind, does not exec(), and creates new threads instead. */
__pthread_reset_main_thread();
+@@ -967,7 +947,7 @@
+ __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime)
+ {
+ sigset_t unblock, initial_mask;
+- int was_signalled = 0;
++ int was_signalled = 1;
+ sigjmp_buf jmpbuf;
+
+ if (atomic_decrement(&self->p_resume_count) == 0) {
@@ -1131,3 +1111,17 @@
static const int *const __pthread_require_wrappers =
&__pthread_provide_wrappers;