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

Re^2: AnyEvent: How to protect critical sections?

by Anonymous Monk
on May 18, 2011 at 20:00 UTC ( [id://905553]=note: print w/replies, xml ) Need Help??


in reply to Re: AnyEvent: How to protect critical sections?
in thread AnyEvent: How to protect critical sections?

(i would have liked to reply to the original posting, but there is no reply button, apparently). I don't know what the "bets" way is, but one can simply use a global variable. Simple case
{ local $ignore_interrupt = 1; ... } ... return if $ignore_interrupt;
That loses "interrupt" events, which might not be acceptable. A solution for that is to store some marker in the variable.
{ local $ignore_interrupt = 1; ... do_interrupt if $ignore_interrupt == 2; } ... if ($ignore_interrupt) { $ignore_interrupt = 2; } else { do_interrupt; }
The same kind of code also works in Coro. However, I firmly believe that youc an always find a simpler way - e.g. by stopping and restarting the timer or similar code. Trying to recursive into the event loop somehow creates modality, which is kind of evil and tends to lead to more problems than it solves.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://905553]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (6)
As of 2024-04-18 06:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found