We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 8c7fa95 commit 5c48811Copy full SHA for 5c48811
src/cmd/compile/internal/gc/noder.go
@@ -7,6 +7,7 @@ package gc
7
import (
8
"fmt"
9
"os"
10
+ "runtime"
11
"strconv"
12
"strings"
13
"unicode/utf8"
@@ -20,12 +21,16 @@ import (
20
21
func parseFiles(filenames []string) uint {
22
var lines uint
23
var noders []*noder
24
+ // Limit the number of simultaneously open files.
25
+ sem := make(chan struct{}, runtime.GOMAXPROCS(0)+10)
26
27
for _, filename := range filenames {
28
p := &noder{err: make(chan syntax.Error)}
29
noders = append(noders, p)
30
31
go func(filename string) {
32
+ sem <- struct{}{}
33
+ defer func() { <-sem }()
34
defer close(p.err)
35
base := src.NewFileBase(filename, absFilename(filename))
36
0 commit comments