From 2480e15df9514a8816313909ddf25e091151ceb0 Mon Sep 17 00:00:00 2001 From: Dong-hee Na Date: Wed, 17 Nov 2021 15:43:23 +0900 Subject: [PATCH 1/2] bpo-45429: Merge whatsnew about time.sleep --- Doc/whatsnew/3.11.rst | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index 0c7c74e7c3242a..31bc04128046da 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -269,6 +269,7 @@ threading by system clock changes. (Contributed by Victor Stinner in :issue:`41710`.) + time ---- @@ -281,11 +282,8 @@ time * On Windows, :func:`time.sleep` now uses a waitable timer which has a resolution of 100 nanoseconds (10\ :sup:`-7` seconds). Previously, it had a resolution of 1 millisecond (10\ :sup:`-3` seconds). - (Contributed by Benjamin Szőke and Victor Stinner in :issue:`21302`.) + (Contributed by Benjamin Szőke, Dong-hee Na, Eryk Sun and Victor Stinner in :issue:`21302` and :issue:`45429`.) -* On Windows, :func:`time.sleep` now uses a waitable timer which supports high-resolution timers. - In Python 3.10, the best resolution was 1 ms, from Python 3.11 it's now smaller than 1 ms. - (Contributed by Dong-hee Na and Eryk Sun in :issue:`45429`.) unicodedata ----------- From 69fd645690ee7aa9c1b0815a54f0a2e408dda836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Langa?= Date: Thu, 18 Nov 2021 00:24:28 +0100 Subject: [PATCH 2/2] Respond to review by vstinner --- Doc/library/time.rst | 8 ++++---- Doc/whatsnew/3.11.rst | 8 +++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Doc/library/time.rst b/Doc/library/time.rst index 0f880910c6ee68..622f66719cee71 100644 --- a/Doc/library/time.rst +++ b/Doc/library/time.rst @@ -362,7 +362,10 @@ Functions On Windows, if *secs* is zero, the thread relinquishes the remainder of its time slice to any other thread that is ready to run. If there are no other threads ready to run, the function returns immediately, and the thread - continues execution. + continues execution. On Windows 8.1 and newer the implementation uses + a `high-resolution timer + `_ + which provides resolution of 100 nanoseconds. If *secs* is zero, ``Sleep(0)`` is used. Unix implementation: @@ -370,9 +373,6 @@ Functions * Or use ``nanosleep()`` if available (resolution: 1 nanosecond); * Or use ``select()`` (resolution: 1 microsecond). - On Windows, a waitable timer is used (resolution: 100 nanosecond). If *secs* is - zero, ``Sleep(0)`` is used. - .. versionchanged:: 3.11 On Unix, the ``clock_nanosleep()`` and ``nanosleep()`` functions are now used if available. On Windows, a waitable timer is now used. diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index 31bc04128046da..06a24151c32ccd 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -279,9 +279,11 @@ time of 1 microsecond (10\ :sup:`-6` seconds). (Contributed by Benjamin Szőke and Victor Stinner in :issue:`21302`.) -* On Windows, :func:`time.sleep` now uses a waitable timer which has a - resolution of 100 nanoseconds (10\ :sup:`-7` seconds). Previously, it had - a resolution of 1 millisecond (10\ :sup:`-3` seconds). +* On Windows 8.1 and newer, :func:`time.sleep` now uses a waitable timer based + on `high-resolution timers + `_ + which has a resolution of 100 nanoseconds (10\ :sup:`-7` seconds). Previously, + it had a resolution of 1 millisecond (10\ :sup:`-3` seconds). (Contributed by Benjamin Szőke, Dong-hee Na, Eryk Sun and Victor Stinner in :issue:`21302` and :issue:`45429`.)