summaryrefslogtreecommitdiff
path: root/lang/tcl/patches
diff options
context:
space:
mode:
authorseb <seb@pkgsrc.org>2005-08-31 14:46:59 +0000
committerseb <seb@pkgsrc.org>2005-08-31 14:46:59 +0000
commit20632ca1d6f848330251e4ebe02d6d56fc33207e (patch)
tree9ffbfe0e1c02a4f8c6af95f106c69099fda2e1c6 /lang/tcl/patches
parent121ea81a271e27d34654f392e836b9469d54ae13 (diff)
downloadpkgsrc-20632ca1d6f848330251e4ebe02d6d56fc33207e.tar.gz
Add patch from Tcl cvs repository. See:
http://sourceforge.net/tracker/index.php?func=detail&aid=1222872&group_id=10894&atid=110894 http://cvs.sourceforge.net/viewcvs.py/tcl/tcl/unix/tclUnixNotfy.c?r1=1.11.2.12&r2=1.11.2.13&only_with_tag=core-8-4-branch This has the added benefit of improving the tcl interpreter stability on NetBSD/sparc64 2.0_STABLE: no more SIGBUS, due to a LP64 type problem with a pthread_join() argument, even if the self-test is still shaggy. Approved by jwise@.
Diffstat (limited to 'lang/tcl/patches')
-rw-r--r--lang/tcl/patches/patch-ak31
1 files changed, 31 insertions, 0 deletions
diff --git a/lang/tcl/patches/patch-ak b/lang/tcl/patches/patch-ak
new file mode 100644
index 00000000000..92d16060142
--- /dev/null
+++ b/lang/tcl/patches/patch-ak
@@ -0,0 +1,31 @@
+$NetBSD: patch-ak,v 1.1 2005/08/31 14:46:59 seb Exp $
+
+--- tclUnixNotfy.c.orig 2005-06-07 10:26:58.000000000 +0000
++++ tclUnixNotfy.c
+@@ -275,7 +275,7 @@ Tcl_FinalizeNotifier(clientData)
+ */
+
+ if (notifierCount == 0) {
+- int result, dummy;
++ int result;
+ if (triggerPipe < 0) {
+ panic("Tcl_FinalizeNotifier: notifier pipe not initialized");
+ }
+@@ -288,13 +288,14 @@ Tcl_FinalizeNotifier(clientData)
+ * not just close the pipe and check for EOF in the notifier
+ * thread because if a background child process was created with
+ * exec, select() would not register the EOF on the pipe until the
+- * child processes had terminated. [Bug: 4139]
++ * child processes had terminated. [Bug: 4139][Bug: 1222872]
+ */
+ write(triggerPipe, "q", 1);
+ close(triggerPipe);
+-
++ while(triggerPipe >= 0) {
+ Tcl_ConditionWait(&notifierCV, &notifierMutex, NULL);
+- result = Tcl_JoinThread(notifierThread, &dummy);
++ }
++ result = Tcl_JoinThread(notifierThread, NULL);
+ if (result) {
+ Tcl_Panic("Tcl_FinalizeNotifier: unable to join notifier thread");
+ }