Skip to content

Commit cab0aab

Browse files
committed
Win32::Process::Create does not understand CWD.
1 parent e603bda commit cab0aab

File tree

1 file changed

+11
-5
lines changed
  • cogkit/modules/provider-coaster/resources

1 file changed

+11
-5
lines changed

cogkit/modules/provider-coaster/resources/worker.pl

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3210,9 +3210,15 @@ sub runjob {
32103210
$ENV{"SWIFT_WORKER_PID"} = $WORKERPID;
32113211
unshift @$JOBARGS, $executable;
32123212
wlog DEBUG, "Command: @$JOBARGS\n";
3213+
3214+
my $dir;
32133215
if (defined $$JOB{"directory"}) {
3214-
wlog DEBUG, "chdir: $$JOB{directory}\n";
3215-
chdir $$JOB{"directory"};
3216+
$dir = $$JOB{"directory"};
3217+
wlog DEBUG, "chdir: $dir\n";
3218+
chdir $dir;
3219+
}
3220+
else {
3221+
$dir = ".";
32163222
}
32173223
if (defined $sout) {
32183224
wlog DEBUG, "STDOUT: $sout\n";
@@ -3234,12 +3240,12 @@ sub runjob {
32343240
$JOBARGS = moveSwiftwrapArgsToFile(".", $JOBARGS);
32353241
}
32363242

3237-
my $launcherr = execPortable($executable, $JOBARGS);
3243+
my $launcherr = execPortable($executable, $JOBARGS, $dir);
32383244
exitSubprocess($WR, "Could not execute $executable: $launcherr");
32393245
}
32403246

32413247
sub execPortable {
3242-
my ($executable, $args) = @_;
3248+
my ($executable, $args, $dir) = @_;
32433249

32443250
if ($WINDOWS) {
32453251

@@ -3256,7 +3262,7 @@ sub execPortable {
32563262
wlog DEBUG, "Windows process canceled before it started\n";
32573263
exit(-1);
32583264
}
3259-
if (!Win32::Process::Create($process, $fullpath, $cmdline, 0, NORMAL_PRIORITY_CLASS(), ".")) {
3265+
if (!Win32::Process::Create($process, $fullpath, $cmdline, 0, NORMAL_PRIORITY_CLASS(), $dir)) {
32603266
my $err = Win32::FormatMessage(Win32::GetLastError());
32613267
wlog DEBUG, "Failed to create process: $err\n";
32623268
return $err;

0 commit comments

Comments
 (0)