Provided by: libmojo-ioloop-readwriteprocess-perl_0.32-1_all bug

NAME

       Mojo::IOLoop::ReadWriteProcess::Queue - Queue for Mojo::IOLoop::ReadWriteProcess objects.

SYNOPSIS

           use Mojo::IOLoop::ReadWriteProcess qw(queue process);
           my $n_proc = 20;
           my $fired;

           my $q = queue;

           $q->pool->maximum_processes(2); # Max 2 processes in parallel
           $q->queue->maximum_processes(10); # Max queue is 10

           $q->add( process sub { return 42 } ) for 1..7;

           # Subscribe to all "stop" events in the pool
           $q->once(stop => sub { $fired++; });

           # Consume the queue
           $q->consume();

           my $all = $q->done; # All processes, Mojo::Collection of Mojo::IOLoop::ReadWriteProcess

           # Set your own running pool
           $q->pool(parallel sub { return 42 } => 5);

           # Set your own queue
           $q->queue(parallel sub { return 42 } => 20);

           $q->consume();

METHODS

       Mojo::IOLoop::ReadWriteProcess::Queue inherits all methods from Mojo::Base and implements
       the following new ones.  Note: It proxies all the other methods of
       Mojo::IOLoop::ReadWriteProcess for the whole process group.

   add
           use Mojo::IOLoop::ReadWriteProcess qw(queue process);
           my $q = queue();
           $q->add(sub { print "Hello 2! " });
           $q->add(process sub { print "Hello 2! " });

       Add the process to the queue.

   consume
           use Mojo::IOLoop::ReadWriteProcess qw(queue);
           my $q = queue();
           $q->add(sub { print "Hello 2! " });
           $q->add(process sub { print "Hello 2! " });
           $q->consume; # executes and exhaust the processes

       Starts the processes and empties the queue.  Note: maximum_processes can be set both to
       the pool (number of process to be run in parallel), and for the queue (that gets exhausted
       during the "consume()" phase).

           $q->pool->maximum_processes(2); # Max 2 processes in parallel
           $q->queue->maximum_processes(10); # Max queue is 10

   exhausted
           use Mojo::IOLoop::ReadWriteProcess qw(queue);
           my $q = queue();
           $q->add(sub { print "Hello 2! " });
           $q->add(process sub { print "Hello 2! " });
           $q->consume; # executes and exhaust the processes
           $q->exhausted; # 1

       Returns 1 if the queue is exhausted.

ENVIRONMENT

       You can set the MOJO_PROCESS_MAXIMUM_PROCESSES environment variable to specify the the
       maximum number of processes allowed in the pool and the queue, that are
       Mojo::IOLoop::ReadWriteProcess::Pool instances.

           MOJO_PROCESS_MAXIMUM_PROCESSES=10000

LICENSE

       Copyright (C) Ettore Di Giacinto.

       This library is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.

AUTHOR

       Ettore Di Giacinto <edigiacinto@suse.com>