Hi!

> Instead of throwing zend_error() from signal handler, now we just set
> EG(vm_interrupt) and EG(timed_out) flags. PHP VM checks EG(vm_interrupt)
> flag on each JMPx instruction (potential loop iteration) and then throws

JMPs are not the only operations that can transfer control and thus
potentially form a loop.

> Unfortunately this approach doesn't support interruption of long-running
> internal functions yet. It should be extended in some way. May be
> additional timeout.

Doing additional setjmp when entering internal function probably would
be too expensive. So the question is how to get out of the bad function
without incurring per-function overhead... Not sure how to do it.

-- 
Stas Malyshev
smalys...@gmail.com

Reply via email to