code: func (whisper *Whisper) expire() {
  	whisper.poolMu.Lock()
  	defer whisper.poolMu.Unlock()
  
  	whisper.statsMu.Lock()
  	defer whisper.statsMu.Unlock()
  	whisper.stats.reset()
  	now := uint32(time.Now().Unix())
  	for expiry, hashSet := range whisper.expirations {
  		if expiry < now {
  			// Dump all expired messages and remove timestamp
  			hashSet.Each(func(v interface{}) bool {
  				sz := whisper.envelopes[v.(common.Hash)].size()
  				delete(whisper.envelopes, v.(common.Hash))
  				whisper.stats.messagesCleared++
  				whisper.stats.memoryCleared += sz
  				whisper.stats.memoryUsed -= sz
  				return false
  			})
  			whisper.expirations[expiry].Clear()
  			delete(whisper.expirations, expiry)
  		}
  	}
  }
docs: // expire iterates over all the expiration timestamps, removing all stale
  // messages from the pools.