diff --git a/process/process.go b/process/process.go index 4bfcb4b4..d1754822 100644 --- a/process/process.go +++ b/process/process.go @@ -593,6 +593,10 @@ func (p *process) stop(wait bool) error { if p.callbacks.onExit == nil { p.callbacks.onExit = func() { wg.Done() + + p.callbacks.lock.Lock() + defer p.callbacks.lock.Unlock() + p.callbacks.onExit = nil } } else { @@ -600,6 +604,10 @@ func (p *process) stop(wait bool) error { p.callbacks.onExit = func() { cb() wg.Done() + + p.callbacks.lock.Lock() + defer p.callbacks.lock.Unlock() + p.callbacks.onExit = cb } }