const retryPeriod … const maxRetryPeriod … type retryableError … func (e *retryableError) Error() string { … } func (s *sourceFile) startWatch() { … } func (s *sourceFile) doWatch() error { … } func (s *sourceFile) produceWatchEvent(e *fsnotify.Event) error { … } func (s *sourceFile) consumeWatchEvent(e *watchEvent) error { … }