internal: remove transportMonitor, replace with callbacks
This refactors the internal http2 transport to use callbacks instead
of continuously monitoring the transport in a separate goroutine. This
has several advantages:
- Less goroutines.
- Less complexity: synchronous callbacks are much easier to reason to
reason about than asynchronous monitoring goroutines.
- Callbacks: these provide definitive locations for monitoring the
creation and closure of a transport, paving the way for GracefulStop.
This CL also consolidates all the logic about backoff and iterating
through the list of addresses into a single method.
- .travis.yml:
- Download dependencies at install time
- Run race and non-race in separate instances
- Use braces around env var names
- vet.sh:
- Run `go mod tidy` to keep it tidy
- Stop filtering transport errors from go/vet output
- Use braces around env var names
- Makefile:
- Reorder alphabetically
- Add "vetdeps" as a dependency of "vet"
- Add "testappengine" to "all"
* Check "x/net/context" with `go vet` like "context"
Includes a signficant revamp of .travis.yml to execute a separate script for
all of the things we check before allowing a merge.
* fix bug in benchmain
* use subtests for the benchmark_test and add it into the Makefile
* benchmark: keep the original benchmark_test as version 16. use subtests benchmark as 17