From 032fcf658d10b981dbe47a9dafef40c687d043bf Mon Sep 17 00:00:00 2001 From: David Powell Date: Tue, 13 Jul 2010 23:43:20 +0100 Subject: [PATCH] read stdout and stderr in parallel (using futures) --- 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 72f0311..fa55367 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 -- 1.6.5.1.1367.gcd48