* [PATCH 02/11] ds: add_timer: rename from AddTimer, remove a parameter
2020-01-12 21:17 6% [PATCH 00/11] ds: various cleanups and fixes Eric Wong
@ 2020-01-12 21:17 7% ` Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2020-01-12 21:17 UTC (permalink / raw)
To: meta
The class parameter is pointless, especially for an internal
sub which only has one external caller in a test. Add a sub
prototype while we're at it to get some compile time checking.
---
lib/PublicInbox/DS.pm | 13 +++++++------
t/ds-leak.t | 2 +-
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/lib/PublicInbox/DS.pm b/lib/PublicInbox/DS.pm
index 00b5dca7..217799bb 100644
--- a/lib/PublicInbox/DS.pm
+++ b/lib/PublicInbox/DS.pm
@@ -101,16 +101,17 @@ sub SetLoopTimeout {
return $LoopTimeout = $_[1] + 0;
}
-=head2 C<< CLASS->AddTimer( $seconds, $coderef ) >>
+=head2 C<< PublicInbox::DS::add_timer( $seconds, $coderef ) >>
Add a timer to occur $seconds from now. $seconds may be fractional, but timers
are not guaranteed to fire at the exact time you ask for.
-Returns a timer object which you can call C<< $timer->cancel >> on if you need to.
+Returns a timer object which you can call C<< $timer->cancel >> on if you need
+to.
=cut
-sub AddTimer {
- my ($class, $secs, $coderef) = @_;
+sub add_timer ($$) {
+ my ($secs, $coderef) = @_;
my $fire_time = now() + $secs;
@@ -247,7 +248,7 @@ sub reap_pids {
}
if (@$WaitPids) {
# we may not be donea, and we may miss our
- $reap_timer = AddTimer(undef, 1, \&reap_pids);
+ $reap_timer = add_timer(1, \&reap_pids);
}
}
@@ -653,7 +654,7 @@ sub _run_later () {
sub later ($) {
my ($cb) = @_;
push @$later_queue, $cb;
- $later_timer //= AddTimer(undef, 60, \&_run_later);
+ $later_timer //= add_timer(60, \&_run_later);
}
sub expire_old () {
diff --git a/t/ds-leak.t b/t/ds-leak.t
index 34ffc125..a4a56e0d 100644
--- a/t/ds-leak.t
+++ b/t/ds-leak.t
@@ -20,7 +20,7 @@ if ('close-on-exec for epoll and kqueue') {
my ($r, $w);
pipe($r, $w) or die "pipe: $!";
- PublicInbox::DS->AddTimer(0, sub { $pid = spawn([qw(sleep 10)]) });
+ PublicInbox::DS::add_timer(0, sub { $pid = spawn([qw(sleep 10)]) });
PublicInbox::DS->EventLoop;
ok($pid, 'subprocess spawned');
^ permalink raw reply related [relevance 7%]
* [PATCH 00/11] ds: various cleanups and fixes
@ 2020-01-12 21:17 6% Eric Wong
2020-01-12 21:17 7% ` [PATCH 02/11] ds: add_timer: rename from AddTimer, remove a parameter Eric Wong
0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2020-01-12 21:17 UTC (permalink / raw)
To: meta
Start taking advantage of autovivification to simplify our code
and reduce allocations. Also, I believe it's my first time
using the return value of "push".
Eric Wong (11):
ds: new: avoid redundant check, make clobbering fatal
ds: add_timer: rename from AddTimer, remove a parameter
ds: add an in_loop() function for Inbox.pm use
ds: remove Timer->cancel and Timer class+bless
ds: PostEventLoop: guard ToClose against DESTROY side-effects
ds|http|nntp: simplify {wbuf} population
ds: rely on autovivification for nextq
ds: rely on autovivication for waitpid bits
ds: rely on autovivification for $later_queue
ds: flatten $EXPMAP, delete entries on close
sigfd: simplify loop and improve documentation
lib/PublicInbox/DS.pm | 200 +++++++++++++++++----------------------
lib/PublicInbox/HTTP.pm | 6 +-
lib/PublicInbox/Inbox.pm | 2 +-
lib/PublicInbox/NNTP.pm | 11 +--
lib/PublicInbox/Sigfd.pm | 13 +--
t/ds-leak.t | 2 +-
6 files changed, 105 insertions(+), 129 deletions(-)
^ permalink raw reply [relevance 6%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2020-01-12 21:17 6% [PATCH 00/11] ds: various cleanups and fixes Eric Wong
2020-01-12 21:17 7% ` [PATCH 02/11] ds: add_timer: rename from AddTimer, remove a parameter Eric Wong
Code repositories for project(s) associated with this public inbox
https://80x24.org/public-inbox.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).