* Reland x2: Make GetDefaultEventEngine return a shared_ptr * remove thread leak from NativeDNSResolver This is not going to work for resolvers that support cancellation. * give resolvers bounded lifetimes Some resolver own EventEngines. EventEngines cannot run off the end of the process since they have unjoined threads (problematic in a small set of environments). This gives resolvers bounded lifetimes, and allows replacement of resolvers without ASAN issues of deleting resolvers in active use (occurs in tests). * fix * fix windows * fix surface init test * fix * sanitize * use after move * the test must wait for the callback to be destroyed * windows fix: delete the resolver on iomgr shutdown, not before * Make TimerManager threads non-joinable On gRPC shutdown, any unjoined TimerManager threads will cause TSAN to detect thread leaks. This fix resolves issues I saw in end2end test shutdown in another PR, where a single timer manager thread was always alive after the test ended. The long-term solution is to integrate the new ThreadPool here, but this unblocks me for now. * backport fix * fix * shared_ptr<EventEngine> in EventEngine benchmarks |
||
|---|---|---|
| .. | ||
| grpc | ||
| grpc++ | ||
| grpcpp | ||