Clean up control flow in WaitableEvent.

This commit is contained in:
Moonchild 2024-07-10 07:43:38 +02:00 • committed by roytam1
commit 68639a9347

View file

@ -90,15 +90,14 @@ class SyncWaiter : public WaitableEvent::Waiter {
} }
bool Fire(WaitableEvent *signaling_event) { bool Fire(WaitableEvent *signaling_event) {
lock_->Acquire(); AutoLock locked(*lock_);
const bool previous_value = fired_;
fired_ = true;
if (!previous_value)
signaling_event_ = signaling_event;
lock_->Release();
if (previous_value) if (fired_) {
return false; return false;
}
fired_ = true;
signaling_event_ = signaling_event;
cv_->Broadcast(); cv_->Broadcast();