Skip to content

Instantly share code, notes, and snippets.

@renatocron
Created October 31, 2019 13:48
Show Gist options
  • Save renatocron/3ec017031aeb8d0d08fa1912f15a01e9 to your computer and use it in GitHub Desktop.
Save renatocron/3ec017031aeb8d0d08fa1912f15a01e9 to your computer and use it in GitHub Desktop.
#!/usr/bin/env perl
use common::sense;
use DDP;
use Mojo::Promise;
use Mojo::IOLoop::Subprocess;
my $subprocess = Mojo::IOLoop::Subprocess->new;
$subprocess->run(
sub {
my $subprocess = shift;
use DDP;
p [$subprocess->ioloop, $subprocess->ioloop->is_running];
my @promises = map {
my $rand = int(10 * rand());
my $p = Mojo::Promise->new;
$p->then(
sub {
print STDERR "Sleeping for %d seconds\n\n\n";
sleep 20;
}
)->catch(sub { use DDP; p \@_; });
$p;
} (1 .. 10);
Mojo::Promise->all(@promises)->wait();
return 'a';
},
sub {
use DDP;
p \@_;
}
);
$subprocess->ioloop->start unless $subprocess->ioloop->is_running;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment