summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/thread/thread_sleep2.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/thread/thread_sleep2.py b/tests/thread/thread_sleep2.py
new file mode 100644
index 000000000..2dec24cab
--- /dev/null
+++ b/tests/thread/thread_sleep2.py
@@ -0,0 +1,31 @@
+# Test accuracy of sleep within a thread.
+
+import time
+import _thread
+
+
+def sleep(t, valid_range):
+ t0 = time.time_ns()
+ time.sleep(t)
+ dt_ms = (time.time_ns() - t0) // 1_000_000
+ if dt_ms in valid_range:
+ print("dt in range", t)
+ else:
+ print("dt not in range:", dt_ms)
+
+
+def thread_entry():
+ lock.acquire()
+ print("thread start")
+ sleep(0.2, range(180, 400))
+ print("thread end")
+
+
+lock = _thread.allocate_lock()
+lock.acquire()
+_thread.start_new_thread(thread_entry, ())
+
+print("main start")
+lock.release()
+sleep(0.5, range(480, 800))
+print("main end")