summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--tests/thread.test11
2 files changed, 15 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a1a2ef0..8f7f32f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-10-18 Joe Mistachkin <joe@mistachkin.com>
+
+ * tests/thread.test (thread-4.[345]): [Bug 1565466]: Correct tests to
+ save their error state before the final call to threadReap just in case
+ it triggers an "invalid thread id" error. This error can occur if one
+ or more of the target threads has exited prior to the attempt to send
+ it an asynchronous exit command.
+
2009-10-04 Daniel Steffen <das@users.sourceforge.net>
* macosx/tclMacOSXBundle.c: Workaround CF memory managment bug in
diff --git a/tests/thread.test b/tests/thread.test
index 2686720..037766d 100644
--- a/tests/thread.test
+++ b/tests/thread.test
@@ -10,7 +10,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: thread.test,v 1.10 2000/05/02 22:02:36 kupries Exp $
+# RCS: @(#) $Id: thread.test,v 1.10.18.1 2009/10/18 11:15:10 mistachkin Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest
@@ -204,8 +204,9 @@ test thread-4.3 {TclThreadSend preserve errorInfo} {testthread} {
set len [llength [testthread names]]
set serverthread [testthread create]
set x [catch {testthread send $serverthread {set undef}} msg]
+ set savedErrorInfo $errorInfo
threadReap
- list $len $x $msg $errorInfo
+ list $len $x $msg $savedErrorInfo
} {1 1 {can't read "undef": no such variable} {can't read "undef": no such variable
while executing
"set undef"
@@ -217,8 +218,9 @@ test thread-4.4 {TclThreadSend preserve code} {testthread} {
set len [llength [testthread names]]
set serverthread [testthread create]
set x [catch {testthread send $serverthread {break}} msg]
+ set savedErrorInfo $errorInfo
threadReap
- list $len $x $msg $errorInfo
+ list $len $x $msg $savedErrorInfo
} {1 3 {} {}}
test thread-4.5 {TclThreadSend preserve errorCode} {testthread} {
@@ -226,8 +228,9 @@ test thread-4.5 {TclThreadSend preserve errorCode} {testthread} {
set ::tcltest::mainThread [testthread names]
set serverthread [testthread create]
set x [catch {testthread send $serverthread {error ERR INFO CODE}} msg]
+ set savedErrorCode $errorCode
threadReap
- list $x $msg $errorCode
+ list $x $msg $savedErrorCode
} {1 ERR CODE}