NAME
Mojo::IOLoop::Delay - IOLoop delay
SYNOPSIS
use Mojo::IOLoop::Delay;
# Synchronize multiple events
my $delay = Mojo::IOLoop::Delay->new;
$delay->on(finish => sub { say 'BOOM!' });
for my $i (1 .. 10) {
  $delay->begin;
  Mojo::IOLoop->timer($i => sub {
    say 10 - $i;
    $delay->end;
  });
}
# Wait for events
$delay->wait;DESCRIPTION
Mojo::IOLoop::Delay synchronizes events for Mojo::IOLoop. Note that this module is EXPERIMENTAL and might change without warning!
EVENTS
Mojo::IOLoop::Delay can emit the following events.
finish
$delay->on(finish => sub {
  my $delay = shift;
});Emitted once the active event counter reaches zero.
ATTRIBUTES
Mojo::IOLoop::Delay implements the following attributes.
ioloop
my $ioloop = $delay->ioloop;
$delay     = $delay->ioloop(Mojo::IOLoop->new);Loop object to control, defaults to the global Mojo::IOLoop singleton.
METHODS
Mojo::IOLoop::Delay inherits all methods from Mojo::EventEmitter and implements the following new ones.
begin
my $cb = $delay->begin;Increment active event counter, the returned callback can be used instead of end.
my $delay = Mojo::IOLoop->delay;
Mojo::IOLoop->resolver->lookup('mojolicio.us' => $delay->begin);
my $address = $delay->wait;end
$delay->end;
$delay->end(@args);Decrement active event counter.
wait
my @args = $delay->wait;Start ioloop and register finish event that stops it again once the active event counter reaches zero.