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:
parent
fda1376ab2
commit
d3ec4cee44
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue