Fix distributed_work segfault when local work generation fails #2413
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.
In start_work () :
else if (!this_l->cancelled && !this_l->completed)
Was not setting any of these atomics to true, so the same callback would possibly be called in
cancel_once
. Not normally an issue, but can happen and came up with Serg's epoch storm test. Instead of making a new atomic, joined both into a singlefinished
atomic, and added awork_generation_status
enum.Also added a check
if (callback)
on every call.