summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2012-05-01 04:51:49 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2012-05-01 04:51:49 (GMT)
commit8ee166780cbfe234c62b815deec072a75c5dc9ad (patch)
tree3e75ac935db012ae80ec1b3315c3086cf25e1afc
parent42e171af9f7d955cce861026cfccd61e950256e3 (diff)
parent67a898d6e777d135ab218d8a50fe701644f179a6 (diff)
downloadtcl-8ee166780cbfe234c62b815deec072a75c5dc9ad.zip
tcl-8ee166780cbfe234c62b815deec072a75c5dc9ad.tar.gz
tcl-8ee166780cbfe234c62b815deec072a75c5dc9ad.tar.bz2
merge trunk
-rw-r--r--ChangeLog10
-rw-r--r--tests/io.test1
-rw-r--r--tests/ioCmd.test3
-rw-r--r--unix/tclUnixCompat.c3
4 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index b431346..6694ad6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,14 @@
-2012-14-28 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+2012-04-30 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * tests/ioCmd.test: Tame deadlocks in broken refchan tests [Bug 3522560]
+
+2012-04-28 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
IMPLEMENTATION OF TIP#398
* generic/tclIO.c: Quickly Exit with Non-Blocking Blocked Channels
- * tests/io.test
- * doc/close.n
+ * tests/io.test : *** POTENTIAL INCOMPATIBILITY ***
+ * doc/close.n : (compat flag available)
2012-04-27 Jan Nijtmans <nijtmans@users.sf.net>
diff --git a/tests/io.test b/tests/io.test
index 74a246c..e6cea16 100644
--- a/tests/io.test
+++ b/tests/io.test
@@ -2750,6 +2750,7 @@ test io-29.33b {TIP#398, no implicit flush of nonblocking on exit} {exec} {
close $f
set t1 [clock seconds]
set ff [open "|[list [interpreter] $path(script2)]" w]
+ catch {unset ::env(TCL_FLUSH_NONBLOCKING_ON_EXIT)}
exec [interpreter] $path(script) >@ $ff
set t2 [clock seconds]
close $ff
diff --git a/tests/ioCmd.test b/tests/ioCmd.test
index 4c08229..6b1da73 100644
--- a/tests/ioCmd.test
+++ b/tests/ioCmd.test
@@ -2575,6 +2575,7 @@ test iocmd.tf-24.15 {chan write, EAGAIN means that writing is not allowed at thi
set res
} -cleanup {
proc foo {args} {onfinal; set ::done-24.15 1; return 3}
+ after 1000 {set ::done-24.15 2}
vwait done-24.15
rename foo {}
unset res
@@ -2603,10 +2604,12 @@ test iocmd.tf-24.16 {chan write, note the background flush setup by close due to
proc foo {args} { onfinal; note BG ; track ; set ::endbody-24.16 1}
# Flush (sic!) the event-queue to capture the write from a
# BG-flush.
+ after 1000 {set ::endbody-24.16 2}
vwait endbody-24.16
set res
} -cleanup {
proc foo {args} {onfinal; set ::done-24.16 1; return 3}
+ after 1000 {set ::done-24.16 2}
vwait done-24.16
rename foo {}
unset res
diff --git a/unix/tclUnixCompat.c b/unix/tclUnixCompat.c
index d3da962..1c42056 100644
--- a/unix/tclUnixCompat.c
+++ b/unix/tclUnixCompat.c
@@ -991,9 +991,12 @@ TclWinCPUID(
int status = TCL_ERROR;
#ifdef HAVE_CPUID
+ /* disabled in emergency -- fails on linux */
+# if 0
__asm__ __volatile__ ("cpuid":\
"=a" (regsPtr[0]), "=b" (regsPtr[1]), "=c" (regsPtr[2]), "=d" (regsPtr[3]) : "a" (index));
status = TCL_OK;
+# endif
#endif
return status;
}