in reply to Re: AnyEvent: How to protect critical sections?
in thread AnyEvent: How to protect critical sections?
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; ... } ... return if $ignore_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.{ local $ignore_interrupt = 1; ... do_interrupt if $ignore_interrupt == 2; } ... if ($ignore_interrupt) { $ignore_interrupt = 2; } else { do_interrupt; }
|
|---|