Goの標準パッケージを試す (sync.RWMutex, net.Listen, net.Accept, net.Dial)
sync.RWMutex
https://github.com/Ken2mer/go-example/commit/b22404c36603c2d927567aa597a941ac78251a97
みんなのGo言語 1.4章で map
の排他制御の例が載っていたので、それを参考に Example テストを実装した。あとで sync.RWMutex
がない場合や、うまく動かなかった場合にFailとなるようなテストコードを追加してみたい。
net.Listen, net.Accept
https://github.com/Ken2mer/go-example/commit/50791c9ca06a5f21a5ddbe212e27538399816762
この記事 を参考に net.Listen
と net.Accept
でHTTP Serverを実装した。テストの途中でサーバーを停止させたかったため channel や signal.Notify
といった処理を追記している。テストでは SIGINT
を無理やり?発行させているが、もっと良いやり方がないか模索したい。
Windowsでは syscall.Kill
が使えず テストで落ちる ことが分かったので、これも何とかしたい。
net.Dial
https://github.com/Ken2mer/go-example/commit/a7de1051ea8c341b5a8a706cc143b19cdd8da01d
こちらも この記事 を参考に net.Dial
を使ってHTTPクライアントを実装してみた。
strings.Split(url, "://")[1]
としていたところは url.Parse
を使うように直した。 https://github.com/Ken2mer/go-example/commit/cb746e697bfb798dd8577a1ef67354291a4d41ce