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

mavlink command fixes #391

Merged
merged 9 commits into from
May 16, 2018
Merged

mavlink command fixes #391

merged 9 commits into from
May 16, 2018

Conversation

julianoes
Copy link
Collaborator

These are a bunch of fixes to prevent promises getting set more than
once which triggers an abort.

This needs further cleanup, the changes are rather ugly.

@julianoes julianoes changed the title [WIP] mavlink command fixes mavlink command fixes May 14, 2018
These are a bunch of fixes to prevent promises getting set more than
once which triggers an abort.

This needs further cleanup, the changes are rather ugly.
This adds tests for the locked queue and also implements the mechanism
to borrow and return an item from the queue. This allows to work on
front without having to pop it.
This takes advantage of the new locked queue where we can borrow and
return the front. Also, it removes the FAILED and DONE states which were
not really having any purpose.

This should properly fix the race conditions that we were seeing.
We now need to borrow and return the front. This should resolve some
possible races for front.
It turns out that double unlocking a mutex is not possible on Windows.
Therefore, we need to try to lock it before unlocking it.
It seems like with std::deferred this doesn't work as intended with
older compilers.
@julianoes julianoes merged commit 6fbfabf into develop May 16, 2018
@julianoes julianoes deleted the fix-sync-commands branch May 16, 2018 12:47
rt-2pm2 pushed a commit to rt-2pm2/DronecodeSDK that referenced this pull request Nov 27, 2018
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.

2 participants