Commit dc60c5a7 authored by Robert Griesemer's avatar Robert Griesemer

go spec: clarification of channel close()

R=r, rsc
CC=golang-dev
https://golang.org/cl/1766042
parent 708d7160
<!-- title The Go Programming Language Specification -->
<!-- subtitle Version of July 12, 2010 -->
<!-- subtitle Version of July 14, 2010 -->
<!--
TODO
......@@ -4347,14 +4347,17 @@ BuiltinArgs = Type [ "," ExpressionList ] | ExpressionList .
<h3 id="Close_and_closed">Close and closed</h3>
<p>
For a channel <code>c</code>, the predefined function <code>close(c)</code>
marks the channel as unable to accept more
values through a send operation. After any previously
For a channel <code>c</code>, the built-in function <code>close(c)</code>
marks the channel as unable to accept more values through a send operation;
values sent to a closed channed are ignored.
After calling <code>close</code>, and after any previously
sent values have been received, receive operations will return
the zero value for the channel's type. After at least one such zero value has been
the zero value for the channel's type without blocking.
After at least one such zero value has been
received, <code>closed(c)</code> returns true.
</p>
<h3 id="Length_and_capacity">Length and capacity</h3>
<p>
......@@ -4560,10 +4563,10 @@ func recover() interface{}
</pre>
<p>
<font color=red>TODO: Most of this text could move to the respective
<span class="alert">TODO: Most of this text could move to the respective
comments in <code>runtime.go</code> once the functions are implemented.
They are here, at least for now, for reference and discussion.
</font>
</span>
</p>
<p>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment