summaryrefslogtreecommitdiffstats
path: root/Python/pytime.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2021-09-22 14:09:30 (GMT)
committerGitHub <noreply@github.com>2021-09-22 14:09:30 (GMT)
commit58f8adfda3c2b42f654a55500e8e3a6433cb95f2 (patch)
tree2804e1290e728fe7f5aa6ba46215b894de3f88ea /Python/pytime.c
parent8620be99da930230b18ec05f4d7446ee403531af (diff)
downloadcpython-58f8adfda3c2b42f654a55500e8e3a6433cb95f2.zip
cpython-58f8adfda3c2b42f654a55500e8e3a6433cb95f2.tar.gz
cpython-58f8adfda3c2b42f654a55500e8e3a6433cb95f2.tar.bz2
bpo-21302: time.sleep() uses waitable timer on Windows (GH-28483)
On Windows, time.sleep() now uses a waitable timer which has a resolution of 100 ns (10^-7 sec). Previously, it had a solution of 1 ms (10^-3 sec). * On Windows, time.sleep() now calls PyErr_CheckSignals() before resetting the SIGINT event. * Add _PyTime_As100Nanoseconds() function. * Complete and update time.sleep() documentation. Co-authored-by: Livius <egyszeregy@freemail.hu>
Diffstat (limited to 'Python/pytime.c')
-rw-r--r--Python/pytime.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/Python/pytime.c b/Python/pytime.c
index 8035a5f..7f9f301 100644
--- a/Python/pytime.c
+++ b/Python/pytime.c
@@ -33,6 +33,7 @@
/* Conversion from nanoseconds */
#define NS_TO_MS (1000 * 1000)
#define NS_TO_US (1000)
+#define NS_TO_100NS (100)
static void
@@ -568,6 +569,16 @@ _PyTime_AsNanoseconds(_PyTime_t t)
}
+#ifdef MS_WINDOWS
+_PyTime_t
+_PyTime_As100Nanoseconds(_PyTime_t t, _PyTime_round_t round)
+{
+ _PyTime_t ns = pytime_as_nanoseconds(t);
+ return pytime_divide(ns, NS_TO_100NS, round);
+}
+#endif
+
+
_PyTime_t
_PyTime_AsMicroseconds(_PyTime_t t, _PyTime_round_t round)
{