-
Notifications
You must be signed in to change notification settings - Fork 473
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
Updates to Parker
#563
Updates to Parker
#563
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR and sorry for the delay reviewing! The implementation looks good, but we recently released a new minor version of crossbeam-utils
, so I would prefer not to do the breaking changes right now.
It might make sense to consider doing this in a future version (filed #601 to follow-up), but for now, can you revert the changes for UnparkReason
?
Sure thing, I'll get to it this weekend. |
Done. Preserved the old version in a branch: https://github.com/Lucretiel/crossbeam/tree/unpark-reason |
CI failures seem unrelated; they're being caused by an issue with rustup. |
CI failure was fixed in #606. Could you rebase? |
- No longer possibility for spurious wake - Now reports unpark reason (timeout or unpark())Updates to parker
Remove checked_duration_since in favor of arithmetic and manual checks
`UnparkReason` implementation preserved in Lucretiel/crossbeam/unpark-reason
927c3f8
to
4c0a106
Compare
Done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
bors r+
Build succeeded: |
659: Prepare for the next release r=taiki-e a=taiki-e It's been over two months since the previous release. There are some improvements and deprecations in the master branch, and it would be nice to release them. Also, there is no breaking change that needs a major version bump. Changes: - crossbeam-epoch 0.9.1 -> 0.9.2 - Add `Atomic::compare_exchange` and `Atomic::compare_exchange_weak`. (#628) - Deprecate `Atomic::compare_and_set` and `Atomic::compare_and_set_weak`. (#628) - Make `const_fn` dependency optional. (#611) - Add unstable support for `loom`. (#487) - crossbeam-utils 0.8.1 -> 0.8.2 - Deprecate `AtomicCell::compare_and_swap`. (#619) - Add `Parker::park_deadline`. (#563) - Improve implementation of `CachePadded`. (#636) - Add unstable support for `loom`. (#487) Co-authored-by: Taiki Endo <te316e89@gmail.com>
park
: now deadline based, and unified the code paths between timeout and no-timeout versionsBreaking Changepark_timeout
andpark_deadline
now report the reason for their return (timeout orunpark
) in an enum.If you'd rather not have this breaking change, I'm happy to revert that side of it and just focus on the spurious awakening prevention stuff.
Fixes #482