Clear all request internal cache when node is stopped
This commit is contained in:
parent
f47187b00b
commit
ccce8b9a80
|
@ -22,11 +22,11 @@ type requestMeta struct {
|
||||||
|
|
||||||
// NewRequestsRegistry creates instance of the RequestsRegistry and returns pointer to it.
|
// NewRequestsRegistry creates instance of the RequestsRegistry and returns pointer to it.
|
||||||
func NewRequestsRegistry(delay time.Duration) *RequestsRegistry {
|
func NewRequestsRegistry(delay time.Duration) *RequestsRegistry {
|
||||||
return &RequestsRegistry{
|
r := &RequestsRegistry{
|
||||||
delay: delay,
|
delay: delay,
|
||||||
uidToTopics: map[common.Hash]common.Hash{},
|
|
||||||
byTopicsHash: map[common.Hash]requestMeta{},
|
|
||||||
}
|
}
|
||||||
|
r.Clear()
|
||||||
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
// RequestsRegistry keeps map for all requests with timestamp when they were made.
|
// RequestsRegistry keeps map for all requests with timestamp when they were made.
|
||||||
|
@ -73,6 +73,14 @@ func (r *RequestsRegistry) Unregister(uid common.Hash) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Clear recreates all structures used for caching requests.
|
||||||
|
func (r *RequestsRegistry) Clear() {
|
||||||
|
r.mu.Lock()
|
||||||
|
defer r.mu.Unlock()
|
||||||
|
r.uidToTopics = map[common.Hash]common.Hash{}
|
||||||
|
r.byTopicsHash = map[common.Hash]requestMeta{}
|
||||||
|
}
|
||||||
|
|
||||||
// topicsToHash returns non-cryptographic hash of the topics.
|
// topicsToHash returns non-cryptographic hash of the topics.
|
||||||
func topicsToHash(topics []whisper.TopicType) common.Hash {
|
func topicsToHash(topics []whisper.TopicType) common.Hash {
|
||||||
hash := fnv.New32()
|
hash := fnv.New32()
|
||||||
|
|
|
@ -302,6 +302,7 @@ func (s *Service) Stop() error {
|
||||||
if s.config.EnableLastUsedMonitor {
|
if s.config.EnableLastUsedMonitor {
|
||||||
s.lastUsedMonitor.Stop()
|
s.lastUsedMonitor.Stop()
|
||||||
}
|
}
|
||||||
|
s.requestsRegistry.Clear()
|
||||||
s.envelopesMonitor.Stop()
|
s.envelopesMonitor.Stop()
|
||||||
s.mailMonitor.Stop()
|
s.mailMonitor.Stop()
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in New Issue