Fix virsh compiler server forking issues

This commit is contained in:
Pragmatic Software 2017-09-08 13:47:15 -07:00
parent dfa6c4a9e1
commit 2361436d34
1 changed files with 6 additions and 2 deletions

View File

@ -49,15 +49,19 @@ sub execute {
print "execute($cmdline)\n";
my @list = split / /, $cmdline;
my ($ret, $result);
$SIG{CHLD} = 'IGNORE';
my $child = fork;
if($child == 0) {
($ret, $result) = eval {
my $result = '';
my $pid = open(my $fh, '-|', "$cmdline 2>&1");
my $pid = open(my $fh, '-|', @list);
local $SIG{ALRM} = sub { print "Time out\n"; kill 9, $pid; print "sent KILL to $pid\n"; die "Timed-out: $result\n"; };
alarm($COMPILE_TIMEOUT);
@ -206,7 +210,7 @@ sub compiler_server {
print "Attempting compile...\n";
alarm 0;
my ($ret, $result) = execute("./compiler_vm_client.pl \Q$lang\E \Q$nick\E \Q$channel\E \Q$code\E");
my ($ret, $result) = execute("perl compiler_vm_client.pl $lang $nick $channel $code");
if(not defined $ret) {
#print "parent continued\n";