summaryrefslogtreecommitdiffstats
path: root/doc/refchan.n
diff options
context:
space:
mode:
authorandreas_kupries <akupries@shaw.ca>2010-03-09 21:15:18 (GMT)
committerandreas_kupries <akupries@shaw.ca>2010-03-09 21:15:18 (GMT)
commit2c4e9fc134585c9dbbd25671018e100165ad1b63 (patch)
tree724d8a71a5b1260db148bd7234a41effc7475305 /doc/refchan.n
parent2867759e778d170453f568cec080f7f2256aa62f (diff)
downloadtcl-2c4e9fc134585c9dbbd25671018e100165ad1b63.zip
tcl-2c4e9fc134585c9dbbd25671018e100165ad1b63.tar.gz
tcl-2c4e9fc134585c9dbbd25671018e100165ad1b63.tar.bz2
* generic/tclIORChan.c: [Bug 2936225]: Thanks to Alexandre Ferrieux
* doc/refchan.n: <ferrieux@users.sourceforge.net> for debugging and fixing * tests/ioCmd.test: the problem. It is the write-side equivalent to the bug fixed 2009-08-06.
Diffstat (limited to 'doc/refchan.n')
-rw-r--r--doc/refchan.n38
1 files changed, 36 insertions, 2 deletions
diff --git a/doc/refchan.n b/doc/refchan.n
index 4edd7ad..5007a09 100644
--- a/doc/refchan.n
+++ b/doc/refchan.n
@@ -4,7 +4,7 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
-'\" RCS: @(#) $Id: refchan.n,v 1.19 2010/03/03 18:30:28 andreas_kupries Exp $
+'\" RCS: @(#) $Id: refchan.n,v 1.20 2010/03/09 21:15:19 andreas_kupries Exp $
.so man.macros
.TH refchan n 8.5 Tcl "Tcl Built-In Commands"
.BS
@@ -176,7 +176,41 @@ negative value implies that the write failed. Returning a value
greater than the number of bytes given to the handler, or zero, is
forbidden and will cause the Tcl core to throw an error.
.PP
-If the subcommand throws an error the command which caused its
+To signal that the channel is not able to accept data for writing
+right now, it is necessary to throw the error "EAGAIN", i.e. to either
+.PP
+.CS
+return -code error EAGAIN
+.CE
+or
+.CS
+error EAGAIN
+.CE
+.PP
+For extensibility any error whose value is a negative integer number
+will cause the higher layers to set the C-level variable "\fBerrno\fR"
+to the absolute value of this number, signaling a system error.
+However, note that the exact mapping between these error numbers and
+their meanings is operating system dependent.
+.PP
+For example, while on Linux both
+.PP
+.CS
+return -code error -11
+.CE
+and
+.CS
+error -11
+.CE
+.PP
+are equivalent to the examples above, using the more readable string "EAGAIN",
+this is not true for BSD, where the equivalent number is -35.
+.PP
+The symbolic string however is the same across systems, and internally
+translated to the correct number. No other error value has such a mapping
+to a symbolic string.
+.PP
+If the subcommand throws any other error the command which caused its
invocation (usually \fBputs\fR) will appear to have thrown this error.
Any exception beyond \fBerror\fR (e.g.,\ \fBbreak\fR, etc.) is treated
as and converted to an error.