From 9840956c8c38bc690de5e4f007ad5992c3b86f0c Mon Sep 17 00:00:00 2001 From: yashnevatia Date: Fri, 4 Sep 2026 14:02:28 +0100 Subject: [PATCH] Release lock in AckEvent in base capability --- pkg/capabilities/registry/base.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pkg/capabilities/registry/base.go b/pkg/capabilities/registry/base.go index 6c2d7348e0..1ce1b02253 100644 --- a/pkg/capabilities/registry/base.go +++ b/pkg/capabilities/registry/base.go @@ -385,12 +385,13 @@ func (a *atomicTriggerCapability) GetState() connectivity.State { } func (a *atomicTriggerCapability) AckEvent(ctx context.Context, triggerID string, eventID string, method string) error { - a.mu.Lock() - defer a.mu.Unlock() - if a.cap == nil { + a.mu.RLock() + cap := a.cap + a.mu.RUnlock() + if cap == nil { return errors.New("capability unavailable") } - return a.cap.AckEvent(ctx, triggerID, eventID, method) + return cap.AckEvent(ctx, triggerID, eventID, method) } func (a *atomicTriggerCapability) Load() *capabilities.TriggerCapability { @@ -561,12 +562,13 @@ func (a *atomicExecuteAndTriggerCapability) GetState() connectivity.State { } func (a *atomicExecuteAndTriggerCapability) AckEvent(ctx context.Context, triggerID string, eventID string, method string) error { - a.mu.Lock() - defer a.mu.Unlock() - if a.cap == nil { + a.mu.RLock() + cap := a.cap + a.mu.RUnlock() + if cap == nil { return errors.New("capability unavailable") } - return a.cap.AckEvent(ctx, triggerID, eventID, method) + return cap.AckEvent(ctx, triggerID, eventID, method) } func (a *atomicExecuteAndTriggerCapability) Load() *capabilities.ExecutableAndTriggerCapability {