Skip to content

Commit 869ee34

Browse files
authored
Merge pull request #42 from thedadams/fix-wait-panic
fix: set wait function before spinning off goroutine
2 parents 4d78314 + 15e9097 commit 869ee34

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

run.go

+11-10
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,17 @@ func (r *Run) request(ctx context.Context, payload any) (err error) {
244244

245245
r.events = make(chan Frame, 100)
246246
r.lock.Lock()
247+
248+
r.wait = func() {
249+
<-cancelCtx.Done()
250+
if err := context.Cause(cancelCtx); !errors.Is(err, context.Canceled) && r.err == nil {
251+
r.state = Error
252+
r.err = err
253+
} else if r.state != Continue && r.state != Error {
254+
r.state = Finished
255+
}
256+
}
257+
247258
go func() {
248259
var (
249260
err error
@@ -385,16 +396,6 @@ func (r *Run) request(ctx context.Context, payload any) (err error) {
385396
}
386397
}()
387398

388-
r.wait = func() {
389-
<-cancelCtx.Done()
390-
if err := context.Cause(cancelCtx); !errors.Is(err, context.Canceled) && r.err == nil {
391-
r.state = Error
392-
r.err = err
393-
} else if r.state != Continue && r.state != Error {
394-
r.state = Finished
395-
}
396-
}
397-
398399
return nil
399400
}
400401

0 commit comments

Comments
 (0)