Skip to content

Commit

Permalink
Merge pull request #286 from ZymoticB/td-fix-shutdown
Browse files Browse the repository at this point in the history
Fix racy requester shutdown logic
  • Loading branch information
bojand authored Jun 27, 2021
2 parents b41f6b4 + 7b01bcd commit bb76581
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions runner/requester.go
Original file line number Diff line number Diff line change
Expand Up @@ -353,10 +353,12 @@ func (b *Requester) runWorkers(wt load.WorkerTicker, p load.Pacer) error {

errC := make(chan error, b.config.c)
done := make(chan struct{})
workerTickerDone := make(chan struct{})
ticks := make(chan TickValue)
counter := Counter{}

go func() {
defer close(workerTickerDone)
n := 0
wc := 0
for tv := range wct {
Expand Down Expand Up @@ -424,13 +426,14 @@ func (b *Requester) runWorkers(wt load.WorkerTicker, p load.Pacer) error {
}
wm.Unlock()
}
if tv.Done {
return
}
}
}()

go func() {
defer close(ticks)
defer wt.Finish()

defer func() {
wm.Lock()
nw := len(b.workers)
Expand All @@ -440,6 +443,11 @@ func (b *Requester) runWorkers(wt load.WorkerTicker, p load.Pacer) error {
wm.Unlock()
}()

defer func() {
wt.Finish()
<-workerTickerDone
}()

began := time.Now()

for {
Expand Down

0 comments on commit bb76581

Please sign in to comment.