Skip to content

Commit 0a92d93

Browse files
committed
inject is now async, returns future
1 parent cfb53ac commit 0a92d93

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

src/main/clojure/clojure/core/async/flow.clj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,9 @@
133133
[g pid cmd-id more-kvs] (g/command-proc g pid cmd-id more-kvs))
134134

135135
(defn inject
136-
"synchronously puts the messages on the channel corresponding to the
137-
input or output of the process"
136+
"asynchronously puts the messages on the channel corresponding to the
137+
input or output of the process, returning a future that will
138+
complete when done."
138139
[g [pid io-id :as coord] msgs] (g/inject g coord msgs))
139140

140141
(defn process

src/main/clojure/clojure/core/async/flow/impl.clj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
(let [{:keys [control]} (running-chans)]
8080
(async/>!! control #::flow{:command command :to to})))]
8181
(reify
82-
clojure.core.async.flow.impl.graph.Graph
82+
clojure.core.async.flow.impl.graph.Graph
8383
(start [_]
8484
(.lock lock)
8585
(try
@@ -170,8 +170,9 @@
170170
(inject [_ coord msgs]
171171
(let [{:keys [resolver]} (running-chans)
172172
chan (spi/get-write-chan resolver coord)]
173-
(doseq [m msgs]
174-
(async/>!! chan m)))))))
173+
((futurize #(doseq [m msgs]
174+
(async/>!! chan m))
175+
{:exec :io})))))))
175176

176177
(defn handle-command
177178
[pid pong status cmd]

0 commit comments

Comments
 (0)