diff --git a/tests/thread/thread_sleep2.py b/tests/thread/thread_sleep2.py new file mode 100644 index 0000000000..2dec24cabe --- /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")