diff --git a/run.go b/run.go index 785890b..c706b61 100644 --- a/run.go +++ b/run.go @@ -244,6 +244,17 @@ func (r *Run) request(ctx context.Context, payload any) (err error) { r.events = make(chan Frame, 100) r.lock.Lock() + + r.wait = func() { + <-cancelCtx.Done() + if err := context.Cause(cancelCtx); !errors.Is(err, context.Canceled) && r.err == nil { + r.state = Error + r.err = err + } else if r.state != Continue && r.state != Error { + r.state = Finished + } + } + go func() { var ( err error @@ -385,16 +396,6 @@ func (r *Run) request(ctx context.Context, payload any) (err error) { } }() - r.wait = func() { - <-cancelCtx.Done() - if err := context.Cause(cancelCtx); !errors.Is(err, context.Canceled) && r.err == nil { - r.state = Error - r.err = err - } else if r.state != Continue && r.state != Error { - r.state = Finished - } - } - return nil }