diff --git a/server/topic.go b/server/topic.go index 19501a87..b168c70f 100644 --- a/server/topic.go +++ b/server/topic.go @@ -58,6 +58,8 @@ func (t *topic) Subscribe(s subscriber, visitor *visitor, cancel func(), subscri } func (t *topic) Stale() bool { + t.mu.Lock() + defer t.mu.Unlock() // if Time is initialized (not the zero value) and the expiry time has passed if !t.lastVisitorExpires.IsZero() && t.lastVisitorExpires.Before(time.Now()) { t.lastVisitor = nil @@ -66,6 +68,8 @@ func (t *topic) Stale() bool { } func (t *topic) Billee() *visitor { + t.mu.Lock() + defer t.mu.Unlock() return t.lastVisitor }