Fix promise sync in bool_waiter; rename to callback_waiter #48
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.
We were setting the promise in bool_waiter before we call the wrapped lambda, but that introduces a race condition because we have test code that waits on the promise and then checks a value that it expects to have been set inside the lambda.
This reverses it so that the promise is set after the lambda is called.
While here, I also refactored this to a
promise<void>
since we are never actually meaningfully using thebool
value (it is only ever set totrue
) and removed theget()
function (since the only difference between it andwait_ready()
is thatget()
can hang forever), and then since it isn't a "bool" waiter anymore, renamed the whole thing to callback_waiter.Edit: also renamed
wait_ready
towait
Also documented its usage.