diff options
author | Ferenc Szabo <frncmx@gmail.com> | 2020-06-25 11:12:50 +0200 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2020-06-30 13:02:41 +0000 |
commit | c4fd3f6ff60189ba18446d538523b646f37f930b (patch) | |
tree | f791724eb24d264ed80c2cdb9e231dfc1acd841d /doc | |
parent | 8c521739f27bd745bde0dcb3d5c9a332b06a6a42 (diff) | |
download | go-c4fd3f6ff60189ba18446d538523b646f37f930b.tar.gz go-c4fd3f6ff60189ba18446d538523b646f37f930b.zip |
doc: add note about missing lock in sample code
The sample code in 'Interfaces and methods' section contains a
data race. Handlers are served concurrently. The handler does write
and read operations; `go test -race` would fail (with concurrent
requests). Since the doc is frozen and the code remains less
cluttered without locks/atomic, don't change the sample code.
Change-Id: I654b324d2f0b7f48497822751907c7d39e2f0e3d
Reviewed-on: https://go-review.googlesource.com/c/go/+/239877
Reviewed-by: Rob Pike <r@golang.org>
Diffstat (limited to 'doc')
-rw-r--r-- | doc/effective_go.html | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/doc/effective_go.html b/doc/effective_go.html index 9be6bc7cb06..76204029841 100644 --- a/doc/effective_go.html +++ b/doc/effective_go.html @@ -2336,10 +2336,9 @@ of the request from the client. </p> <p> For brevity, let's ignore POSTs and assume HTTP requests are always -GETs; that simplification does not affect the way the handlers are -set up. Here's a trivial but complete implementation of a handler to -count the number of times the -page is visited. +GETs; that simplification does not affect the way the handlers are set up. +Here's a trivial implementation of a handler to count the number of times +the page is visited. </p> <pre> // Simple counter server. @@ -2355,6 +2354,11 @@ func (ctr *Counter) ServeHTTP(w http.ResponseWriter, req *http.Request) { <p> (Keeping with our theme, note how <code>Fprintf</code> can print to an <code>http.ResponseWriter</code>.) +In a real server, access to <code>ctr.n</code> would need protection from +concurrent access. +See the <code>sync</code> and <code>atomic</code> packages for suggestions. +</p> +<p> For reference, here's how to attach such a server to a node on the URL tree. </p> <pre> |