r5697 - in glibc-package/trunk/debian: . patches/hurd-i386
Author: sthibault
Date: 2013-09-21 23:40:55 +0000 (Sat, 21 Sep 2013)
New Revision: 5697
Modified:
glibc-package/trunk/debian/changelog
glibc-package/trunk/debian/patches/hurd-i386/tg-thread-cancel.diff
Log:
* patches/hurd-i386/tg-thread-cancel.diff: Update patch against two other
overzealous assertions.
Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog 2013-09-21 21:34:08 UTC (rev 5696)
+++ glibc-package/trunk/debian/changelog 2013-09-21 23:40:55 UTC (rev 5697)
@@ -19,6 +19,8 @@
Schwinge to add support for SOCK_CLOEXEC and SOCK_NONBLOCK.
* patches/hurd-i386/tg-pthread-atfork.diff,cvs-pthread_atfork.diff: Add
pthread_atfork support.
+ * patches/hurd-i386/tg-thread-cancel.diff: Update patch against two other
+ overzealous assertions.
-- Adam Conrad <adconrad@0c3.net> Thu, 01 Aug 2013 23:00:51 +0100
Modified: glibc-package/trunk/debian/patches/hurd-i386/tg-thread-cancel.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/tg-thread-cancel.diff 2013-09-21 21:34:08 UTC (rev 5696)
+++ glibc-package/trunk/debian/patches/hurd-i386/tg-thread-cancel.diff 2013-09-21 23:40:55 UTC (rev 5697)
@@ -1,13 +1,26 @@
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
-Subject: [PATCH] The critical section lock _can_ be held in that place.
+Subject: [PATCH] The critical section lock _can_ be held in these place.
+At least since hurd_thread_cancel can be called by another thread.
+
+2006-08-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * hurd/thread-cancel.c (hurd_thread_cancel): Do not assert that
+ `&ss->critical_section_lock' is unlocked.
+ * sysdeps/mach/hurd/jmp-unwind.c (_longjmp_unwind): Likewise.
+ * sysdeps/mach/hurd/spawni.c (__spawni): Likewise.
+
---
hurd/thread-cancel.c | 1 -
- 1 file changed, 1 deletion(-)
+ sysdeps/mach/hurd/jmp-unwind.c | 1 -
+ sysdeps/mach/hurd/spawni.c | 1 -
+ 3 files changed, 3 deletions(-)
+diff --git a/hurd/thread-cancel.c b/hurd/thread-cancel.c
+index c7f88ee..2e8d91e 100644
--- a/hurd/thread-cancel.c
+++ b/hurd/thread-cancel.c
-@@ -51,7 +51,6 @@
+@@ -51,7 +51,6 @@ hurd_thread_cancel (thread_t thread)
return 0;
}
@@ -15,3 +28,29 @@
__spin_lock (&ss->critical_section_lock);
__spin_lock (&ss->lock);
err = __thread_suspend (thread);
+diff --git a/sysdeps/mach/hurd/jmp-unwind.c b/sysdeps/mach/hurd/jmp-unwind.c
+index bdc24b9..d199682 100644
+--- a/sysdeps/mach/hurd/jmp-unwind.c
++++ b/sysdeps/mach/hurd/jmp-unwind.c
+@@ -50,7 +50,6 @@ _longjmp_unwind (jmp_buf env, int val)
+ /* All access to SS->active_resources must take place inside a critical
+ section where signal handlers cannot run. */
+ __spin_lock (&ss->lock);
+- assert (! __spin_lock_locked (&ss->critical_section_lock));
+ __spin_lock (&ss->critical_section_lock);
+
+ /* Remove local signal preemptors being unwound past. */
+diff --git a/sysdeps/mach/hurd/spawni.c b/sysdeps/mach/hurd/spawni.c
+index 867579d..bcd06dd 100644
+--- a/sysdeps/mach/hurd/spawni.c
++++ b/sysdeps/mach/hurd/spawni.c
+@@ -235,7 +235,6 @@ __spawni (pid_t *pid, const char *file,
+
+ ss = _hurd_self_sigstate ();
+
+- assert (! __spin_lock_locked (&ss->critical_section_lock));
+ __spin_lock (&ss->critical_section_lock);
+
+ _hurd_sigstate_lock (ss);
+--
+tg: (9a079e2..) t/thread-cancel (depends on: baseline)
Reply to: