From 91275c0da873fefde8ef8bb5b0a72ed39fd87ec3 Mon Sep 17 00:00:00 2001
From: Igor V Belousov <igor@belousovv.ru>
Date: Tue, 23 Nov 2021 21:30:21 +0300
Subject: [PATCH] Chapter 1 - server2.go

---
 ch1/server2.go | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 ch1/server2.go

diff --git a/ch1/server2.go b/ch1/server2.go
new file mode 100644
index 0000000..49b69a1
--- /dev/null
+++ b/ch1/server2.go
@@ -0,0 +1,33 @@
+// Server2 - минимальный "echo"-сервер со счетчиком запросов.
+package main
+
+import (
+	"fmt"
+	"log"
+	"net/http"
+	"sync"
+)
+
+var mu sync.Mutex
+var count int
+
+func main() {
+	http.HandleFunc("/", handler)
+	http.HandleFunc("/count", counter)
+	log.Fatal(http.ListenAndServe("localhost:8888", nil))
+}
+
+// Обрабочик, возвращающий количество сделанных запросов.
+func handler(w http.ResponseWriter, r *http.Request) {
+	mu.Lock()
+	count++
+	mu.Unlock()
+	fmt.Fprintf(w, "URL.Path = %q\n", r.URL.Path)
+}
+
+// Счетчик, возвращающий количество сделанных запросов.
+func counter(w http.ResponseWriter, r *http.Request) {
+	mu.Lock()
+	fmt.Fprintf(w, "Count %d\n", count)
+	mu.Unlock()
+}
\ No newline at end of file