From 907b038ff00968f442a2b672931448fbf670b342 Mon Sep 17 00:00:00 2001 From: Roy Han Date: Mon, 15 Jul 2024 10:57:01 -0700 Subject: [PATCH] reduce error footprint --- server/routes.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/server/routes.go b/server/routes.go index 4bf32f689..50840d98d 100644 --- a/server/routes.go +++ b/server/routes.go @@ -305,8 +305,9 @@ func (s *Server) EmbedHandler(c *gin.Context) { } reqEmbedArray := make([]string, len(reqEmbed)) - errCh := make(chan error, len(reqEmbed)) - sem := make(chan struct{}, 5) + errCh := make(chan error, 1) + successCh := make(chan bool, 1) + sem := make(chan struct{}, 2) var wg sync.WaitGroup var mu sync.Mutex for i, s := range reqEmbed { @@ -342,11 +343,17 @@ func (s *Server) EmbedHandler(c *gin.Context) { } go func() { wg.Wait() + successCh <- true close(errCh) }() - for err := range errCh { - if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + + select { + case err := <-errCh: + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + case success := <-successCh: + if !success { + c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to process all embeddings"}) return } }