diff options
author | andreas_kupries <akupries@shaw.ca> | 2007-11-24 00:08:47 (GMT) |
---|---|---|
committer | andreas_kupries <akupries@shaw.ca> | 2007-11-24 00:08:47 (GMT) |
commit | b7e6cdab2219ace8caafe5823ce83755572e03a7 (patch) | |
tree | 4e0bbcafe1067efa3f3d0b29888dfd277224ab0a /tests | |
parent | 9d4ebdeb66d1504ddb70481085e0a2abc4d68af2 (diff) | |
download | tcl-b7e6cdab2219ace8caafe5823ce83755572e03a7.zip tcl-b7e6cdab2219ace8caafe5823ce83755572e03a7.tar.gz tcl-b7e6cdab2219ace8caafe5823ce83755572e03a7.tar.bz2 |
* generic/tclIORChan.c: Fixed a problem with reflected
channels. 'chan postevent' is defined to work only from within
the interpreter containing the handler command. Sensible, we
want only handler commands to use it. It identifies the channel
by handle. The channel moves to a different interpreter or
thread. The interpreter containing the handler command doesn't
know the channel any longer. 'chan postevent' fails, not finding
the channel any longer. Uhm.
Fixed by creating a second per-interpreter channel table, just
for reflected channels, where each interpreter remembers for
which reflected channels it has the handler command. This info
does not move with the channel itself. The table is updated by
'chan create', and used by 'chan postevent'.
* tests/ioCmd.test: Updated the testsuite.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ioCmd.test | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tests/ioCmd.test b/tests/ioCmd.test index baf7ae3..15b241f 100644 --- a/tests/ioCmd.test +++ b/tests/ioCmd.test @@ -13,7 +13,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: ioCmd.test,v 1.33 2007/11/20 20:43:13 dkf Exp $ +# RCS: @(#) $Id: ioCmd.test,v 1.34 2007/11/24 00:08:48 andreas_kupries Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest 2 @@ -1732,7 +1732,7 @@ test iocmd-31.1 {chan postevent, restricted to reflected channels} -match glob - close $c removeFile goo set msg -} -result {channel "file*" is not a reflected channel} +} -result {can not find reflected channel named "file*"} test iocmd-31.2 {chan postevent, unwanted events} -match glob -body { set res {} proc foo {args} {oninit; onfinal; track; return} @@ -3182,7 +3182,7 @@ test iocmd.tf-31.8 {chan postevent, bad input} -match glob -body { rename foo {} set res } -constraints {testchannel testthread} \ - -result {{postevent for channel "rc*" called from outside interpreter}} + -result {{can not find reflected channel named "rc*"}} # ### ### ### ######### ######### ######### |