Ivan Galakhov 4 лет назад
Родитель
Сommit
ccd1fad049
1 измененных файлов с 14 добавлено и 7 удалено
  1. 14 7
      server/api/git_repo_handler.go

+ 14 - 7
server/api/git_repo_handler.go

@@ -91,7 +91,7 @@ func (app *App) HandleListRepos(w http.ResponseWriter, r *http.Request) {
 	var mu sync.Mutex
 	var mu sync.Mutex
 	var wg sync.WaitGroup
 	var wg sync.WaitGroup
 
 
-	worker := func(cp int, wg *sync.WaitGroup) {
+	worker := func(cp int) {
 		defer wg.Done()
 		defer wg.Done()
 
 
 		for cp < numPages {
 		for cp < numPages {
@@ -119,16 +119,25 @@ func (app *App) HandleListRepos(w http.ResponseWriter, r *http.Request) {
 		}
 		}
 	}
 	}
 
 
-	wg.Add(WCOUNT)
+	var numJobs int
+	if numPages > WCOUNT {
+		numJobs = WCOUNT
+	} else {
+		numJobs = numPages
+	}
+
+	wg.Add(numJobs)
+
 	// page 1 is already loaded so we start with 2
 	// page 1 is already loaded so we start with 2
-	for i := 1; i <= WCOUNT; i++ {
-		go worker(i+1, &wg)
+	for i := 1; i <= numJobs; i++ {
+		go worker(i + 1)
 	}
 	}
 
 
 	wg.Wait()
 	wg.Wait()
 
 
 	if workerErr != nil {
 	if workerErr != nil {
-
+		app.handleErrorInternal(workerErr, w)
+		return
 	}
 	}
 
 
 	res := make([]Repo, 0)
 	res := make([]Repo, 0)
@@ -140,8 +149,6 @@ func (app *App) HandleListRepos(w http.ResponseWriter, r *http.Request) {
 		})
 		})
 	}
 	}
 
 
-	fmt.Println(len(res))
-
 	json.NewEncoder(w).Encode(res)
 	json.NewEncoder(w).Encode(res)
 }
 }