max_execution_time - ITIMER_REAL vs ITIMER_PROF

php.internals

David Sklar

19 years ago
I'm interested in having a timeout that corresponds to clock time as opposed to PHP execution time (the current behavior of max_execution_time). A cursory scan of the source implies that (on Unix at least) something that behaves like zend_set_timeout() but uses setitimer()'s ITIMER_REAL timer instead of ITIMER_PROF would do the trick. Before I investigate much further, a few questions: - Is anyone aware of a reason why ITIMER_REAL would cause problems? (Signal delivered while PHP is doing something uninterruptable?) - Assuming ITIMER_REAL works OK, is there interest in incorporating a patch for a "max_real_time" config directive / timeout? Thanks, David

Stanislav Malyshev

19 years ago
> I'm interested in having a timeout that corresponds to clock time as > opposed to PHP execution time (the current behavior of > max_execution_time). A cursory scan of the source implies that (on > Unix at least) something that behaves like zend_set_timeout() but uses > setitimer()'s ITIMER_REAL timer instead of ITIMER_PROF would do the > trick. Before I investigate much further, a few questions: > > - Is anyone aware of a reason why ITIMER_REAL would cause problems?
IIRC at least on some systems ITIMER_REAL is the same as alarm(), and Apache uses alarm(), so we might have a conflict there.
-- Stanislav Malyshev, Zend Products Engineer stas@zend.com http://www.zend.com/