# File lib/directory_watcher/rev_scanner.rb, line 57
  def stop
    return unless running?

    @timer.detach
    @timer = nil

    @watchers.each_value {|w| w.detach}
    @watchers.clear

    notify

    @thread._rev_loop.stop rescue nil
    @thread.kill    # for some reason the rev loop is not returning after stopping
    @thread = nil
  end