code: func (s *Serf) handleReap() {
  	for {
  		select {
  		case <-time.After(s.config.ReapInterval):
  			s.memberLock.Lock()
  			now := time.Now()
  			s.failedMembers = s.reap(s.failedMembers, now, s.config.ReconnectTimeout)
  			s.leftMembers = s.reap(s.leftMembers, now, s.config.TombstoneTimeout)
  			reapIntents(s.recentIntents, now, s.config.RecentIntentTimeout)
  			s.memberLock.Unlock()
  		case <-s.shutdownCh:
  			return
  		}
  	}
  }
docs: // handleReap periodically reaps the list of failed and left members, as well
  // as old buffered intents.