From b71e44a2958f126a3de29dd3641cfbc259cff627 Mon Sep 17 00:00:00 2001 From: Joe Mistachkin Date: Sun, 18 Oct 2009 11:15:10 +0000 Subject: Fix for [Bug 1565466] --- ChangeLog | 8 ++++++++ tests/thread.test | 11 +++++++---- 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 + + * 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 * 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} -- cgit v0.12