=begin pod

=TITLE class ThreadPoolScheduler

=SUBTITLE Scheduler that distributes work among a pool of threads

    class ThreadPoolScheduler does Scheduler { ... }

The C<ThreadPoolScheduler> has a range of number of threads that it maintains,
and it distributes work among those threads. When the upper limit of threads
isn't reached yet, and there is work pending, it spawns new threads to handle
the work.

=head1 Methods

=head2 new

    method new(Int :$initial_threads = 0, Int :$max_threads=16)

Creates a new C<ThreadPoolScheduler> object with the given range of threads to
maintain.

=end pod
