Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

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.

Comment on Re: Boolean Thread::Semaphore ?
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 the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (14)
As of 2015-01-30 17:31 GMT
Find Nodes?
    Voting Booth?

    My top resolution in 2015 is:

    Results (252 votes), past polls