Skip to content

Commit 0bb7c75

Browse files
committed
fix: resolve promise outside state mutex in TimedCondition::Close
1 parent 3bab874 commit 0bb7c75

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

libs/server-sdk/src/data_systems/fdv2/conditions.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,16 @@ async::Future<IFDv2Condition::Type> TimedCondition::Execute() {
2626
}
2727

2828
void TimedCondition::Close() {
29-
std::lock_guard lock(state_->mutex);
30-
if (state_->closed) {
31-
return;
32-
}
33-
state_->closed = true;
34-
if (state_->timer_cancel) {
35-
state_->timer_cancel->Cancel();
36-
state_->timer_cancel.reset();
29+
{
30+
std::lock_guard lock(state_->mutex);
31+
if (state_->closed) {
32+
return;
33+
}
34+
state_->closed = true;
35+
if (state_->timer_cancel) {
36+
state_->timer_cancel->Cancel();
37+
state_->timer_cancel.reset();
38+
}
3739
}
3840
state_->promise.Resolve(IFDv2Condition::Type::kCancelled);
3941
}

0 commit comments

Comments
 (0)