[LON-CAPA-cvs] cvs: modules /gerd/maxima lonmaxima
www
lon-capa-cvs@mail.lon-capa.org
Sat, 04 Mar 2006 15:47:30 -0000
www Sat Mar 4 10:47:30 2006 EDT
Modified files:
/modules/gerd/maxima lonmaxima
Log:
PID of Maxima process needs to be global, so timeout handler has it when
killing the process
Index: modules/gerd/maxima/lonmaxima
diff -u modules/gerd/maxima/lonmaxima:1.10 modules/gerd/maxima/lonmaxima:1.11
--- modules/gerd/maxima/lonmaxima:1.10 Sat Mar 4 01:56:10 2006
+++ modules/gerd/maxima/lonmaxima Sat Mar 4 10:47:26 2006
@@ -3,7 +3,7 @@
# The LearningOnline Network with CAPA
# Connect to MAXIMA CAS
#
-# $Id: lonmaxima,v 1.10 2006/03/04 06:56:10 albertel Exp $
+# $Id: lonmaxima,v 1.11 2006/03/04 15:47:26 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -52,8 +52,9 @@
my $port; # path to UNIX socket file
my %perlvar; # configuration file info
my $lastlog; # last string that was logged
+my $maximapid; # PID of Maxima process
use vars qw($PREFORK $MAX_CLIENTS_PER_CHILD %children $children $status
- $pidfile $port %perlvar $lastlog);
+ $pidfile $port %perlvar $lastlog $maximapid);
sub maximareply {
my ($cmd) = @_;
@@ -64,7 +65,7 @@
unless ($cmd=~/\;\n$/) { $cmd.=";\n"; }
my ($cmd_in, $cmd_out, $cmd_err);
- my $maximapid = open3($cmd_in, $cmd_out, $cmd_err, 'maxima');
+ $maximapid = open3($cmd_in, $cmd_out, $cmd_err, 'maxima');
$children{$maximapid} = 1;
print $cmd_in $cmd;
@@ -72,7 +73,7 @@
&status("Command sent");
- $SIG{ALRM} = sub { kill 9 => $maximapid; };
+ $SIG{ALRM} = sub { kill(9 => $maximapid); };
alarm(5);
my $selector = IO::Select->new();