]> git.lizzy.rs Git - go-anidb.git/blobdiff - animecache.go
anidb: Log UDP traffic
[go-anidb.git] / animecache.go
index b223fe3a4028405faac153700f6cab1c276b0cda..99b89015081833512858db5923f88c6d9bc93429 100644 (file)
@@ -59,6 +59,11 @@ func (adb *AniDB) AnimeByID(aid AID) <-chan *Anime {
        keys := []cacheKey{"aid", aid}
        ch := make(chan *Anime, 1)
 
+       if aid < 1 {
+               ch <- nil
+               close(ch)
+       }
+
        ic := make(chan Cacheable, 1)
        go func() { ch <- (<-ic).(*Anime); close(ch) }()
        if intentMap.Intent(ic, keys...) {
@@ -66,13 +71,13 @@ func (adb *AniDB) AnimeByID(aid AID) <-chan *Anime {
        }
 
        if !cache.CheckValid(keys...) {
-               intentMap.Notify((*Anime)(nil), keys...)
+               intentMap.NotifyClose((*Anime)(nil), keys...)
                return ch
        }
 
        anime := aid.Anime()
        if !anime.IsStale() {
-               intentMap.Notify(anime, keys...)
+               intentMap.NotifyClose(anime, keys...)
                return ch
        }
 
@@ -141,9 +146,9 @@ func (adb *AniDB) AnimeByID(aid AID) <-chan *Anime {
                        if ok {
                                cache.Set(anime, keys...)
                        }
-                       intentMap.Notify(anime, keys...)
+                       intentMap.NotifyClose(anime, keys...)
                } else {
-                       intentMap.Notify((*Anime)(nil), keys...)
+                       intentMap.NotifyClose((*Anime)(nil), keys...)
                }
        }()
        return ch