[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.