fix: don't sleep/block if ticks are outstanding#650
Open
dryajov wants to merge 1 commit into
Open
Conversation
4cd4526 to
cc96f1a
Compare
cc96f1a to
fc84e40
Compare
arnetheduck
reviewed
May 30, 2026
| fut3.completed() == true | ||
|
|
||
| test "Cancellation retry tick does not wait for next timer": | ||
| const NextTimerSleep = 50.milliseconds |
Member
There was a problem hiding this comment.
Suggested change
| const NextTimerSleep = 50.milliseconds | |
| const NextTimerSleep = 500.milliseconds |
Member
|
hm, that's a lot of test failures .. almost looks like it was going into a busy loop sometimes |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prevent
poll()from blocking when internalticksare outstanding.When
cancelSoon()fails to deliver cancellation on the first try, it installs atickcallback. However,poll()ignorestickswhen calculating the current timeout. If a long timeout is scheduled,poll()can block until that timeout expires or IO wakes up the loop.Treat
tickcallbacks as outstanding work when calculating the currentpoll()timeout.