Merge branch 'master' of github.com:gopl-zh/gopl-zh.github.com

pull/1/head
Xargin 2016-07-24 22:43:42 +08:00
commit da5d8dda79
1 changed files with 3 additions and 2 deletions

View File

@ -163,12 +163,13 @@ type Memo struct {
// Get is concurrency-safe.
func (memo *Memo) Get(key string) (value interface{}, err error) {
res, ok := memo.cache[key] if!ok{
res, ok := memo.cache[key]
if !ok {
res.value, res.err = memo.f(key)
memo.cache[key] = res
memo.mu.Lock()
res, ok := memo.cache[key]
if !ok {
if !ok {
res.value, res.err = memo.f(key)
memo.cache[key] = res
}