Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: Boolean Thread::Semaphore ?

by Corion (Pope)
on Feb 08, 2012 at 12:04 UTC ( #952468=note: print w/replies, xml ) Need Help??

in reply to Boolean Thread::Semaphore ?

Why not use a Thread::Queue to distribute the work to your worker threads? The workers will block when the queue is empty and get woken up when there is work to be done.

Replies are listed 'Best First'.
Re^2: Boolean Thread::Semaphore ?
by chrestomanci (Priest) on Feb 08, 2012 at 12:12 UTC

    I am doing that, the work finding thread is putting the work it finds into a Thread::Queue object.

    The reason I want to use a semaphore as well is because the work finder runs much faster than the workers, but is quite expensive in terms of resource consumption.

    If there was not a mechanism to pause the work finder when there is enough work in the queue, it would build a queue of millions of items and waste a lot of memory and other resources in the process.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://952468]
and a log crumbles through the grate...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (6)
As of 2018-06-20 23:19 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (117 votes). Check out past polls.