Your script using Thread::Queue:
package myQueue; use strictures 1; use autodie qw/:all/; use Devel::SimpleTrace; use threads qw/yield/; use Thread::Queue; sub new { use strict qw/refs/; use warnings; my $class = shift(); my (@params) = shift @_; return bless(@params, $class); } sub work { use strict qw/refs/; use warnings; my($pool) = shift @_; while ( my (@args) = shift @{ $$pool{'workQueue'}; } ) { print "ID=" . threads->self()->tid() . " : WorkQueue = " . @{ $$pool{'workQueue'}; }; my($code) = shift @args; &$code(@args); } } sub start { use strict qw/refs/; use warnings; my($pool) = shift(); return if $$pool{'jobs'}; push @{ $$pool{'workQueue'}; }, (undef) x $$pool{'maxThreads'}; @{ $$pool{'jobs'}; } = map( { threads->create( \&work, $pool ); } 1 .. $$pool{'maxThreads'} ); } sub enqueue { use strict qw/refs/; use warnings; my ( $pool, $code, @args ) = @_; $code = caller() . "::$code" unless ref $code or $code =~ /::/; push @{ $$pool{'workQueue'}; }, [ $code, @args ]; } my $maxThreads = 5; my @args = @_; my $pool = Thread::Queue->new(\$maxThreads); $pool->enqueue($args[0], $args[1]); my $left = $pool->pending(); print "There are $left items waiting in the queue\n";

In reply to Re: Implementing Custom ThreadPool by Khen1950fx
in thread Implementing Custom ThreadPool by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.