Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re^2: Boolean Thread::Semaphore ?

by chrestomanci (Priest)
on Feb 08, 2012 at 16:10 UTC ( #952525=note: print w/replies, xml ) Need Help??

in reply to Re: Boolean Thread::Semaphore ?
in thread Boolean Thread::Semaphore ?

You don't want a semaphore.

The simplest mechanism is:

while( my $workitem = sourceOfWork() ) { sleep 1 while $Q->pending > MAXQ; $Q->enqueue( $workitem ); }

Thanks, that looks to be a much more sensible approach compared with what I was doing with semaphores.

That should teach me to read algorithoms online that are intened for other languages or problem domains where near realtime responses are required.

Replies are listed 'Best First'.
Re^3: Boolean Thread::Semaphore ?
by mellon85 (Monk) on Feb 08, 2012 at 17:28 UTC

    The best way (aka not polling) would be that the worker thread will stop itself if the queue is full, and will be restarted by a client thread by a signal.

    take a look at thread signalling chapter in threads documentation

      take a look at thread signalling chapter in threads documentation

      That is a truly awful idea.

      Try it for yourself to find out why.

      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

      The start of some sanity?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://952525]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2018-04-20 03:42 GMT
Find Nodes?
    Voting Booth?