don't cache box lookup failure. don't hold lock for too long.

This commit is contained in:
Ted Unangst 2019-04-14 13:23:27 -04:00
parent a80a156718
commit 2436a76b7e
1 changed files with 3 additions and 5 deletions

View File

@ -263,23 +263,21 @@ var boxlock sync.Mutex
func getboxes(ident string) (string, string, error) {
boxlock.Lock()
defer boxlock.Unlock()
b, ok := boxofboxes[ident]
boxlock.Unlock()
if ok {
if b == "" {
return "", "", fmt.Errorf("error?")
}
m := strings.Split(b, "\n")
return m[0], m[1], nil
}
j, err := GetJunk(ident)
if err != nil {
boxofboxes[ident] = ""
return "", "", err
}
inbox, _ := jsongetstring(j, "inbox")
outbox, _ := jsongetstring(j, "outbox")
boxlock.Lock()
boxofboxes[ident] = inbox + "\n" + outbox
boxlock.Unlock()
return inbox, outbox, err
}