don't fork for upgrade files

This commit is contained in:
Graham Knop 2010-03-19 10:38:46 -05:00
parent 11d4cd0ef0
commit fb6a78d39d

View file

@ -4,6 +4,7 @@ use strict;
use warnings; use warnings;
use WebGUI::Upgrade; use WebGUI::Upgrade;
use POSIX ();
sub _runCode { sub _runCode {
eval sprintf <<'END_CODE', $_[0], $_[1]; eval sprintf <<'END_CODE', $_[0], $_[1];
@ -30,28 +31,22 @@ sub run {
my $class = shift; my $class = shift;
($configFile, $version, $file, $quiet) = @_; ($configFile, $version, $file, $quiet) = @_;
($session, $config, $dbh, $versionTag) = undef; ($session, $config, $dbh, $versionTag) = undef;
my $pid = fork; open my $fh, '<', $file;
if (! $pid) { my $contents = do { local $/; <$fh> };
open my $fh, '<', $file; close $fh;
my $contents = do { local $/; <$fh> }; _runCode($file, $contents);
close $fh; my $error = $@;
_runCode($file, $contents); if ($session) {
if ($session) { require WebGUI::VersionTag;
require WebGUI::VersionTag; if (WebGUI::VersionTag->getWorking($session, 'nocreate')) {
if (WebGUI::VersionTag->getWorking($session, 'nocreate')) { version_tag()->commit;
version_tag()->commit;
}
$session->var->end;
$session->close;
} }
die $@ $session->var->end;
if $@; $session->close;
exit;
}
waitpid $pid, 0;
if ($?) {
die "Error processing $file\n";
} }
die $error
if $error;
return 1;
} }
sub report { sub report {