@@ -370,26 +370,29 @@ func (q *fakeQuerier) GetTemplateAverageBuildTime(ctx context.Context, arg datab
370
370
stopTimes []float64
371
371
deleteTimes []float64
372
372
)
373
+ q .mutex .RLock ()
374
+ defer q .mutex .RUnlock ()
373
375
for _ , wb := range q .workspaceBuilds {
374
- version , err := q .GetTemplateVersionByID (ctx , wb .TemplateVersionID )
376
+ version , err := q .getTemplateVersionByIDNoLock (ctx , wb .TemplateVersionID )
375
377
if err != nil {
376
378
return emptyRow , err
377
379
}
378
380
if version .TemplateID != arg .TemplateID {
379
381
continue
380
382
}
381
383
382
- job , err := q .GetProvisionerJobByID (ctx , wb .JobID )
384
+ job , err := q .getProvisionerJobByIDNoLock (ctx , wb .JobID )
383
385
if err != nil {
384
386
return emptyRow , err
385
387
}
386
388
if job .CompletedAt .Valid {
387
389
took := job .CompletedAt .Time .Sub (job .StartedAt .Time ).Seconds ()
388
- if wb .Transition == database .WorkspaceTransitionStart {
390
+ switch wb .Transition {
391
+ case database .WorkspaceTransitionStart :
389
392
startTimes = append (startTimes , took )
390
- } else if wb . Transition == database .WorkspaceTransitionStop {
393
+ case database .WorkspaceTransitionStop :
391
394
stopTimes = append (stopTimes , took )
392
- } else if wb . Transition == database .WorkspaceTransitionDelete {
395
+ case database .WorkspaceTransitionDelete :
393
396
deleteTimes = append (deleteTimes , took )
394
397
}
395
398
}
@@ -1838,10 +1841,14 @@ func (q *fakeQuerier) GetTemplateVersionParameters(_ context.Context, templateVe
1838
1841
return parameters , nil
1839
1842
}
1840
1843
1841
- func (q * fakeQuerier ) GetTemplateVersionByID (_ context.Context , templateVersionID uuid.UUID ) (database.TemplateVersion , error ) {
1844
+ func (q * fakeQuerier ) GetTemplateVersionByID (ctx context.Context , templateVersionID uuid.UUID ) (database.TemplateVersion , error ) {
1842
1845
q .mutex .RLock ()
1843
1846
defer q .mutex .RUnlock ()
1844
1847
1848
+ return q .getTemplateVersionByIDNoLock (ctx , templateVersionID )
1849
+ }
1850
+
1851
+ func (q * fakeQuerier ) getTemplateVersionByIDNoLock (_ context.Context , templateVersionID uuid.UUID ) (database.TemplateVersion , error ) {
1845
1852
for _ , templateVersion := range q .templateVersions {
1846
1853
if templateVersion .ID != templateVersionID {
1847
1854
continue
@@ -2273,10 +2280,14 @@ func (q *fakeQuerier) GetWorkspaceAppByAgentIDAndSlug(_ context.Context, arg dat
2273
2280
return database.WorkspaceApp {}, sql .ErrNoRows
2274
2281
}
2275
2282
2276
- func (q * fakeQuerier ) GetProvisionerJobByID (_ context.Context , id uuid.UUID ) (database.ProvisionerJob , error ) {
2283
+ func (q * fakeQuerier ) GetProvisionerJobByID (ctx context.Context , id uuid.UUID ) (database.ProvisionerJob , error ) {
2277
2284
q .mutex .RLock ()
2278
2285
defer q .mutex .RUnlock ()
2279
2286
2287
+ return q .getProvisionerJobByIDNoLock (ctx , id )
2288
+ }
2289
+
2290
+ func (q * fakeQuerier ) getProvisionerJobByIDNoLock (_ context.Context , id uuid.UUID ) (database.ProvisionerJob , error ) {
2280
2291
for _ , provisionerJob := range q .provisionerJobs {
2281
2292
if provisionerJob .ID != id {
2282
2293
continue
0 commit comments