We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
mutex mtx; condition_variable cv; bool condition;
this will busy loop whereas it should wait to be rescheduled by a call to signal() from a different thread
signal()
mtx.lock(); while (condition == false) { cv.wait(mtx); } mtx.unlock();
I think there something like scheduler::internal_link_node (list_, node); missing between these lines
scheduler::internal_link_node (list_, node);
The text was updated successfully, but these errors were encountered:
As a quick test I added
{ scheduler::critical_section scs; interrupts::critical_section ics; port::this_thread::prepare_suspend (); node.thread_->state_ = thread::state::suspended; } port::scheduler::reschedule ();
which seems to have fixed the issue. Not sure if that's the correct fix though..
Sorry, something went wrong.
I don't remember the implementation details now, but normally wait() should relinquish control.
wait()
If it does not, it should be fixed.
I don't know how, but entering both critical sections does not look right.
No branches or pull requests
mutex mtx; condition_variable cv; bool condition;
this will busy loop whereas it should wait to be rescheduled by a call to
signal()
from a different threadI think there something like
scheduler::internal_link_node (list_, node);
missing between these lines
The text was updated successfully, but these errors were encountered: