You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by mm...@apache.org on 2007/08/24 16:55:12 UTC
svn commit: r569406 - in /spamassassin/trunk/lib/Mail: SpamAssassin.pm
SpamAssassin/AsyncLoop.pm SpamAssassin/Dns.pm SpamAssassin/DnsResolver.pm
Author: mmartinec
Date: Fri Aug 24 07:55:11 2007
New Revision: 569406
URL: http://svn.apache.org/viewvc?rev=569406&view=rev
Log:
Taking advantage of the new jm's ScopedTimer, get rid of passing around waiting_time in AsyncLoop; select sleep time now shows up as 'poll_dns_idle' in general timing report
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin.pm
spamassassin/trunk/lib/Mail/SpamAssassin/AsyncLoop.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Dns.pm
spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin.pm?rev=569406&r1=569405&r2=569406&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin.pm Fri Aug 24 07:55:11 2007
@@ -1464,9 +1464,10 @@
my $total = $latest - $earliest;
my @str = ();
foreach my $name (@{$self->{timers_order}}) {
- my $elapsed = ($self->{timers}->{$name}->{elapsed}||0);
+ my $elapsed = $self->{timers}->{$name}->{elapsed} || 0;
my $pc = $total <= 0 || $elapsed >= $total ? 100 : ($elapsed/$total)*100;
- push @str, sprintf("%s: %.0f (%.1f%%)", $name, $elapsed*1000, $pc);
+ my $fmt = $elapsed >= 0.002 ? "%.0f" : "%.2f";
+ push @str, sprintf("%s: $fmt (%.1f%%)", $name, $elapsed*1000, $pc);
}
return sprintf("timing: total %.0f ms - %s", $total*1000, join(", ", @str));
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/AsyncLoop.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/AsyncLoop.pm?rev=569406&r1=569405&r2=569406&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/AsyncLoop.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/AsyncLoop.pm Fri Aug 24 07:55:11 2007
@@ -216,7 +216,6 @@
my ($self, $timeout, $allow_aborting_of_expired) = @_;
my $alldone = 0;
my $anydone = 0;
- my $waiting_time = 0;
my $allexpired = 1;
my %typecount;
@@ -234,8 +233,7 @@
# dbg("async: before select, timeout=%.1f", $timeout) if $timeout > 0;
$self->{last_poll_responses_time} = $now;
my $nfound;
- ($nfound, $waiting_time) =
- $self->{main}->{resolver}->poll_responses($timeout);
+ $nfound = $self->{main}->{resolver}->poll_responses($timeout);
dbg("async: select found %s responses ready", !$nfound ? 'no' : $nfound);
}
@@ -307,7 +305,7 @@
$alldone = 1; # abort remaining
};
- return wantarray ? ($alldone,$anydone,$waiting_time) : $alldone;
+ return wantarray ? ($alldone,$anydone) : $alldone;
}
# ---------------------------------------------------------------------------
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Dns.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Dns.pm?rev=569406&r1=569405&r2=569406&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Dns.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Dns.pm Fri Aug 24 07:55:11 2007
@@ -331,14 +331,12 @@
dbg("dns: harvest_until_rule_completes");
my $result = 0;
- my $total_waiting_time = 0;
for (my $first=1; ; $first=0) {
# complete_lookups() may call completed_callback(), which may
# call start_lookup() again (like in Plugin::URIDNSBL)
- my ($alldone,$anydone,$waiting_time) =
+ my ($alldone,$anydone) =
$self->{async}->complete_lookups($first ? 0 : 1.0, 1);
- $total_waiting_time += $waiting_time;
$result = 1 if $self->is_rule_complete($rule);
last if $result || $alldone;
@@ -346,8 +344,6 @@
dbg("dns: harvest_until_rule_completes - check_tick");
$self->{main}->call_plugins ("check_tick", { permsgstatus => $self });
}
- dbg("dns: timing: %.3f s sleeping in harvest_until_rule_completes",
- $total_waiting_time) if $total_waiting_time > 0;
return $result;
}
@@ -356,10 +352,8 @@
my ($self) = @_;
dbg("dns: harvest_dnsbl_queries");
- my $total_waiting_time = 0;
for (my $first=1; ; $first=0) {
-
# complete_lookups() may call completed_callback(), which may
# call start_lookup() again (like in Plugin::URIDNSBL)
@@ -367,9 +361,8 @@
# complete_lookups a chance to ripe any available results and
# abort overdue requests, without needlessly waiting for more
- my ($alldone,$anydone,$waiting_time) =
+ my ($alldone,$anydone) =
$self->{async}->complete_lookups($first ? 0 : 1.0, 1);
- $total_waiting_time += $waiting_time;
last if $alldone;
@@ -381,8 +374,6 @@
$self->{async}->abort_remaining_lookups();
$self->{async}->log_lookups_timing();
$self->mark_all_async_rules_complete();
- dbg("dns: timing: %.3f s sleeping in harvest_dnsbl_queries",
- $total_waiting_time) if $total_waiting_time > 0;
1;
}
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm?rev=569406&r1=569405&r2=569406&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm Fri Aug 24 07:55:11 2007
@@ -397,23 +397,23 @@
return if $self->{no_resolver};
return if !$self->{sock};
my $cnt = 0;
- my $waiting_time = 0;
my $rin = $self->{sock_as_vec};
my $rout;
for (;;) {
- my $now_before = time;
- my ($nfound, $timeleft) = select($rout=$rin, undef, undef, $timeout);
+ my ($nfound, $timeleft);
+ { my $timer; # collects timestamp when variable goes out of scope
+ if (!defined($timeout) || $timeout > 0)
+ { $timer = $self->{main}->time_method("poll_dns_idle") }
+ ($nfound, $timeleft) = select($rout=$rin, undef, undef, $timeout);
+ }
if (!defined $nfound || $nfound < 0) {
warn "dns: select failed: $!";
return;
}
my $now = time;
- if ($now > $now_before && (!defined($timeout) || $timeout > 0)) {
- $waiting_time += $now - $now_before;
- }
$timeout = 0; # next time around collect whatever is available, then exit
last if $nfound == 0;
@@ -442,7 +442,7 @@
}
}
- return wantarray ? ($cnt, $waiting_time) : $cnt;
+ return $cnt;
}
###########################################################################