[DOC-CVS] [doc-en] master: Document --enable-zend-max-execution-timers configure option (#5269)
[email protected] (Louis-Arnaud via GitHub)
| Newsgroups | php.doc.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: Louis-Arnaud (lacatoire)
Committer: GitHub (web-flow)
Pusher: lacatoire
Date: 2026-08-21T11:42:40+02:00
Commit: https://github.com/php/doc-en/commit/667093532547bcfe6224765f038c151c61f30f48
Raw diff: https://github.com/php/doc-en/commit/667093532547bcfe6224765f038c151c61f30f48.diff
Document --enable-zend-max-execution-timers configure option (#5269)
Fixes #3767
Changed paths:
M appendices/configure/misc.xml
M reference/info/ini.xml
Diff:
diff --git a/appendices/configure/misc.xml b/appendices/configure/misc.xml
index c95b91eab5a8..6e3d9b8be69d 100644
--- a/appendices/configure/misc.xml
+++ b/appendices/configure/misc.xml
@@ -46,6 +46,27 @@
</listitem>
</varlistentry>
+ <varlistentry xml:id="configure.enable-zend-max-execution-timers">
+ <term>
+ <option role="configure">--enable-zend-max-execution-timers</option>
+ </term>
+ <listitem>
+ <simpara>
+ Use POSIX per-thread timers for
+ <link linkend="ini.max-execution-time">max_execution_time</link>
+ tracking instead of the process-wide
+ <literal>setitimer()</literal>. These timers measure elapsed time
+ (<literal>CLOCK_BOOTTIME</literal>, or
+ <literal>CLOCK_MONOTONIC</literal> on FreeBSD), whereas the default
+ <literal>setitimer(ITIMER_PROF)</literal> measures CPU time, so time
+ spent sleeping or waiting on I/O counts towards the limit.
+ Requires <literal>timer_create()</literal> support: available on
+ Linux, and on FreeBSD as of PHP 8.4.0.
+ Available since PHP 8.1.0. Enabled by default for ZTS builds since
+ PHP 8.3.0.
+ </simpara>
+ </listitem>
+ </varlistentry>
<varlistentry xml:id="configure.enable-sigchild">
<term>
<option role="configure">--enable-sigchild</option>
diff --git a/reference/info/ini.xml b/reference/info/ini.xml
index fcb3b6ec99a7..6863047f0c8e 100644
--- a/reference/info/ini.xml
+++ b/reference/info/ini.xml
@@ -251,6 +251,15 @@
<function>set_time_limit</function> function for more
details.
</para>
+ <simpara>
+ When PHP is compiled with
+ <link linkend="configure.enable-zend-max-execution-timers">--enable-zend-max-execution-timers</link>
+ (the default for ZTS builds since PHP 8.3.0), the limit is tracked
+ with POSIX per-thread timers that measure elapsed time, so time
+ spent sleeping or waiting on I/O counts towards it. The default
+ <literal>setitimer(ITIMER_PROF)</literal> based tracking measures
+ CPU time instead.
+ </simpara>
<para>
Your web server can have other timeout configurations that may
also interrupt PHP execution. Apache has a