aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2015-05-13 10:30:30 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2015-05-13 10:30:30 +0200
commit9233ac7c565bd370fee8681414461bda2558fa07 (patch)
treebbc6c6c043ab09ab825a30852a631fdd37bf9884 /src
parent71083f9e5ecfb94d110664499d87cea3e6c61b2e (diff)
parentdad754843aad61ea4e92e4c3111ca432de4511f5 (diff)
Merge pull request #537 from garbas/master
cygwin fixes
Diffstat (limited to 'src')
-rw-r--r--src/libstore/build.cc1
-rw-r--r--src/libstore/local-store.cc1
-rw-r--r--src/libutil/util.cc20
3 files changed, 12 insertions, 10 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 2d81f72c1..50c59c131 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -20,6 +20,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/utsname.h>
+#include <sys/select.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc
index 91149b30f..1dcd7228f 100644
--- a/src/libstore/local-store.cc
+++ b/src/libstore/local-store.cc
@@ -13,6 +13,7 @@
#include <sys/types.h>
#include <sys/stat.h>
+#include <sys/select.h>
#include <sys/time.h>
#include <unistd.h>
#include <utime.h>
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index ab0a3b303..5cda9a067 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -942,16 +942,16 @@ string runProgram(Path program, bool searchPath, const Strings & args,
checkInterrupt();
/* Create a pipe. */
- Pipe stdout, stdin;
- stdout.create();
- if (!input.empty()) stdin.create();
+ Pipe out, in;
+ out.create();
+ if (!input.empty()) in.create();
/* Fork. */
Pid pid = startProcess([&]() {
- if (dup2(stdout.writeSide, STDOUT_FILENO) == -1)
+ if (dup2(out.writeSide, STDOUT_FILENO) == -1)
throw SysError("dupping stdout");
if (!input.empty()) {
- if (dup2(stdin.readSide, STDIN_FILENO) == -1)
+ if (dup2(in.readSide, STDIN_FILENO) == -1)
throw SysError("dupping stdin");
}
@@ -967,16 +967,16 @@ string runProgram(Path program, bool searchPath, const Strings & args,
throw SysError(format("executing ‘%1%’") % program);
});
- stdout.writeSide.close();
+ out.writeSide.close();
/* FIXME: This can deadlock if the input is too long. */
if (!input.empty()) {
- stdin.readSide.close();
- writeFull(stdin.writeSide, input);
- stdin.writeSide.close();
+ in.readSide.close();
+ writeFull(in.writeSide, input);
+ in.writeSide.close();
}
- string result = drainFD(stdout.readSide);
+ string result = drainFD(out.readSide);
/* Wait for the child to finish. */
int status = pid.wait(true);