Fix for signal 11 on exit of a programmable device #12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Upon shutdown of the programmable device with at least one associated persona device, a signal 11 is produced because of a bad clean-up.
The class destructor code actually does nothing since the map gets cleared by terminate's
erase
of everything in the map as the programmable device'sreleaseObject()
cleans up its children. Never the less,delete
of a Device_impl pointer is bad, rather you should_remove_ref()
. However since iterating over the map is doing nothing, we can add the call to_remove_ref()
afterreleaseObject()
in theterminate()
method, and then set the pointer to 0 to prevent its use in the future (which TBH is never since we're in theterminate
function, but for the sake of following a best practice pattern, I kept it).