|  | // Copyright 2018 The Go Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | package http_test | 
|  |  | 
|  | import ( | 
|  | "fmt" | 
|  | "log" | 
|  | "net/http" | 
|  | "sync" | 
|  | ) | 
|  |  | 
|  | type countHandler struct { | 
|  | mu sync.Mutex // guards n | 
|  | n  int | 
|  | } | 
|  |  | 
|  | func (h *countHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { | 
|  | h.mu.Lock() | 
|  | defer h.mu.Unlock() | 
|  | h.n++ | 
|  | fmt.Fprintf(w, "count is %d\n", h.n) | 
|  | } | 
|  |  | 
|  | func ExampleHandle() { | 
|  | http.Handle("/count", new(countHandler)) | 
|  | log.Fatal(http.ListenAndServe(":8080", nil)) | 
|  | } |