         notify-chan (async/chan (async/dropping-buffer 1))
         watch-id    (keyword (gensym))
         v-filter    (filter #(or (should-signal? % s-thresh) (should-collect? % c-thresh)))
-        ->result    (fn [type sigs colls t0]
-                      (warn :send-result type)
-                      (go (>! res-chan (execution-result type sigs colls t0))))]
+        ->result    (fn [type sigs colls t0] (go (>! res-chan (execution-result type sigs colls t0))))]
     (reify
       #?@(:clj
            [clojure.lang.IDeref

                    (when (<! notify-chan)
                      (reset! t0 (now))
                      (reset! active (sequence v-filter (vertices g)))
                      (reset! enable #{})
                      ;;(warn :rerun (count @active))
                      (recur 0 0))))))
          res-chan)))))

        [_]
        (let [t0     (atom (now))
              active (atom (sequence v-filter (vertices g)))
              queue (atom #{})]
          (add-context-watches g watch-id queue)
          (go-loop [colls 0, sigs 0]
            ;;(warn :active-count (count @active))
            (if (seq @active)
              (if (<= (+ colls sigs) max-ops)
                (let [grp-size            (max 512 (long (/ (count @active) threads)))
                      [act' sigs' colls'] (scheduler grp-size @active)]
                  ;;(warn :auto (count @queue))
                  (reset! active (into (into #{} v-filter act') @queue))
                  (reset! queue #{})
                  (recur (long (+ colls colls')) (long (+ sigs sigs'))))
                (do (stop! _)
                    (->result :max-ops-reached sigs colls @t0)))
