func()

in docker/watcher.go [437:470]


func (w *watcher) runCleanup() {
	// Check entries for timeout
	var toDelete []string
	timeout := w.clock.Now().Add(-w.cleanupTimeout)
	w.RLock()
	for key, lastSeen := range w.deleted {
		if lastSeen.Before(timeout) {
			w.log.Debugf("Removing container %s after cool down timeout", key)
			toDelete = append(toDelete, key)
		}
	}
	w.RUnlock()

	// Delete timed out entries:
	for _, key := range toDelete {
		container := w.Container(key)
		if container != nil {
			w.bus.Publish(bus.Event{
				"delete":    true,
				"container": container,
			})
		}
	}

	w.Lock()
	for _, key := range toDelete {
		delete(w.deleted, key)
		delete(w.containers, key)
		if w.shortID {
			delete(w.containers, key[:shortIDLen])
		}
	}
	w.Unlock()
}