| import time | |
| import timeit | |
| # sleep can be lower than requested value in some platforms: https://bugs.python.org/issue31539 | |
| # We add padding here to compensate for that. | |
| sleep_padding = 15.0 | |
| def sleep_at_least(sleep_in_ms): | |
| sleep_until = timeit.default_timer() + (sleep_in_ms / 1E3) | |
| time.sleep((sleep_in_ms + sleep_padding) / 1E3) | |
| # Check if the padding was sufficient; if not, sleep again. | |
| while timeit.default_timer() < sleep_until: | |
| time.sleep(sleep_padding / 1E3) |