diff options
author | David Powell <djpowell@djpowell.net> | 2010-07-13 23:43:20 +0100 |
---|---|---|
committer | Stuart Halloway <stu@thinkrelevance.com> | 2010-07-27 17:03:56 -0400 |
commit | f314991069b6c34ca0575695b6b39d732eea47fb (patch) | |
tree | 36d09895bd3d66797e4cb90d51c6fecd6c9540a1 | |
parent | bbc859d0b7f2ed642d737f43236acdb159bb890f (diff) |
read stdout and stderr in parallel (using futures)
Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
-rw-r--r-- | src/clj/clojure/java/shell.clj | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/clj/clojure/java/shell.clj b/src/clj/clojure/java/shell.clj index 72f0311b..fa553671 100644 --- a/src/clj/clojure/java/shell.clj +++ b/src/clj/clojure/java/shell.clj @@ -124,10 +124,10 @@ collecting its stdout"} (.close (.getOutputStream proc))) (with-open [stdout (.getInputStream proc) stderr (.getErrorStream proc)] - (let [out (stream-to-enc stdout out-enc) - err (stream-to-string stderr) + (let [out (future (stream-to-enc stdout out-enc)) + err (future (stream-to-string stderr)) exit-code (.waitFor proc)] - {:exit exit-code :out out :err err})))) + {:exit exit-code :out @out :err @err})))) (comment |