After many failed attempts to solve it myself, I have stumbled on the desired solution. For the sake of completeness, here's what I had to do is replace the
# simmulate a handful of iterations of sitting in what otherwise would
+ be an infinite loop
for my $i (0 .. 10)
{
...
}
with the following
$loop->recurring(1 => sub {
$self->app->log->debug("Doing periodic useful thing");
});
Of course, the new code is truly a while(1) loop, constantly firing the repeating event, rather than the original example which was only supposed to fire 11 times. However, I actually wanted this behavior anyways.