@@ -179,6 +179,17 @@ public function removeWriteStream($stream);
179179 * Similarly, the execution order of timers scheduled to execute at the
180180 * same time (within its possible accuracy) is not guaranteed.
181181 *
182+ * This interface suggests that event loop implementations SHOULD use a
183+ * monotic time source if available. Given that a monotonic time source is
184+ * not available on PHP by default, event loop implementations MAY fall back
185+ * to using wall-clock time.
186+ * While this does not affect many common use cases, this is an important
187+ * distinction for programs that rely on a high time precision or on systems
188+ * that are subject to discontinuous time adjustments (time jumps).
189+ * This means that if you schedule a timer to trigger in 30s and then adjust
190+ * your system time forward by 20s, the timer SHOULD still trigger in 30s.
191+ * See also [event loop implementations](#loop-implementations) for more details.
192+ *
182193 * @param int|float $interval The number of seconds to wait before execution.
183194 * @param callable $callback The callback to invoke.
184195 *
@@ -257,6 +268,11 @@ public function addTimer($interval, $callback);
257268 * your system time forward by 20s, the timer SHOULD still trigger in 30s.
258269 * See also [event loop implementations](#loop-implementations) for more details.
259270 *
271+ * Additionally, periodic timers may be subject to timer drift due to
272+ * re-scheduling after each invocation. As such, it's generally not
273+ * recommended to rely on this for high precision intervals with millisecond
274+ * accuracy or below.
275+ *
260276 * @param int|float $interval The number of seconds to wait before execution.
261277 * @param callable $callback The callback to invoke.
262278 *
0 commit comments