@ISA = qw(DXChannel);
+require 5.10.1;
+
use POSIX qw(:math_h);
use DXUtil;
use DXChannel;
my $dxchan;
foreach $dxchan (@dxchan) {
- next unless $dxchan->{sort} eq 'U';
+ next unless $dxchan->is_user;
# send a outstanding message prompt if required
if ($t >= $dxchan->lastmsgpoll + $msgpolltime) {
my $s = shift; # the line to be rebroadcast
foreach my $dxchan (DXChannel::get_all()) {
- next unless $dxchan->{sort} eq 'U'; # only interested in user channels
+ next unless $dxchan->is_user; # only interested in user channels
next if grep $dxchan == $_, @_;
$dxchan->send($s); # send it
}
# gimme all the users
sub get_all
{
- return grep {$_->{sort} eq 'U'} DXChannel::get_all();
+ return grep {$_->is_user} DXChannel::get_all();
}
# run a script for this user
{
return unless isdbg('chan');
my $call = shift;
- my $a = shift;
- my $b = shift || [gettimeofday];
- my $prefix = shift;
+ my $line = shift;
+ my $ta = shift;
+ my $tb = shift || [gettimeofday];
- my $secs = $b->[0] - $a->[0];
- my $msecs = int(($b->[1] - $a->[1]) / 1000);
+ my $a = int($ta->[0] * 1000) + int($ta->[1] / 1000);
+ my $b = int($tb->[0] * 1000) + int($tb->[1] / 1000);
+ my $msecs = $b - $a;
- my $s = "forkcall stats: $call ";
- $s .= "$prefix " if $prefix;
- $s .= "${secs}S" if $secs;
+ my $s = "forkcall stats: $call '$line' ";
$s .= "${msecs}mS";
dbg($s);
}
# IT DOES NOT START UP SOME NEW PROGRAM AND RELIES ON THE FACT THAT IT IS RUNNING DXSPIDER
# THE CURRENT CONTEXT!!
#
-# call: $self->spawn_cmd(\<function>, [cb => sub{...}], [prefix => "cmd> "], [progress => 0|1], [args => [...]]);
+# call: $self->spawn_cmd($original_cmd_line, \<function>, [cb => sub{...}], [prefix => "cmd> "], [progress => 0|1], [args => [...]]);
sub spawn_cmd
{
my $self = shift;
+ my $line = shift;
my $cmdref = shift;
my $call = $self->{call};
my %args = @_;
$dxchan->send(@res);
}
}
- _diffms($call, $t0, [gettimeofday], $prefix);
+ _diffms($call, $line, $t0);
});
return @out;