tools/go/buildutil
Alan Donovan 3a85b8da38 refactor/importgraph: reduce I/O concurrency to avoid EMFILE
Use an concurrency-limiting semaphore to reduce I/O parallelism in Import.

Also, start the producer in a new goroutine so that it runs in parallel
with the consumer.  Paradoxically, this reduces the peak number of
goroutines.

Also, in buildutil.ForEachPackage, make the concurrency limiting
semaphore global, since I/O parallelism is a process-wide resource.

Change-Id: I282b717c50603361826e5675077c9f464c874132
Reviewed-on: https://go-review.googlesource.com/18215
Reviewed-by: Michael Matloob <matloob@golang.org>
2015-12-30 22:01:03 +00:00
..
allpackages.go refactor/importgraph: reduce I/O concurrency to avoid EMFILE 2015-12-30 22:01:03 +00:00
allpackages_test.go x/tools: disable tests not supported on Android 2015-08-06 00:36:03 +00:00
buildutil_go15.go go/buildutil: changes for vendor support 2015-12-18 20:00:43 +00:00
buildutil_go16.go go/buildutil: changes for vendor support 2015-12-18 20:00:43 +00:00
fakecontext.go refactor/rename: make tests pass on windows (fixes build) 2015-01-23 05:30:55 +00:00
tags.go go/buildutil: Fix example code for TagsFlag. 2015-11-09 14:36:24 +00:00
tags_test.go go/buildutil: TagsFlag provides a flag.Value for setting build.Context.BuildTags from -tags flag. 2015-04-23 14:10:21 +00:00
util.go go/buildutil: changes for vendor support 2015-12-18 20:00:43 +00:00
util_test.go go/loader: fix tests to work at go1.5 and tip 2015-12-28 22:42:32 +00:00
util_windows_test.go go/buildutil: ignore path letters case in ContainingPackage on windows 2015-11-25 03:21:30 +00:00