singleflight
https://godoc.org/golang.org/x/sync/singleflight
同一の関数を並列に呼び出したときに、一回だけ実行するためのgoパッケージ
メモ化ではない
元ネタはgroupcacheの実装っぽい
https://github.com/golang/groupcache/blob/master/singleflight/singleflight.go
DoChanとForgetはgroupcacheの実装にはない