   (.startsWith child (str dir java.io.File/separator)))
 
 ;;; we are going to have to throttle this
+;; so that we can catch more than one file at a time
 
 (defn take-until-timeout [in]
   (let [time-out (timeout 50)]

        individual-file-map   (single-files files)
        canonical-source-dirs (set (map #(.getCanonicalPath %) dirs))

        source-paths (concat (map str dirs)
                             (distinct (map #(.getParent %) files)))
        
        valid-file?   (fn [file]
                        (and file

    (go-loop []
      (when-let [v (<! throttle-chan)]
        (let [files (<! (take-until-timeout throttle-chan))]
          (when-let [result-files (not-empty (filter valid-file? (map :file (cons v files))))]
            (callback result-files)))
        (recur)))
    
    {:watcher watcher
     :throttle-chan throttle-chan}))

