Panic on RegisterCallback result being used more than once #2582
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 should help with actually finding problems with code using it.
I have already seen multiple times code which seems okay but in fact
will call the returned callback twice. This effectively will lead either
to deadlock of the eventloop or earlier exit from a loop.
Given that it's never actually correct to that, panic seems okay.
We also make certain that if the user recovers from the panic we will
not have locked the eventloop either way,
In the future better APIs for most use cases should probably reduce the
need for people to use RegisterCallback and consequently worrying about
this.