summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2016-07-26 10:08:29 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2016-07-26 10:08:29 (GMT)
commitc8206cd0eabcf7418eb982e0b8e5d680a46e68c9 (patch)
tree5919a8449029b694e8f3b23a208f3d46435e5567 /doc
parentf6a4d71bada6d59b1daf550d919038e8e34ba666 (diff)
parent3e6a6753f751ed2cec8c6119d295e4ae7be26852 (diff)
downloadtcl-c8206cd0eabcf7418eb982e0b8e5d680a46e68c9.zip
tcl-c8206cd0eabcf7418eb982e0b8e5d680a46e68c9.tar.gz
tcl-c8206cd0eabcf7418eb982e0b8e5d680a46e68c9.tar.bz2
[db0a5f6417] Make a few tests resilient to differences in semantics of pipes between OSs.
Diffstat (limited to 'doc')
-rw-r--r--doc/chan.n12
1 files changed, 12 insertions, 0 deletions
diff --git a/doc/chan.n b/doc/chan.n
index 36d56f8..81aa9f4 100644
--- a/doc/chan.n
+++ b/doc/chan.n
@@ -549,6 +549,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