Fix segmentation fault on exiting Python #732
Merged
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.
This PR fixes the the long-prevailing segmentation fault at the end of a Python process which includes Exotica. The source of the issue was a destructor order in
Property
which is key for theInitializer
s: Theboost::any
destructor particularly in conjunction with Eigen types did not exit cleanly. Processes finish faster (!) and cleaner now without a segmentation fault. I also moved the OcTree header (a large header-only type) to the implementation which reduces overall compile time considerably.