3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-10-03 01:48:38 +02:00

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

View File

@ -49,15 +49,19 @@ sub execute {
print "execute($cmdline)\n"; print "execute($cmdline)\n";
my @list = split / /, $cmdline;
my ($ret, $result); my ($ret, $result);
$SIG{CHLD} = 'IGNORE';
my $child = fork; my $child = fork;
if($child == 0) { if($child == 0) {
($ret, $result) = eval { ($ret, $result) = eval {
my $result = ''; 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"; }; 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); alarm($COMPILE_TIMEOUT);
@ -206,7 +210,7 @@ sub compiler_server {
print "Attempting compile...\n"; print "Attempting compile...\n";
alarm 0; 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) { if(not defined $ret) {
#print "parent continued\n"; #print "parent continued\n";