mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-17 17:33:47 +00:00
Merge c15bf122e4 into 114738982e
This commit is contained in:
commit
aa53c6cca9
2 changed files with 28 additions and 20 deletions
|
|
@ -69,20 +69,24 @@ func NewPublicWhisperAPI(w *Whisper) *PublicWhisperAPI {
|
|||
// this loop deletes filter that have not been used within filterTimeout
|
||||
func (api *PublicWhisperAPI) run() {
|
||||
timeout := time.NewTicker(2 * time.Minute)
|
||||
defer timeout.Stop()
|
||||
for {
|
||||
<-timeout.C
|
||||
|
||||
api.mu.Lock()
|
||||
for id, lastUsed := range api.lastUsed {
|
||||
if time.Since(lastUsed).Seconds() >= filterTimeout {
|
||||
delete(api.lastUsed, id)
|
||||
if err := api.w.Unsubscribe(id); err != nil {
|
||||
log.Error("could not unsubscribe whisper filter", "error", err)
|
||||
select {
|
||||
case <-api.w.quit:
|
||||
return
|
||||
case <-timeout.C:
|
||||
api.mu.Lock()
|
||||
for id, lastUsed := range api.lastUsed {
|
||||
if time.Since(lastUsed).Seconds() >= filterTimeout {
|
||||
delete(api.lastUsed, id)
|
||||
if err := api.w.Unsubscribe(id); err != nil {
|
||||
log.Error("could not unsubscribe whisper filter", "error", err)
|
||||
}
|
||||
log.Debug("delete whisper filter (timeout)", "id", id)
|
||||
}
|
||||
log.Debug("delete whisper filter (timeout)", "id", id)
|
||||
}
|
||||
api.mu.Unlock()
|
||||
}
|
||||
api.mu.Unlock()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -70,20 +70,24 @@ func NewPublicWhisperAPI(w *Whisper) *PublicWhisperAPI {
|
|||
// this loop deletes filter that have not been used within filterTimeout
|
||||
func (api *PublicWhisperAPI) run() {
|
||||
timeout := time.NewTicker(2 * time.Minute)
|
||||
defer timeout.Stop()
|
||||
for {
|
||||
<-timeout.C
|
||||
|
||||
api.mu.Lock()
|
||||
for id, lastUsed := range api.lastUsed {
|
||||
if time.Since(lastUsed).Seconds() >= filterTimeout {
|
||||
delete(api.lastUsed, id)
|
||||
if err := api.w.Unsubscribe(id); err != nil {
|
||||
log.Error("could not unsubscribe whisper filter", "error", err)
|
||||
select {
|
||||
case <-api.w.quit:
|
||||
return
|
||||
case <-timeout.C:
|
||||
api.mu.Lock()
|
||||
for id, lastUsed := range api.lastUsed {
|
||||
if time.Since(lastUsed).Seconds() >= filterTimeout {
|
||||
delete(api.lastUsed, id)
|
||||
if err := api.w.Unsubscribe(id); err != nil {
|
||||
log.Error("could not unsubscribe whisper filter", "error", err)
|
||||
}
|
||||
log.Debug("delete whisper filter (timeout)", "id", id)
|
||||
}
|
||||
log.Debug("delete whisper filter (timeout)", "id", id)
|
||||
}
|
||||
api.mu.Unlock()
|
||||
}
|
||||
api.mu.Unlock()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue