fix: address PR review feedback

- use singleflight DoChan with context cancellation for list VMs

🤖 Generated with [Codex](https://chatgpt.com/codex)

Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
Fedor Korotkov 2026-02-05 17:28:01 +01:00
parent fda1376ab2
commit d3ec4cee44
1 changed files with 12 additions and 1 deletions

View File

@ -312,7 +312,7 @@ func (controller *Controller) listVMs(ctx *gin.Context) responder.Responder {
}
}
computedVMs, err, _ := controller.single.Do("list-vms", func() (interface{}, error) {
resultCh := controller.single.DoChan("list-vms", func() (interface{}, error) {
var vms []v1.VM
viewErr := controller.store.View(func(txn storepkg.Transaction) (err error) {
@ -323,6 +323,17 @@ func (controller *Controller) listVMs(ctx *gin.Context) responder.Responder {
return vms, viewErr
})
var computedVMs interface{}
var err error
select {
case <-ctx.Done():
return responder.Empty()
case result := <-resultCh:
computedVMs = result.Val
err = result.Err
}
if err != nil {
return responder.Error(err)
}