diff --git a/server/accounts.go b/server/accounts.go index 521604f9..ba15dda4 100644 --- a/server/accounts.go +++ b/server/accounts.go @@ -1717,14 +1717,15 @@ func (a *Account) checkForReverseEntries(reply string, checkInterest, recursed b var _rs [64]string rs := _rs[:0] for k := range a.imports.rrMap { - if subjectIsSubsetMatch(k, reply) { - rs = append(rs, k) - } + rs = append(rs, k) } a.mu.RUnlock() + // subjectIsSubsetMatch is heavy so make sure we do this without the lock. for _, r := range rs { - a._checkForReverseEntry(r, nil, checkInterest, recursed) + if subjectIsSubsetMatch(r, reply) { + a._checkForReverseEntry(r, nil, checkInterest, recursed) + } } }