summary refs log tree commit diff
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2014-02-07 16:56:00 -0500
committerShea Levy <shea@shealevy.com>2014-02-08 00:13:33 -0500
commit5671188eb2822b7392a6affa5ebe2f1eb8f521a0 (patch)
tree4490a274361e36a7971caf3275bb76c60f72fe05
parent73874629ef59dc3b237a2c316179e722f971bb5e (diff)
downloadguix-5671188eb2822b7392a6affa5ebe2f1eb8f521a0.tar.gz
nix-store --serve: Flush out after every loop
Signed-off-by: Shea Levy <shea@shealevy.com>
-rw-r--r--src/libstore/store-api.cc3
-rw-r--r--src/libstore/store-api.hh2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc
index bd95590756..e4f1802409 100644
--- a/src/libstore/store-api.cc
+++ b/src/libstore/store-api.cc
@@ -259,7 +259,7 @@ string StoreAPI::makeValidityRegistration(const PathSet & paths,
 }
 
 
-void StoreAPI::serve(Source & in, Sink & out)
+void StoreAPI::serve(Source & in, BufferedSink & out)
 {
     string cmd = readString(in);
     if (cmd == "query") {
@@ -283,6 +283,7 @@ void StoreAPI::serve(Source & in, Sink & out)
                 writeString("", out);
             } else
                 throw Error(format("Unknown serve query `%1%'") % cmd);
+            out.flush();
         }
     } else if (cmd == "substitute")
         dumpPath(readString(in), out);
diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh
index edab6ea5a2..f32824a3bb 100644
--- a/src/libstore/store-api.hh
+++ b/src/libstore/store-api.hh
@@ -251,7 +251,7 @@ public:
 
     /* Serve the store for ssh substituters by taking commands
      * from in and printing results to out */
-    void serve(Source & in, Sink & out);
+    void serve(Source & in, BufferedSink & out);
 };