diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/build-remote.pl.in | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/scripts/build-remote.pl.in b/scripts/build-remote.pl.in index a7023cb4dff3..33b943602315 100755 --- a/scripts/build-remote.pl.in +++ b/scripts/build-remote.pl.in @@ -23,10 +23,8 @@ use English '-no_match_vars'; my $loadIncreased = 0; -my $amWilling = shift @ARGV; -my $localSystem = shift @ARGV; -my $neededSystem = shift @ARGV; -my $drvPath = shift @ARGV; +my ($amWilling, $localSystem, $neededSystem, $drvPath, $mustRun) = @ARGV; +$mustRun = 0 unless defined $mustRun; sub sendReply { my $reply = shift; @@ -91,13 +89,15 @@ LOOP: foreach my $cur (@machines) { # We have a machine of the right type. Try to get a lock on # one of the machine's lock files. my $slot = 0; - while ($slot < $cur->{maxJobs}) { + while ($slot < $cur->{maxJobs} || $mustRun) { my $slotLock = "$currentLoad/" . $cur->{systemType} . "-" . $cur->{hostName} . "-$slot"; open SLOTLOCK, ">>$slotLock" or die; if (flock(SLOTLOCK, LOCK_EX | LOCK_NB)) { + print STDERR "warning: exceeding maximum load on " . $cur->{systemType} . "\n" + if $slot >= $cur->{maxJobs}; $machine = $cur; last LOOP; - } + } close SLOTLOCK; $slot++; } |