From 227ca7927addbee98c1e0531c14ec5006b45f8e3 Mon Sep 17 00:00:00 2001 From: LordMathis Date: Thu, 28 Aug 2025 18:59:26 +0200 Subject: [PATCH] Refactor SetStatus method to capture onStatusChange callback reference before unlocking mutex --- pkg/instance/status.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/instance/status.go b/pkg/instance/status.go index 3738502..35ecfc6 100644 --- a/pkg/instance/status.go +++ b/pkg/instance/status.go @@ -30,10 +30,12 @@ func (p *Process) SetStatus(status InstanceStatus) { p.mu.Lock() oldStatus := p.Status p.Status = status + callback := p.onStatusChange // Capture callback reference p.mu.Unlock() - if p.onStatusChange != nil { - p.onStatusChange(oldStatus, status) + // Call callback outside the lock to prevent deadlocks + if callback != nil { + callback(oldStatus, status) } }