diff --git a/examples/timeouts/timeouts.go b/examples/timeouts/timeouts.go index ccc9ecb..ce1d1cd 100644 --- a/examples/timeouts/timeouts.go +++ b/examples/timeouts/timeouts.go @@ -12,7 +12,10 @@ func main() { // For our example, suppose we're executing an external // call that returns its result on a channel `c1` - // after 2s. + // after 2s. Note that the channel is buffered, so the + // send in the goroutine is nonblocking. This is a + // common pattern to prevent goroutine leaks in case the + // channel is never read. c1 := make(chan string, 1) go func() { time.Sleep(2 * time.Second) diff --git a/examples/timeouts/timeouts.hash b/examples/timeouts/timeouts.hash index 64d1c5a..f510bfa 100644 --- a/examples/timeouts/timeouts.hash +++ b/examples/timeouts/timeouts.hash @@ -1,2 +1,2 @@ -93343e1aacb14f818c87732914c29ba57afab245 -MgcfA-xpJO9 +b1e8d0efbabd0c52271a85fad5ad58dcd1c7c476 +gyY_qDsRVUe diff --git a/examples/timeouts/timeouts.sh b/examples/timeouts/timeouts.sh index 8a9dfb4..3c4344f 100644 --- a/examples/timeouts/timeouts.sh +++ b/examples/timeouts/timeouts.sh @@ -3,9 +3,3 @@ $ go run timeouts.go timeout 1 result 2 - -# Using this `select` timeout pattern requires -# communicating results over channels. This is a good -# idea in general because other important Go features are -# based on channels and `select`. We'll look at two -# examples of this next: timers and tickers. diff --git a/public/timeouts b/public/timeouts index c00732d..8142985 100644 --- a/public/timeouts +++ b/public/timeouts @@ -44,7 +44,7 @@ elegant thanks to channels and select.

- +
package main
 
@@ -80,7 +80,10 @@ elegant thanks to channels and select.

For our example, suppose we’re executing an external call that returns its result on a channel c1 -after 2s.

+after 2s. Note that the channel is buffered, so the +send in the goroutine is nonblocking. This is a +common pattern to prevent goroutine leaks in case the +channel is never read.

@@ -153,7 +156,7 @@ from c2 will succeed and we’ll print the result.

out and the second succeeding.

- +
$ go run timeouts.go 
 timeout 1
@@ -163,21 +166,6 @@ out and the second succeeding.

- - -

Using this select timeout pattern requires -communicating results over channels. This is a good -idea in general because other important Go features are -based on channels and select. We’ll look at two -examples of this next: timers and tickers.

- - - - - - - - @@ -191,7 +179,7 @@ examples of this next: timers and tickers.