Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-21302: Add Waitable timer implementation for time.sleep() in Windows #28341

Closed
wants to merge 59 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
55faeb6
clock_nanosleep() implementation for time.sleep()
Livius90 Sep 1, 2021
c7bae3b
Follow PEP 7 rules in time.sleep()
Livius90 Sep 1, 2021
b3a5c5f
Adjust braces to PEP 7
Livius90 Sep 1, 2021
3e07f39
clock_nanosleep check placed after clock_settime
Livius90 Sep 1, 2021
e06ba84
Fix EINTR issue for clock_nanosleep()
Livius90 Sep 1, 2021
6e6d4a3
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 1, 2021
238f073
nanosleep() is available for Unix systems like OSX, FreeBSD
Livius90 Sep 1, 2021
b5a5c6e
Update news rst file
Livius90 Sep 1, 2021
d064255
replace select() with nanosleep()
Livius90 Sep 2, 2021
b70f187
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 2, 2021
6ad7c14
Fix test_eintr issue for macOS
Livius90 Sep 2, 2021
74c45e1
Remove news rst and regenerate
Livius90 Sep 2, 2021
5988222
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 2, 2021
129b0a0
Use waitable timer from Win32 for time.sleep() in Windows
Livius90 Sep 3, 2021
d89e13b
Finalized waitable timer for time.sleep() in Windows
Livius90 Sep 3, 2021
47249f5
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 3, 2021
0bf8330
Fix macOS build issue
Livius90 Sep 3, 2021
085cbed
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 3, 2021
2242638
Final optimization in Waitable timer object implementation
Livius90 Sep 4, 2021
db7851b
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 4, 2021
f7387e8
revert to original
Livius90 Sep 9, 2021
a35b0b4
remove news
Livius90 Sep 9, 2021
3abf812
add clock_nanosleep() only
Livius90 Sep 9, 2021
4cbfde2
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 10, 2021
d99c06e
Update Misc/NEWS.d/next/Library/2021-09-10-00-24-08.bpo-21302.XS_frc.rst
Livius90 Sep 10, 2021
117dc62
timeout_abs renaming
Livius90 Sep 10, 2021
92061f3
Simplified HAVE_CLOCK_NANOSLEEP macro blocks
Livius90 Sep 10, 2021
f045047
remake news
Livius90 Sep 10, 2021
24f9975
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 10, 2021
34e3883
Fix err checking
Livius90 Sep 10, 2021
fec634f
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 10, 2021
8022062
revert changes
Livius90 Sep 10, 2021
4685ec7
get_monotonic() and secs re-calculation are useless for clock_nanosle…
Livius90 Sep 10, 2021
0ad19e0
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 10, 2021
0839d0d
merge errno in HAVE_CLOCK_NANOSLEEP
Livius90 Sep 11, 2021
39cff8f
remake news rst
Livius90 Sep 11, 2021
87d5712
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 11, 2021
56cb8e1
Try to fix Address sanitizer test issue
Livius90 Sep 11, 2021
8ec03be
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 11, 2021
b1ccdba
#2 Try to fix Address sanitizer test issue
Livius90 Sep 11, 2021
c8372c8
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 11, 2021
1cf2205
remake news rst
Livius90 Sep 11, 2021
1e725da
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 11, 2021
3566c59
re-make news rst
Livius90 Sep 11, 2021
278aaa2
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 11, 2021
beaecab
Merge branch 'python:main' into bpo-21302
Livius90 Sep 14, 2021
df7e4c9
Add Waitable timer implmentation in time.sleep() for Windows
Livius90 Sep 14, 2021
79a06c4
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 14, 2021
6fb2c1d
Revert "📜🤖 Added by blurb_it."
Livius90 Sep 14, 2021
41fe5d8
Fix timer handle closing, simplify ifdef blocks
Livius90 Sep 14, 2021
6fc19ad
Merge branch 'python:main' into bpo-21302
Livius90 Sep 15, 2021
ac8ab07
Add _PyTime_As100Nanoseconds()
Livius90 Sep 15, 2021
b79ce48
Fix test_eintr failed issue in macOS
Livius90 Sep 15, 2021
7a3fbc2
📜🤖 Added by blurb_it.
blurb-it[bot] Sep 15, 2021
4e7c4eb
time.sleep() sleep again if SIGINT does not raise an exception
Livius90 Sep 16, 2021
ab17401
use WaitForMultipleObjectsEx()
Livius90 Sep 16, 2021
d2eb0fc
Some code refactoring and finalizing
Livius90 Sep 18, 2021
aad2c31
Fulfilling requests of last review
Livius90 Sep 20, 2021
0daf080
Update news rst
Livius90 Sep 20, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
#2 Try to fix Address sanitizer test issue
Livius90 committed Sep 11, 2021
commit b1ccdbaa7ac919c63b04209d895f68db4abee3e1

This file was deleted.

8 changes: 6 additions & 2 deletions Modules/timemodule.c
Original file line number Diff line number Diff line change
@@ -2085,15 +2085,19 @@ pysleep(_PyTime_t secs)
}
#endif

Py_BEGIN_ALLOW_THREADS

#ifdef HAVE_CLOCK_NANOSLEEP
Py_BEGIN_ALLOW_THREADS
ret = clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &timeout_abs, NULL);
Py_END_ALLOW_THREADS
err = ret;
#else
Py_BEGIN_ALLOW_THREADS
ret = select(0, (fd_set *)0, (fd_set *)0, (fd_set *)0, &timeout);
Py_END_ALLOW_THREADS
err = errno;
#endif
Py_END_ALLOW_THREADS


if (ret == 0) {
break;