This likely fixes it
--
Paul Evans
=== modified file 'lib/IO/Async/Timer/Periodic.pm'
--- lib/IO/Async/Timer/Periodic.pm 2016-12-22 15:56:29 +0000
+++ lib/IO/Async/Timer/Periodic.pm 2018-02-13 16:16:50 +0000
@@ -185,7 +185,7 @@
}
elsif( $resched eq "skip" ) {
# How many ticks are needed?
- my $ticks = POSIX::ceil( $now - $self->{next_time} );
+ my $ticks = POSIX::ceil( ( $now - $self->{next_time} ) / $next_interval );
# $self->{last_ticks} = $ticks;
$self->{next_time} += $next_interval * $ticks;
}