Update obsolete comment about pg_usleep() accuracy.
authorThomas Munro <tmunro@postgresql.org>
Wed, 15 Mar 2023 03:14:36 +0000 (16:14 +1300)
committerThomas Munro <tmunro@postgresql.org>
Wed, 15 Mar 2023 04:23:02 +0000 (17:23 +1300)
There are still some systems that use traditional tick-based sleep
timing, but many including Linux, FreeBSD and macOS started using high
resolution timer hardware more directly a decade or two ago.  Update our
comment about that.  Also highlight that Windows is like the older
Unixen in that respect.

Author: Nathan Bossart <nathandbossart@gmail.com>
Discussion: https://postgr.es/m/CA%2BhUKG%2BogAon8_V223Ldv6taPR2uKH3X_UJ_A7LJAf3-VRARPA%40mail.gmail.com

src/port/pgsleep.c

index 8a709cd01dff095faeeee1bcd47afa340ef62fe0..b34efeae8cd8c86a065917acdb1b432fb34fc45c 100644 (file)
 /*
  * pg_usleep --- delay the specified number of microseconds.
  *
- * NOTE: although the delay is specified in microseconds, the effective
- * resolution is only 1/HZ, or 10 milliseconds, on most Unixen.  Expect
- * the requested delay to be rounded up to the next resolution boundary.
+ * NOTE: Although the delay is specified in microseconds, older Unixen and
+ * Windows use periodic kernel ticks to wake up, which might increase the delay
+ * time significantly.  We've observed delay increases as large as 20
+ * milliseconds on supported platforms.
  *
  * On machines where "long" is 32 bits, the maximum delay is ~2000 seconds.
  *