Skip to content

Instantly share code, notes, and snippets.

@dtynn
Last active June 12, 2017 09:27
Show Gist options
  • Save dtynn/4aac4d4d97da6f34bc8062daa4c7a980 to your computer and use it in GitHub Desktop.
Save dtynn/4aac4d4d97da6f34bc8062daa4c7a980 to your computer and use it in GitHub Desktop.
test
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println("Hello, World!")
}
}
func restore(repos []string) error {
errChan := make(chan error, 1)
sem := make(chan int, 4) // four jobs at once
var wg sync.WaitGroup
wg.Add(len(repos))
for _, repo := range repos {
sem <- 1
go func() {
defer func() {
wg.Done()
<-sem
}()
if err := fetch(repo); err != nil {
errChan <- err
}
}()
}
wg.Wait()
close(sem)
close(errChan)
return <-errChan
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment