func doSTM(ctx context.Context, client *v3.Client, requests <-chan stmApply) { defer wg.Done() var m *v3sync.Mutex if stmMutex { m = v3sync.NewMutex(client, "stmlock") } for applyf := range requests { st := time.Now() if m != nil { m.Lock(context.TODO()) } _, err := mkSTM(context.TODO(), client, applyf) if m != nil { m.Unlock(context.TODO()) } var errStr string if err != nil { errStr = err.Error() } results <- result{errStr: errStr, duration: time.Since(st), happened: time.Now()} bar.Increment() } }
func doSTM(client *v3.Client, requests <-chan stmApply, results chan<- report.Result) { defer wg.Done() var m *v3sync.Mutex if stmMutex { s, err := v3sync.NewSession(client) if err != nil { panic(err) } m = v3sync.NewMutex(s, "stmlock") } for applyf := range requests { st := time.Now() if m != nil { m.Lock(context.TODO()) } _, err := mkSTM(context.TODO(), client, applyf) if m != nil { m.Unlock(context.TODO()) } results <- report.Result{Err: err, Start: st, End: time.Now()} bar.Increment() } }