Fix PublisherZMQ segfault upon destruction #440
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.
Wait for any in-progress message sending to finish before deleting ZMQ. This fixes some cases where a segfault could occur when an instance of PublisherZMQ was destroyed.
I added unit tests based on the test case described in #426 (side note: that PR has a somewhat more complex solution to this same problem, but I pushed this one because I think the solution here is OK). I also added the bonus esoteric-yet-seen-in-the-wild case of deleting PublisherZMQ without even ticking the tree.
This is based on work by @JafarAbdi.