summaryrefslogtreecommitdiffstats
path: root/doc/chan.n
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2016-07-24 12:45:07 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2016-07-24 12:45:07 (GMT)
commit3e6a6753f751ed2cec8c6119d295e4ae7be26852 (patch)
tree21a39d6e57a15574cafe75c6ee7e559c5c1476df /doc/chan.n
parent316be1544dc9ff959fc623486731310634dae74b (diff)
downloadtcl-3e6a6753f751ed2cec8c6119d295e4ae7be26852.zip
tcl-3e6a6753f751ed2cec8c6119d295e4ae7be26852.tar.gz
tcl-3e6a6753f751ed2cec8c6119d295e4ae7be26852.tar.bz2
Make a few tests more resilient to differences in the semantics of pipes between operating systems.bug_db0a5f6417
Diffstat (limited to 'doc/chan.n')
-rw-r--r--doc/chan.n12
1 files changed, 12 insertions, 0 deletions
diff --git a/doc/chan.n b/doc/chan.n
index 7ea0d19..cc53d3b 100644
--- a/doc/chan.n
+++ b/doc/chan.n
@@ -547,6 +547,18 @@ this, spawn with "2>@" or
">@" redirection operators onto the write side of a pipe, and then
immediately close it in the parent. This is necessary to get an EOF on
the read side once the child has exited or otherwise closed its output.
+.RS
+.PP
+Note that the pipe buffering semantics can vary at the operating system level
+substantially; it is not safe to assume that a write performed on the output
+side of the pipe will appear instantly to the input side. This is a
+fundamental difference and Tcl cannot conceal it. The overall stream semantics
+\fIare\fR compatible, so blocking reads and writes will not see most of the
+differences, but the details of what exactly gets written when are not. This
+is most likely to show up when using pipelines for testing; care should be
+taken to ensure that deadlocks do not occur and that potential short reads are
+allowed for.
+.RE
.VE 8.6
.TP
\fBchan pop \fIchannelId\fR