[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();