forked from lix-project/lix
Build hook: Pass the timeout to the remote builder
Note that this will only work if the client has a very recent Nix
version (post 15e1b2c223
), otherwise the
--option flag will just be ignored.
Fixes #50.
This commit is contained in:
parent
4ba47205c6
commit
479e9172b3
|
@ -46,8 +46,7 @@ sub all { $_ || return 0 for @_; 1 }
|
||||||
# Initialisation.
|
# Initialisation.
|
||||||
my $loadIncreased = 0;
|
my $loadIncreased = 0;
|
||||||
|
|
||||||
my ($localSystem, $maxSilentTime, $printBuildTrace) = @ARGV;
|
my ($localSystem, $maxSilentTime, $printBuildTrace, $buildTimeout) = @ARGV;
|
||||||
$maxSilentTime = 0 unless defined $maxSilentTime;
|
|
||||||
|
|
||||||
my $currentLoad = $ENV{"NIX_CURRENT_LOAD"};
|
my $currentLoad = $ENV{"NIX_CURRENT_LOAD"};
|
||||||
my $conf = $ENV{"NIX_REMOTE_SYSTEMS"};
|
my $conf = $ENV{"NIX_REMOTE_SYSTEMS"};
|
||||||
|
@ -258,7 +257,9 @@ close UPLOADLOCK;
|
||||||
|
|
||||||
|
|
||||||
# Perform the build.
|
# Perform the build.
|
||||||
my $buildFlags = "--max-silent-time $maxSilentTime --fallback --add-root $rootsDir/\$PPID.out --option verbosity 0";
|
my $buildFlags =
|
||||||
|
"--max-silent-time $maxSilentTime --option build-timeout $buildTimeout "
|
||||||
|
. "--fallback --add-root $rootsDir/\$PPID.out --option verbosity 0";
|
||||||
|
|
||||||
# We let the remote side kill its process group when the connection is
|
# We let the remote side kill its process group when the connection is
|
||||||
# closed unexpectedly. This is necessary to ensure that no processes
|
# closed unexpectedly. This is necessary to ensure that no processes
|
||||||
|
|
|
@ -690,10 +690,10 @@ HookInstance::HookInstance()
|
||||||
if (dup2(builderOut.writeSide, 4) == -1)
|
if (dup2(builderOut.writeSide, 4) == -1)
|
||||||
throw SysError("dupping builder's stdout/stderr");
|
throw SysError("dupping builder's stdout/stderr");
|
||||||
|
|
||||||
/* XXX: Pass `buildTimeout' to the hook? */
|
|
||||||
execl(buildHook.c_str(), buildHook.c_str(), settings.thisSystem.c_str(),
|
execl(buildHook.c_str(), buildHook.c_str(), settings.thisSystem.c_str(),
|
||||||
(format("%1%") % settings.maxSilentTime).str().c_str(),
|
(format("%1%") % settings.maxSilentTime).str().c_str(),
|
||||||
(format("%1%") % settings.printBuildTrace).str().c_str(),
|
(format("%1%") % settings.printBuildTrace).str().c_str(),
|
||||||
|
(format("%1%") % settings.buildTimeout).str().c_str(),
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
throw SysError(format("executing `%1%'") % buildHook);
|
throw SysError(format("executing `%1%'") % buildHook);
|
||||||
|
|
Loading…
Reference in a new issue