Skip to content

Commit

Permalink
cleanup hack/verify-govet.sh to throttle process creation
Browse files Browse the repository at this point in the history
Running this check as it is on master spikes my load average to 294.19
and looks up my workstation.
  • Loading branch information
mikedanese committed Jun 20, 2016
1 parent a3f0970 commit af0177e
Showing 1 changed file with 1 addition and 31 deletions.
32 changes: 1 addition & 31 deletions hack/verify-govet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,34 +46,4 @@ if [[ ${#targets[@]} -eq 0 ]]; then
targets=$(go list ./... | egrep -v "/(third_party|vendor)/")
fi

# Do this in parallel; results in 5-10x speedup.
pids=""
for i in $targets
do
(
# Run go vet using goflags for each target specified.
#
# Remove any lines go vet or godep outputs with the exit status.
# Remove any lines godep outputs about the vendor experiment.
#
# If go vet fails (produces output), grep will succeed, but if go vet
# succeeds (produces no output) grep will fail. Then we just use
# PIPESTATUS[0] which is go's exit code.
#
# The intended result is that each incantation of this line returns
# either 0 (pass) or 1 (fail).
go vet "${goflags[@]:+${goflags[@]}}" "$i" 2>&1 \
| grep -v -E "exit status|GO15VENDOREXPERIMENT=" \
|| fail=${PIPESTATUS[0]}
exit $fail
) &
pids+=" $!"
done

# Count and return the number of failed files (non-zero is a failed vet run).
failedfiles=0
for p in $pids; do
wait $p || let "failedfiles+=1"
done

exit $failedfiles
go vet "${goflags[@]:+${goflags[@]}}" ${targets[@]}

0 comments on commit af0177e

Please sign in to comment.