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

Fix: IOUring timer management #92

Merged
merged 1 commit into from
Dec 30, 2024
Merged

Fix: IOUring timer management #92

merged 1 commit into from
Dec 30, 2024

Conversation

skoppe
Copy link
Collaborator

@skoppe skoppe commented Dec 29, 2024

The iouring module was wrongfully propagating to a non-timeout wait from a timeout submitAndWait under certain circumstances, leading to timeouts never happening.

dirtyTimers need to be toggled even when no timers were triggered. This is because the timingwheel implementation doesn't return the exact time the next timer is to be triggered, but maxes that at 255 * tick size.

Test Plan: dub test.

The iouring module was wrongfully propagating to a non-timeout wait from
a timeout submitAndWait under certain circumstances, leading to timeouts
never happening.

`dirtyTimers` need to be toggled even when no timers were triggered.
This is because the timingwheel implementation doesn't return the exact
time the next timer is to be triggered, but maxes that at 255 * tick size.

Test Plan: `dub test`.
@skoppe skoppe merged commit e89e42e into master Dec 30, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant