=begin pod :kind("Type") :subkind("class") :category("domain-specific")

=TITLE class ThreadPoolScheduler

=SUBTITLE Scheduler that distributes work among a pool of threads

=begin code :skip-test<compile time error>
class ThreadPoolScheduler does Scheduler {}
=end code

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

# vim: expandtab softtabstop=4 shiftwidth=4 ft=perl6
