Fix CEvent auto-reset behaviour in case of broadcast signal. #37
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.
I probably found some minor issue with CEvent in auto-reset mode. When event becomes signalled by Broadcast() method, and some thread been waiting for event in a loop with timeout, the event remains signalled after successful checking of signal state. I.e. no automatic reset done.
The issue was with counter of waiting threads, that was not decremented, because of compiler optimisation of boolean expression.
There is no issue when Signal() method is using.
Following is small test that fails before changes and succeeded after.