version 1.17, 2006/03/09 21:38:26
|
version 1.18, 2006/05/10 01:08:01
|
Line 52 my $pidfile; #
|
Line 52 my $pidfile; #
|
my $port; # path to UNIX socket file |
my $port; # path to UNIX socket file |
my %perlvar; # configuration file info |
my %perlvar; # configuration file info |
my $lastlog; # last string that was logged |
my $lastlog; # last string that was logged |
|
|
use vars qw($PREFORK $MAX_CLIENTS_PER_CHILD %children $children $status |
use vars qw($PREFORK $MAX_CLIENTS_PER_CHILD %children $children $status |
$pidfile $port %perlvar $lastlog); |
$pidfile $port %perlvar $lastlog); |
|
|
Line 257 sub make_new_child {
|
Line 258 sub make_new_child {
|
&getmaximaoutput($command); |
&getmaximaoutput($command); |
while (my $cmd=<$client>) { |
while (my $cmd=<$client>) { |
&status('Processing command'); |
&status('Processing command'); |
|
&sync($command); |
print $command &unescape($cmd); |
print $command &unescape($cmd); |
my $reply=&getmaximaoutput($command); |
my $reply=&getmaximaoutput($command); |
print $client &escape($reply)."\n"; |
print $client &escape($reply)."\n"; |
Line 281 sub make_new_child {
|
Line 283 sub make_new_child {
|
} |
} |
} |
} |
|
|
|
{ |
|
my $counter; |
|
sub sync { |
|
my ($command)=@_; |
|
$counter++; |
|
my $expect=$counter.time; |
|
print $command "$expect;\n"; |
|
while (1) { |
|
my $output=&getmaximaoutput($command); |
|
if (($output=~/\Q$expect\E/) || ($output=~/^Error\:/)) { |
|
return; |
|
} |
|
} |
|
} |
|
} |
|
|
sub getmaximaoutput { |
sub getmaximaoutput { |
my ($command)=@_; |
my ($command)=@_; |
my (undef,$error,undef,$output)=$command->expect(20, -re => '\(\%i\d+\)'); |
my (undef,$error,undef,$output)=$command->expect(20, -re => '\(\%i\d+\)'); |