-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Duplicate #625 : Fix xTaskNotifyWait & ulTaskNotifyTake determinism #719
Conversation
I am curious why the PR I submitted was copied? I am guessing it is just easier this way, which is fine, though I would appreciate if I was made author of the first commit. Some sort of record of my contribution on GitHub would be nice. Obviously you don't have to do this. Anyways this looks like what I figured would need to happen to get those tests to pass, I have been waiting for a response to my questions about these tests but never received one. Thanks for doing this @kar-rahul-aws. |
Hi @karver8 |
@kar-rahul-aws Thanks for doing this. The addition of listLIST_IS_EMPTY_Expect() is what I wrote down in my notes a while back so that PR seems good to me. |
SonarCloud Quality Gate failed. 0 Bugs No Coverage information Catch issues before they fail your Quality Gate with our IDE extension SonarLint |
Closing since duplicate |
Description
Fixes the bug described in this issue:
#612
One unorthodox thing being done here, which I feel should be pointed out, is that I am calling vTaskSuspendAll() from inside a critical section. This is done to minimize the performance impact of this change, since one of the main benefits of task notifications is that they are faster than the other primitives. The only worry I see here is that it may cause issues with certain ports if they do tricky things inside portSOFTWARE_BARRIER() or portMEMORY_BARRIER(), but I cannot think of any examples.
Test Steps
The code seems to work on an RP2040.
Checklist:
Related Issue
#625
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.