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

Replace nostd_async with a simple test executor #848

Merged
merged 2 commits into from
Sep 11, 2024

Conversation

jannic
Copy link
Member

@jannic jannic commented Sep 8, 2024

This has some advantages:

  • no longer depend on nostd_async, which has known issues (Soundness issues sammhicks/nostd_async#4) and looks rather unmaintained
  • the custom executor can check that the waker is only called when expected (currently only implemented as some defmt logging, but this can be improved)
  • in case of problems, it is easier to debug than a full-fledged executor

The new dependency on once_cell can be removed with rust 1.82.0, which makes Waker::from_raw callable from const contexts.

@jannic
Copy link
Member Author

jannic commented Sep 9, 2024

@ithinuel Thanks for the approval, it's encouraging that you agree with the approach. I may push some code cleanups to this pull request later today.

@jannic jannic mentioned this pull request Sep 9, 2024
@jannic jannic merged commit 7816958 into rp-rs:main Sep 11, 2024
49 checks passed
@sammhicks
Copy link

Hi, I'm the developer of nostd_async.

There was definitely UB in nostd_async, which should now have been resolved.

Miri complains about version 0.6.1, but not 0.7.0 to 0.7.2.

However, I'm no longer developing it, so using a different executor is wise.

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.

3 participants