                                (async/<! out-chan)
                                (.inc ^Counter out-cntr)
                                (recur))))
+          direct-proc-fn (create-direct-proc-fn scenario)
           async-pipeline (if
                            (and
                              (.contains scenario "-async-pipeline")

    (println "proc-fns:" proc-fns)
    proc-fns))

(defn -main [& args]
  (println "Starting dsbdp main...")
  (let [{:keys [options arguments errors summary]} (parse-opts args cli-options)]

                       @proc-fns
                       (fn [_ _]
                         (.inc out-cntr))))
          in-chan (if (.contains scenario "async-pipeline")
                    (async/chan queue-size))
          out-chan (if (.contains scenario "async-pipeline")
                     (async/chan queue-size))
          in-fn (prepare-in-fn options scenario in-data in-cntr out-cntr in-chan pipeline queue-size)
          in-loop (ProcessingLoop.
                    "DataGenerationLoop"
                    in-fn)
          async-out-count-loop (if
                                 (and
                                   (.endsWith scenario "-async-pipeline")
