summaryrefslogtreecommitdiffstats
path: root/tests/winPipe.test
diff options
context:
space:
mode:
authordavygrvy <davygrvy@pobox.com>2005-04-19 16:28:22 (GMT)
committerdavygrvy <davygrvy@pobox.com>2005-04-19 16:28:22 (GMT)
commitdcd2e428a1d1f9e3e9948ec66db8fc00a50f5f78 (patch)
tree26209da071fe74735cc8b3ec35ad52bb1c9cb722 /tests/winPipe.test
parenta67b1b3bbeb88556675d7fde92fea842d50ef35f (diff)
downloadtcl-dcd2e428a1d1f9e3e9948ec66db8fc00a50f5f78.zip
tcl-dcd2e428a1d1f9e3e9948ec66db8fc00a50f5f78.tar.gz
tcl-dcd2e428a1d1f9e3e9948ec66db8fc00a50f5f78.tar.bz2
* win/tclWinPipe.c: The pipe channel driver now respects
the -blocking option when closing. The windows pipe driver now has the same behavior as the UNIX side. This change is to avoid a hung shell when exiting due to open pipes that refuse to close in a graceful manner. * doc/open.n: Added a note about -blocking 0 and lack of exit status as it had never been documented. [Bug 947693] ***POTENTIAL INCOMPATIBILITY*** Scripts that use async pipes on windows, must (like the UNIX side) set -blocking to 1 before calling [close] to receive the exit status. * tests/winPipe.test (winpipe-6.1/2): added 'fconfigure $f -blocking 1' so the exit status can be acquired.
Diffstat (limited to 'tests/winPipe.test')
-rw-r--r--tests/winPipe.test4
1 files changed, 3 insertions, 1 deletions
diff --git a/tests/winPipe.test b/tests/winPipe.test
index 4cc6e26..34de9bb 100644
--- a/tests/winPipe.test
+++ b/tests/winPipe.test
@@ -12,7 +12,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: winPipe.test,v 1.22.2.2 2004/10/28 00:01:12 dgp Exp $
+# RCS: @(#) $Id: winPipe.test,v 1.22.2.3 2005/04/19 16:28:34 davygrvy Exp $
package require tcltest
namespace import -force ::tcltest::*
@@ -295,6 +295,7 @@ test winpipe-6.1 {PipeSetupProc & PipeCheckProc: read threads} \
lappend x [read $f]
after 100 { lappend x timeout }
vwait x
+ fconfigure $f -blocking 1
lappend x [catch {close $f} msg] $msg
} {writable timeout readable {foobar
} timeout 1 stderr32}
@@ -309,6 +310,7 @@ test winpipe-6.2 {PipeSetupProc & PipeCheckProc: write threads} \
flush $f
after 100 { lappend x timeout }
vwait x
+ fconfigure $f -blocking 1
lappend x [catch {close $f} msg] $msg
} {writable timeout 0 {}}