Delete the EventEngine-driven iomgr implementation (#29654)

This code is not compiled by default and has fallen out of sync with the
rest of the codebase. There's a good chance it won't be used, given our
current work to use an iomgr-drive EventEngine instead.

This code will continue to live in git history, should we need to bring
pieces of it back.
pull/29743/merge
AJ Heller 3 years ago committed by GitHub
parent 944c0b2ce9
commit 1df32ca680
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 31
      BUILD
  2. 24
      CMakeLists.txt
  3. 24
      Makefile
  4. 38
      build_autogenerated.yaml
  5. 13
      config.m4
  6. 13
      config.w32
  7. 14
      gRPC-C++.podspec
  8. 26
      gRPC-Core.podspec
  9. 19
      grpc.gemspec
  10. 24
      grpc.gyp
  11. 15
      include/grpc/impl/codegen/port_platform.h
  12. 19
      package.xml
  13. 31
      src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc
  14. 29
      src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc
  15. 40
      src/core/lib/event_engine/sockaddr.cc
  16. 44
      src/core/lib/event_engine/sockaddr.h
  17. 32
      src/core/lib/iomgr/endpoint_pair_event_engine.cc
  18. 77
      src/core/lib/iomgr/event_engine/closure.cc
  19. 42
      src/core/lib/iomgr/event_engine/closure.h
  20. 173
      src/core/lib/iomgr/event_engine/endpoint.cc
  21. 52
      src/core/lib/iomgr/event_engine/endpoint.h
  22. 85
      src/core/lib/iomgr/event_engine/iomgr.cc
  23. 87
      src/core/lib/iomgr/event_engine/pollset.cc
  24. 25
      src/core/lib/iomgr/event_engine/pollset.h
  25. 51
      src/core/lib/iomgr/event_engine/promise.h
  26. 48
      src/core/lib/iomgr/event_engine/resolved_address_internal.cc
  27. 38
      src/core/lib/iomgr/event_engine/resolved_address_internal.h
  28. 133
      src/core/lib/iomgr/event_engine/resolver.cc
  29. 302
      src/core/lib/iomgr/event_engine/tcp.cc
  30. 62
      src/core/lib/iomgr/event_engine/timer.cc
  31. 10
      src/core/lib/iomgr/port.h
  32. 1
      src/core/lib/iomgr/sockaddr.h
  33. 12
      src/python/grpcio/grpc_core_dependencies.py
  34. 1
      test/core/iomgr/resolve_address_test.cc
  35. 1
      test/core/util/fake_udp_and_tcp_server.cc
  36. 1
      test/cpp/grpclb/grpclb_api_test.cc
  37. 19
      tools/doxygen/Doxyfile.c++.internal
  38. 19
      tools/doxygen/Doxyfile.core.internal

31
BUILD

@ -1949,12 +1949,10 @@ grpc_cc_library(
grpc_cc_library(
name = "grpc_sockaddr",
srcs = [
"src/core/lib/event_engine/sockaddr.cc",
"src/core/lib/iomgr/sockaddr_utils_posix.cc",
"src/core/lib/iomgr/socket_utils_windows.cc",
],
hdrs = [
"src/core/lib/event_engine/sockaddr.h",
"src/core/lib/iomgr/sockaddr.h",
"src/core/lib/iomgr/sockaddr_posix.h",
"src/core/lib/iomgr/sockaddr_windows.h",
@ -2164,14 +2162,12 @@ grpc_cc_library(
"src/core/lib/debug/stats.cc",
"src/core/lib/debug/stats_data.cc",
"src/core/lib/event_engine/channel_args_endpoint_config.cc",
"src/core/lib/event_engine/sockaddr.cc",
"src/core/lib/iomgr/buffer_list.cc",
"src/core/lib/iomgr/call_combiner.cc",
"src/core/lib/iomgr/cfstream_handle.cc",
"src/core/lib/iomgr/dualstack_socket_posix.cc",
"src/core/lib/iomgr/endpoint.cc",
"src/core/lib/iomgr/endpoint_cfstream.cc",
"src/core/lib/iomgr/endpoint_pair_event_engine.cc",
"src/core/lib/iomgr/endpoint_pair_posix.cc",
"src/core/lib/iomgr/endpoint_pair_windows.cc",
"src/core/lib/iomgr/error_cfstream.cc",
@ -2257,24 +2253,12 @@ grpc_cc_library(
"src/core/lib/transport/byte_stream.cc",
"src/core/lib/transport/connectivity_state.cc",
"src/core/lib/transport/error_utils.cc",
"src/core/lib/transport/metadata_batch.cc",
"src/core/lib/transport/parsed_metadata.cc",
"src/core/lib/transport/status_conversion.cc",
"src/core/lib/transport/timeout_encoding.cc",
"src/core/lib/transport/transport.cc",
"src/core/lib/transport/metadata_batch.cc",
"src/core/lib/transport/transport_op_string.cc",
] +
# TODO(hork): delete the iomgr glue code when EventEngine is fully
# integrated, or when it becomes obvious the glue code is unnecessary.
[
"src/core/lib/iomgr/event_engine/closure.cc",
"src/core/lib/iomgr/event_engine/endpoint.cc",
"src/core/lib/iomgr/event_engine/iomgr.cc",
"src/core/lib/iomgr/event_engine/pollset.cc",
"src/core/lib/iomgr/event_engine/resolved_address_internal.cc",
"src/core/lib/iomgr/event_engine/resolver.cc",
"src/core/lib/iomgr/event_engine/tcp.cc",
"src/core/lib/iomgr/event_engine/timer.cc",
],
hdrs = [
"src/core/lib/transport/error_utils.h",
@ -2298,7 +2282,6 @@ grpc_cc_library(
"src/core/lib/debug/stats.h",
"src/core/lib/debug/stats_data.h",
"src/core/lib/event_engine/channel_args_endpoint_config.h",
"src/core/lib/event_engine/sockaddr.h",
"src/core/lib/iomgr/block_annotate.h",
"src/core/lib/iomgr/buffer_list.h",
"src/core/lib/iomgr/call_combiner.h",
@ -2391,16 +2374,6 @@ grpc_cc_library(
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack_builder.h",
] +
# TODO(hork): delete the iomgr glue code when EventEngine is fully
# integrated, or when it becomes obvious the glue code is unnecessary.
[
"src/core/lib/iomgr/event_engine/closure.h",
"src/core/lib/iomgr/event_engine/endpoint.h",
"src/core/lib/iomgr/event_engine/pollset.h",
"src/core/lib/iomgr/event_engine/promise.h",
"src/core/lib/iomgr/event_engine/resolved_address_internal.h",
"src/core/lib/iomgr/event_engine/resolver.h",
],
external_deps = [
"absl/base:core_headers",
@ -4050,11 +4023,9 @@ grpc_cc_library(
name = "grpc_resolver_dns_ares",
srcs = [
"src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc",
"src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc",
"src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc",
"src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc",
"src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc",
"src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc",
"src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc",
"src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc",
],

24
CMakeLists.txt generated

@ -1650,11 +1650,9 @@ add_library(grpc
src/core/ext/filters/client_channel/proxy_mapper_registry.cc
src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc
src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc
@ -2039,7 +2037,6 @@ add_library(grpc
src/core/lib/event_engine/resolved_address.cc
src/core/lib/event_engine/slice.cc
src/core/lib/event_engine/slice_buffer.cc
src/core/lib/event_engine/sockaddr.cc
src/core/lib/event_engine/trace.cc
src/core/lib/gprpp/time.cc
src/core/lib/http/format_request.cc
@ -2053,7 +2050,6 @@ add_library(grpc
src/core/lib/iomgr/dualstack_socket_posix.cc
src/core/lib/iomgr/endpoint.cc
src/core/lib/iomgr/endpoint_cfstream.cc
src/core/lib/iomgr/endpoint_pair_event_engine.cc
src/core/lib/iomgr/endpoint_pair_posix.cc
src/core/lib/iomgr/endpoint_pair_windows.cc
src/core/lib/iomgr/error.cc
@ -2063,14 +2059,6 @@ add_library(grpc
src/core/lib/iomgr/ev_poll_posix.cc
src/core/lib/iomgr/ev_posix.cc
src/core/lib/iomgr/ev_windows.cc
src/core/lib/iomgr/event_engine/closure.cc
src/core/lib/iomgr/event_engine/endpoint.cc
src/core/lib/iomgr/event_engine/iomgr.cc
src/core/lib/iomgr/event_engine/pollset.cc
src/core/lib/iomgr/event_engine/resolved_address_internal.cc
src/core/lib/iomgr/event_engine/resolver.cc
src/core/lib/iomgr/event_engine/tcp.cc
src/core/lib/iomgr/event_engine/timer.cc
src/core/lib/iomgr/exec_ctx.cc
src/core/lib/iomgr/executor.cc
src/core/lib/iomgr/executor/mpmcqueue.cc
@ -2557,11 +2545,9 @@ add_library(grpc_unsecure
src/core/ext/filters/client_channel/proxy_mapper_registry.cc
src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc
src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc
@ -2659,7 +2645,6 @@ add_library(grpc_unsecure
src/core/lib/event_engine/resolved_address.cc
src/core/lib/event_engine/slice.cc
src/core/lib/event_engine/slice_buffer.cc
src/core/lib/event_engine/sockaddr.cc
src/core/lib/event_engine/trace.cc
src/core/lib/gprpp/time.cc
src/core/lib/http/format_request.cc
@ -2672,7 +2657,6 @@ add_library(grpc_unsecure
src/core/lib/iomgr/dualstack_socket_posix.cc
src/core/lib/iomgr/endpoint.cc
src/core/lib/iomgr/endpoint_cfstream.cc
src/core/lib/iomgr/endpoint_pair_event_engine.cc
src/core/lib/iomgr/endpoint_pair_posix.cc
src/core/lib/iomgr/endpoint_pair_windows.cc
src/core/lib/iomgr/error.cc
@ -2682,14 +2666,6 @@ add_library(grpc_unsecure
src/core/lib/iomgr/ev_poll_posix.cc
src/core/lib/iomgr/ev_posix.cc
src/core/lib/iomgr/ev_windows.cc
src/core/lib/iomgr/event_engine/closure.cc
src/core/lib/iomgr/event_engine/endpoint.cc
src/core/lib/iomgr/event_engine/iomgr.cc
src/core/lib/iomgr/event_engine/pollset.cc
src/core/lib/iomgr/event_engine/resolved_address_internal.cc
src/core/lib/iomgr/event_engine/resolver.cc
src/core/lib/iomgr/event_engine/tcp.cc
src/core/lib/iomgr/event_engine/timer.cc
src/core/lib/iomgr/exec_ctx.cc
src/core/lib/iomgr/executor.cc
src/core/lib/iomgr/executor/mpmcqueue.cc

24
Makefile generated

@ -1058,11 +1058,9 @@ LIBGRPC_SRC = \
src/core/ext/filters/client_channel/proxy_mapper_registry.cc \
src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \
src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc \
@ -1447,7 +1445,6 @@ LIBGRPC_SRC = \
src/core/lib/event_engine/resolved_address.cc \
src/core/lib/event_engine/slice.cc \
src/core/lib/event_engine/slice_buffer.cc \
src/core/lib/event_engine/sockaddr.cc \
src/core/lib/event_engine/trace.cc \
src/core/lib/gprpp/time.cc \
src/core/lib/http/format_request.cc \
@ -1461,7 +1458,6 @@ LIBGRPC_SRC = \
src/core/lib/iomgr/dualstack_socket_posix.cc \
src/core/lib/iomgr/endpoint.cc \
src/core/lib/iomgr/endpoint_cfstream.cc \
src/core/lib/iomgr/endpoint_pair_event_engine.cc \
src/core/lib/iomgr/endpoint_pair_posix.cc \
src/core/lib/iomgr/endpoint_pair_windows.cc \
src/core/lib/iomgr/error.cc \
@ -1471,14 +1467,6 @@ LIBGRPC_SRC = \
src/core/lib/iomgr/ev_poll_posix.cc \
src/core/lib/iomgr/ev_posix.cc \
src/core/lib/iomgr/ev_windows.cc \
src/core/lib/iomgr/event_engine/closure.cc \
src/core/lib/iomgr/event_engine/endpoint.cc \
src/core/lib/iomgr/event_engine/iomgr.cc \
src/core/lib/iomgr/event_engine/pollset.cc \
src/core/lib/iomgr/event_engine/resolved_address_internal.cc \
src/core/lib/iomgr/event_engine/resolver.cc \
src/core/lib/iomgr/event_engine/tcp.cc \
src/core/lib/iomgr/event_engine/timer.cc \
src/core/lib/iomgr/exec_ctx.cc \
src/core/lib/iomgr/executor.cc \
src/core/lib/iomgr/executor/mpmcqueue.cc \
@ -1806,11 +1794,9 @@ LIBGRPC_UNSECURE_SRC = \
src/core/ext/filters/client_channel/proxy_mapper_registry.cc \
src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \
src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc \
@ -1908,7 +1894,6 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/event_engine/resolved_address.cc \
src/core/lib/event_engine/slice.cc \
src/core/lib/event_engine/slice_buffer.cc \
src/core/lib/event_engine/sockaddr.cc \
src/core/lib/event_engine/trace.cc \
src/core/lib/gprpp/time.cc \
src/core/lib/http/format_request.cc \
@ -1921,7 +1906,6 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/iomgr/dualstack_socket_posix.cc \
src/core/lib/iomgr/endpoint.cc \
src/core/lib/iomgr/endpoint_cfstream.cc \
src/core/lib/iomgr/endpoint_pair_event_engine.cc \
src/core/lib/iomgr/endpoint_pair_posix.cc \
src/core/lib/iomgr/endpoint_pair_windows.cc \
src/core/lib/iomgr/error.cc \
@ -1931,14 +1915,6 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/iomgr/ev_poll_posix.cc \
src/core/lib/iomgr/ev_posix.cc \
src/core/lib/iomgr/ev_windows.cc \
src/core/lib/iomgr/event_engine/closure.cc \
src/core/lib/iomgr/event_engine/endpoint.cc \
src/core/lib/iomgr/event_engine/iomgr.cc \
src/core/lib/iomgr/event_engine/pollset.cc \
src/core/lib/iomgr/event_engine/resolved_address_internal.cc \
src/core/lib/iomgr/event_engine/resolver.cc \
src/core/lib/iomgr/event_engine/tcp.cc \
src/core/lib/iomgr/event_engine/timer.cc \
src/core/lib/iomgr/exec_ctx.cc \
src/core/lib/iomgr/executor.cc \
src/core/lib/iomgr/executor/mpmcqueue.cc \

@ -729,7 +729,6 @@ libs:
- src/core/lib/event_engine/event_engine_factory.h
- src/core/lib/event_engine/handle_containers.h
- src/core/lib/event_engine/iomgr_engine.h
- src/core/lib/event_engine/sockaddr.h
- src/core/lib/event_engine/trace.h
- src/core/lib/gprpp/atomic_utils.h
- src/core/lib/gprpp/bitset.h
@ -765,12 +764,6 @@ libs:
- src/core/lib/iomgr/ev_epoll1_linux.h
- src/core/lib/iomgr/ev_poll_posix.h
- src/core/lib/iomgr/ev_posix.h
- src/core/lib/iomgr/event_engine/closure.h
- src/core/lib/iomgr/event_engine/endpoint.h
- src/core/lib/iomgr/event_engine/pollset.h
- src/core/lib/iomgr/event_engine/promise.h
- src/core/lib/iomgr/event_engine/resolved_address_internal.h
- src/core/lib/iomgr/event_engine/resolver.h
- src/core/lib/iomgr/exec_ctx.h
- src/core/lib/iomgr/executor.h
- src/core/lib/iomgr/executor/mpmcqueue.h
@ -1022,11 +1015,9 @@ libs:
- src/core/ext/filters/client_channel/proxy_mapper_registry.cc
- src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc
- src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc
@ -1411,7 +1402,6 @@ libs:
- src/core/lib/event_engine/resolved_address.cc
- src/core/lib/event_engine/slice.cc
- src/core/lib/event_engine/slice_buffer.cc
- src/core/lib/event_engine/sockaddr.cc
- src/core/lib/event_engine/trace.cc
- src/core/lib/gprpp/time.cc
- src/core/lib/http/format_request.cc
@ -1425,7 +1415,6 @@ libs:
- src/core/lib/iomgr/dualstack_socket_posix.cc
- src/core/lib/iomgr/endpoint.cc
- src/core/lib/iomgr/endpoint_cfstream.cc
- src/core/lib/iomgr/endpoint_pair_event_engine.cc
- src/core/lib/iomgr/endpoint_pair_posix.cc
- src/core/lib/iomgr/endpoint_pair_windows.cc
- src/core/lib/iomgr/error.cc
@ -1435,14 +1424,6 @@ libs:
- src/core/lib/iomgr/ev_poll_posix.cc
- src/core/lib/iomgr/ev_posix.cc
- src/core/lib/iomgr/ev_windows.cc
- src/core/lib/iomgr/event_engine/closure.cc
- src/core/lib/iomgr/event_engine/endpoint.cc
- src/core/lib/iomgr/event_engine/iomgr.cc
- src/core/lib/iomgr/event_engine/pollset.cc
- src/core/lib/iomgr/event_engine/resolved_address_internal.cc
- src/core/lib/iomgr/event_engine/resolver.cc
- src/core/lib/iomgr/event_engine/tcp.cc
- src/core/lib/iomgr/event_engine/timer.cc
- src/core/lib/iomgr/exec_ctx.cc
- src/core/lib/iomgr/executor.cc
- src/core/lib/iomgr/executor/mpmcqueue.cc
@ -1930,7 +1911,6 @@ libs:
- src/core/lib/event_engine/event_engine_factory.h
- src/core/lib/event_engine/handle_containers.h
- src/core/lib/event_engine/iomgr_engine.h
- src/core/lib/event_engine/sockaddr.h
- src/core/lib/event_engine/trace.h
- src/core/lib/gprpp/atomic_utils.h
- src/core/lib/gprpp/bitset.h
@ -1965,12 +1945,6 @@ libs:
- src/core/lib/iomgr/ev_epoll1_linux.h
- src/core/lib/iomgr/ev_poll_posix.h
- src/core/lib/iomgr/ev_posix.h
- src/core/lib/iomgr/event_engine/closure.h
- src/core/lib/iomgr/event_engine/endpoint.h
- src/core/lib/iomgr/event_engine/pollset.h
- src/core/lib/iomgr/event_engine/promise.h
- src/core/lib/iomgr/event_engine/resolved_address_internal.h
- src/core/lib/iomgr/event_engine/resolver.h
- src/core/lib/iomgr/exec_ctx.h
- src/core/lib/iomgr/executor.h
- src/core/lib/iomgr/executor/mpmcqueue.h
@ -2163,11 +2137,9 @@ libs:
- src/core/ext/filters/client_channel/proxy_mapper_registry.cc
- src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc
- src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc
- src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc
@ -2265,7 +2237,6 @@ libs:
- src/core/lib/event_engine/resolved_address.cc
- src/core/lib/event_engine/slice.cc
- src/core/lib/event_engine/slice_buffer.cc
- src/core/lib/event_engine/sockaddr.cc
- src/core/lib/event_engine/trace.cc
- src/core/lib/gprpp/time.cc
- src/core/lib/http/format_request.cc
@ -2278,7 +2249,6 @@ libs:
- src/core/lib/iomgr/dualstack_socket_posix.cc
- src/core/lib/iomgr/endpoint.cc
- src/core/lib/iomgr/endpoint_cfstream.cc
- src/core/lib/iomgr/endpoint_pair_event_engine.cc
- src/core/lib/iomgr/endpoint_pair_posix.cc
- src/core/lib/iomgr/endpoint_pair_windows.cc
- src/core/lib/iomgr/error.cc
@ -2288,14 +2258,6 @@ libs:
- src/core/lib/iomgr/ev_poll_posix.cc
- src/core/lib/iomgr/ev_posix.cc
- src/core/lib/iomgr/ev_windows.cc
- src/core/lib/iomgr/event_engine/closure.cc
- src/core/lib/iomgr/event_engine/endpoint.cc
- src/core/lib/iomgr/event_engine/iomgr.cc
- src/core/lib/iomgr/event_engine/pollset.cc
- src/core/lib/iomgr/event_engine/resolved_address_internal.cc
- src/core/lib/iomgr/event_engine/resolver.cc
- src/core/lib/iomgr/event_engine/tcp.cc
- src/core/lib/iomgr/event_engine/timer.cc
- src/core/lib/iomgr/exec_ctx.cc
- src/core/lib/iomgr/executor.cc
- src/core/lib/iomgr/executor/mpmcqueue.cc

13
config.m4 generated

@ -80,11 +80,9 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/filters/client_channel/proxy_mapper_registry.cc \
src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \
src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc \
@ -469,7 +467,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/event_engine/resolved_address.cc \
src/core/lib/event_engine/slice.cc \
src/core/lib/event_engine/slice_buffer.cc \
src/core/lib/event_engine/sockaddr.cc \
src/core/lib/event_engine/trace.cc \
src/core/lib/gpr/alloc.cc \
src/core/lib/gpr/atm.cc \
@ -525,7 +522,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/iomgr/dualstack_socket_posix.cc \
src/core/lib/iomgr/endpoint.cc \
src/core/lib/iomgr/endpoint_cfstream.cc \
src/core/lib/iomgr/endpoint_pair_event_engine.cc \
src/core/lib/iomgr/endpoint_pair_posix.cc \
src/core/lib/iomgr/endpoint_pair_windows.cc \
src/core/lib/iomgr/error.cc \
@ -535,14 +531,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/iomgr/ev_poll_posix.cc \
src/core/lib/iomgr/ev_posix.cc \
src/core/lib/iomgr/ev_windows.cc \
src/core/lib/iomgr/event_engine/closure.cc \
src/core/lib/iomgr/event_engine/endpoint.cc \
src/core/lib/iomgr/event_engine/iomgr.cc \
src/core/lib/iomgr/event_engine/pollset.cc \
src/core/lib/iomgr/event_engine/resolved_address_internal.cc \
src/core/lib/iomgr/event_engine/resolver.cc \
src/core/lib/iomgr/event_engine/tcp.cc \
src/core/lib/iomgr/event_engine/timer.cc \
src/core/lib/iomgr/exec_ctx.cc \
src/core/lib/iomgr/executor.cc \
src/core/lib/iomgr/executor/mpmcqueue.cc \
@ -1313,7 +1301,6 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/http)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/iomgr)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/iomgr/event_engine)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/iomgr/executor)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/json)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/matchers)

13
config.w32 generated

@ -46,11 +46,9 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\filters\\client_channel\\proxy_mapper_registry.cc " +
"src\\core\\ext\\filters\\client_channel\\resolver\\binder\\binder_resolver.cc " +
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\dns_resolver_ares.cc " +
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_event_engine.cc " +
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_posix.cc " +
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_windows.cc " +
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_wrapper.cc " +
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_wrapper_event_engine.cc " +
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_wrapper_posix.cc " +
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_wrapper_windows.cc " +
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\dns_resolver_selection.cc " +
@ -435,7 +433,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\event_engine\\resolved_address.cc " +
"src\\core\\lib\\event_engine\\slice.cc " +
"src\\core\\lib\\event_engine\\slice_buffer.cc " +
"src\\core\\lib\\event_engine\\sockaddr.cc " +
"src\\core\\lib\\event_engine\\trace.cc " +
"src\\core\\lib\\gpr\\alloc.cc " +
"src\\core\\lib\\gpr\\atm.cc " +
@ -491,7 +488,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\iomgr\\dualstack_socket_posix.cc " +
"src\\core\\lib\\iomgr\\endpoint.cc " +
"src\\core\\lib\\iomgr\\endpoint_cfstream.cc " +
"src\\core\\lib\\iomgr\\endpoint_pair_event_engine.cc " +
"src\\core\\lib\\iomgr\\endpoint_pair_posix.cc " +
"src\\core\\lib\\iomgr\\endpoint_pair_windows.cc " +
"src\\core\\lib\\iomgr\\error.cc " +
@ -501,14 +497,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\iomgr\\ev_poll_posix.cc " +
"src\\core\\lib\\iomgr\\ev_posix.cc " +
"src\\core\\lib\\iomgr\\ev_windows.cc " +
"src\\core\\lib\\iomgr\\event_engine\\closure.cc " +
"src\\core\\lib\\iomgr\\event_engine\\endpoint.cc " +
"src\\core\\lib\\iomgr\\event_engine\\iomgr.cc " +
"src\\core\\lib\\iomgr\\event_engine\\pollset.cc " +
"src\\core\\lib\\iomgr\\event_engine\\resolved_address_internal.cc " +
"src\\core\\lib\\iomgr\\event_engine\\resolver.cc " +
"src\\core\\lib\\iomgr\\event_engine\\tcp.cc " +
"src\\core\\lib\\iomgr\\event_engine\\timer.cc " +
"src\\core\\lib\\iomgr\\exec_ctx.cc " +
"src\\core\\lib\\iomgr\\executor.cc " +
"src\\core\\lib\\iomgr\\executor\\mpmcqueue.cc " +
@ -1432,7 +1420,6 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\http");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\iomgr");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\iomgr\\event_engine");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\iomgr\\executor");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\json");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\matchers");

14
gRPC-C++.podspec generated

@ -670,7 +670,6 @@ Pod::Spec.new do |s|
'src/core/lib/event_engine/event_engine_factory.h',
'src/core/lib/event_engine/handle_containers.h',
'src/core/lib/event_engine/iomgr_engine.h',
'src/core/lib/event_engine/sockaddr.h',
'src/core/lib/event_engine/trace.h',
'src/core/lib/gpr/alloc.h',
'src/core/lib/gpr/env.h',
@ -733,12 +732,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/ev_epoll1_linux.h',
'src/core/lib/iomgr/ev_poll_posix.h',
'src/core/lib/iomgr/ev_posix.h',
'src/core/lib/iomgr/event_engine/closure.h',
'src/core/lib/iomgr/event_engine/endpoint.h',
'src/core/lib/iomgr/event_engine/pollset.h',
'src/core/lib/iomgr/event_engine/promise.h',
'src/core/lib/iomgr/event_engine/resolved_address_internal.h',
'src/core/lib/iomgr/event_engine/resolver.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
'src/core/lib/iomgr/executor/mpmcqueue.h',
@ -1490,7 +1483,6 @@ Pod::Spec.new do |s|
'src/core/lib/event_engine/event_engine_factory.h',
'src/core/lib/event_engine/handle_containers.h',
'src/core/lib/event_engine/iomgr_engine.h',
'src/core/lib/event_engine/sockaddr.h',
'src/core/lib/event_engine/trace.h',
'src/core/lib/gpr/alloc.h',
'src/core/lib/gpr/env.h',
@ -1553,12 +1545,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/ev_epoll1_linux.h',
'src/core/lib/iomgr/ev_poll_posix.h',
'src/core/lib/iomgr/ev_posix.h',
'src/core/lib/iomgr/event_engine/closure.h',
'src/core/lib/iomgr/event_engine/endpoint.h',
'src/core/lib/iomgr/event_engine/pollset.h',
'src/core/lib/iomgr/event_engine/promise.h',
'src/core/lib/iomgr/event_engine/resolved_address_internal.h',
'src/core/lib/iomgr/event_engine/resolver.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
'src/core/lib/iomgr/executor/mpmcqueue.h',

26
gRPC-Core.podspec generated

@ -270,12 +270,10 @@ Pod::Spec.new do |s|
'src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc',
'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc',
@ -1040,8 +1038,6 @@ Pod::Spec.new do |s|
'src/core/lib/event_engine/resolved_address.cc',
'src/core/lib/event_engine/slice.cc',
'src/core/lib/event_engine/slice_buffer.cc',
'src/core/lib/event_engine/sockaddr.cc',
'src/core/lib/event_engine/sockaddr.h',
'src/core/lib/event_engine/trace.cc',
'src/core/lib/event_engine/trace.h',
'src/core/lib/gpr/alloc.cc',
@ -1152,7 +1148,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/endpoint_cfstream.cc',
'src/core/lib/iomgr/endpoint_cfstream.h',
'src/core/lib/iomgr/endpoint_pair.h',
'src/core/lib/iomgr/endpoint_pair_event_engine.cc',
'src/core/lib/iomgr/endpoint_pair_posix.cc',
'src/core/lib/iomgr/endpoint_pair_windows.cc',
'src/core/lib/iomgr/error.cc',
@ -1169,20 +1164,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/ev_posix.cc',
'src/core/lib/iomgr/ev_posix.h',
'src/core/lib/iomgr/ev_windows.cc',
'src/core/lib/iomgr/event_engine/closure.cc',
'src/core/lib/iomgr/event_engine/closure.h',
'src/core/lib/iomgr/event_engine/endpoint.cc',
'src/core/lib/iomgr/event_engine/endpoint.h',
'src/core/lib/iomgr/event_engine/iomgr.cc',
'src/core/lib/iomgr/event_engine/pollset.cc',
'src/core/lib/iomgr/event_engine/pollset.h',
'src/core/lib/iomgr/event_engine/promise.h',
'src/core/lib/iomgr/event_engine/resolved_address_internal.cc',
'src/core/lib/iomgr/event_engine/resolved_address_internal.h',
'src/core/lib/iomgr/event_engine/resolver.cc',
'src/core/lib/iomgr/event_engine/resolver.h',
'src/core/lib/iomgr/event_engine/tcp.cc',
'src/core/lib/iomgr/event_engine/timer.cc',
'src/core/lib/iomgr/exec_ctx.cc',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.cc',
@ -2103,7 +2084,6 @@ Pod::Spec.new do |s|
'src/core/lib/event_engine/event_engine_factory.h',
'src/core/lib/event_engine/handle_containers.h',
'src/core/lib/event_engine/iomgr_engine.h',
'src/core/lib/event_engine/sockaddr.h',
'src/core/lib/event_engine/trace.h',
'src/core/lib/gpr/alloc.h',
'src/core/lib/gpr/env.h',
@ -2166,12 +2146,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/ev_epoll1_linux.h',
'src/core/lib/iomgr/ev_poll_posix.h',
'src/core/lib/iomgr/ev_posix.h',
'src/core/lib/iomgr/event_engine/closure.h',
'src/core/lib/iomgr/event_engine/endpoint.h',
'src/core/lib/iomgr/event_engine/pollset.h',
'src/core/lib/iomgr/event_engine/promise.h',
'src/core/lib/iomgr/event_engine/resolved_address_internal.h',
'src/core/lib/iomgr/event_engine/resolver.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
'src/core/lib/iomgr/executor/mpmcqueue.h',

19
grpc.gemspec generated

@ -183,12 +183,10 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc )
s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc )
s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h )
s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc )
s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc )
s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc )
s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc )
s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h )
s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc )
s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc )
s.files += %w( src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc )
s.files += %w( src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc )
@ -953,8 +951,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/event_engine/resolved_address.cc )
s.files += %w( src/core/lib/event_engine/slice.cc )
s.files += %w( src/core/lib/event_engine/slice_buffer.cc )
s.files += %w( src/core/lib/event_engine/sockaddr.cc )
s.files += %w( src/core/lib/event_engine/sockaddr.h )
s.files += %w( src/core/lib/event_engine/trace.cc )
s.files += %w( src/core/lib/event_engine/trace.h )
s.files += %w( src/core/lib/gpr/alloc.cc )
@ -1065,7 +1061,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/endpoint_cfstream.cc )
s.files += %w( src/core/lib/iomgr/endpoint_cfstream.h )
s.files += %w( src/core/lib/iomgr/endpoint_pair.h )
s.files += %w( src/core/lib/iomgr/endpoint_pair_event_engine.cc )
s.files += %w( src/core/lib/iomgr/endpoint_pair_posix.cc )
s.files += %w( src/core/lib/iomgr/endpoint_pair_windows.cc )
s.files += %w( src/core/lib/iomgr/error.cc )
@ -1082,20 +1077,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/ev_posix.cc )
s.files += %w( src/core/lib/iomgr/ev_posix.h )
s.files += %w( src/core/lib/iomgr/ev_windows.cc )
s.files += %w( src/core/lib/iomgr/event_engine/closure.cc )
s.files += %w( src/core/lib/iomgr/event_engine/closure.h )
s.files += %w( src/core/lib/iomgr/event_engine/endpoint.cc )
s.files += %w( src/core/lib/iomgr/event_engine/endpoint.h )
s.files += %w( src/core/lib/iomgr/event_engine/iomgr.cc )
s.files += %w( src/core/lib/iomgr/event_engine/pollset.cc )
s.files += %w( src/core/lib/iomgr/event_engine/pollset.h )
s.files += %w( src/core/lib/iomgr/event_engine/promise.h )
s.files += %w( src/core/lib/iomgr/event_engine/resolved_address_internal.cc )
s.files += %w( src/core/lib/iomgr/event_engine/resolved_address_internal.h )
s.files += %w( src/core/lib/iomgr/event_engine/resolver.cc )
s.files += %w( src/core/lib/iomgr/event_engine/resolver.h )
s.files += %w( src/core/lib/iomgr/event_engine/tcp.cc )
s.files += %w( src/core/lib/iomgr/event_engine/timer.cc )
s.files += %w( src/core/lib/iomgr/exec_ctx.cc )
s.files += %w( src/core/lib/iomgr/exec_ctx.h )
s.files += %w( src/core/lib/iomgr/executor.cc )

24
grpc.gyp generated

@ -415,11 +415,9 @@
'src/core/ext/filters/client_channel/proxy_mapper_registry.cc',
'src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc',
'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc',
@ -804,7 +802,6 @@
'src/core/lib/event_engine/resolved_address.cc',
'src/core/lib/event_engine/slice.cc',
'src/core/lib/event_engine/slice_buffer.cc',
'src/core/lib/event_engine/sockaddr.cc',
'src/core/lib/event_engine/trace.cc',
'src/core/lib/gprpp/time.cc',
'src/core/lib/http/format_request.cc',
@ -818,7 +815,6 @@
'src/core/lib/iomgr/dualstack_socket_posix.cc',
'src/core/lib/iomgr/endpoint.cc',
'src/core/lib/iomgr/endpoint_cfstream.cc',
'src/core/lib/iomgr/endpoint_pair_event_engine.cc',
'src/core/lib/iomgr/endpoint_pair_posix.cc',
'src/core/lib/iomgr/endpoint_pair_windows.cc',
'src/core/lib/iomgr/error.cc',
@ -828,14 +824,6 @@
'src/core/lib/iomgr/ev_poll_posix.cc',
'src/core/lib/iomgr/ev_posix.cc',
'src/core/lib/iomgr/ev_windows.cc',
'src/core/lib/iomgr/event_engine/closure.cc',
'src/core/lib/iomgr/event_engine/endpoint.cc',
'src/core/lib/iomgr/event_engine/iomgr.cc',
'src/core/lib/iomgr/event_engine/pollset.cc',
'src/core/lib/iomgr/event_engine/resolved_address_internal.cc',
'src/core/lib/iomgr/event_engine/resolver.cc',
'src/core/lib/iomgr/event_engine/tcp.cc',
'src/core/lib/iomgr/event_engine/timer.cc',
'src/core/lib/iomgr/exec_ctx.cc',
'src/core/lib/iomgr/executor.cc',
'src/core/lib/iomgr/executor/mpmcqueue.cc',
@ -1172,11 +1160,9 @@
'src/core/ext/filters/client_channel/proxy_mapper_registry.cc',
'src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc',
'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc',
@ -1274,7 +1260,6 @@
'src/core/lib/event_engine/resolved_address.cc',
'src/core/lib/event_engine/slice.cc',
'src/core/lib/event_engine/slice_buffer.cc',
'src/core/lib/event_engine/sockaddr.cc',
'src/core/lib/event_engine/trace.cc',
'src/core/lib/gprpp/time.cc',
'src/core/lib/http/format_request.cc',
@ -1287,7 +1272,6 @@
'src/core/lib/iomgr/dualstack_socket_posix.cc',
'src/core/lib/iomgr/endpoint.cc',
'src/core/lib/iomgr/endpoint_cfstream.cc',
'src/core/lib/iomgr/endpoint_pair_event_engine.cc',
'src/core/lib/iomgr/endpoint_pair_posix.cc',
'src/core/lib/iomgr/endpoint_pair_windows.cc',
'src/core/lib/iomgr/error.cc',
@ -1297,14 +1281,6 @@
'src/core/lib/iomgr/ev_poll_posix.cc',
'src/core/lib/iomgr/ev_posix.cc',
'src/core/lib/iomgr/ev_windows.cc',
'src/core/lib/iomgr/event_engine/closure.cc',
'src/core/lib/iomgr/event_engine/endpoint.cc',
'src/core/lib/iomgr/event_engine/iomgr.cc',
'src/core/lib/iomgr/event_engine/pollset.cc',
'src/core/lib/iomgr/event_engine/resolved_address_internal.cc',
'src/core/lib/iomgr/event_engine/resolver.cc',
'src/core/lib/iomgr/event_engine/tcp.cc',
'src/core/lib/iomgr/event_engine/timer.cc',
'src/core/lib/iomgr/exec_ctx.cc',
'src/core/lib/iomgr/executor.cc',
'src/core/lib/iomgr/executor/mpmcqueue.cc',

@ -719,21 +719,6 @@ extern void gpr_unreachable_code(const char* reason, const char* file,
#define __STDC_FORMAT_MACROS
#endif
/* Selectively enable EventEngine on specific platforms. This default can be
* overridden using the GRPC_USE_EVENT_ENGINE compiler flag.
*/
#ifndef GRPC_USE_EVENT_ENGINE
/* Not enabled by default on any platforms yet. (2021.06) */
#elif GRPC_USE_EVENT_ENGINE == 0
/* Building with `-DGRPC_USE_EVENT_ENGINE=0` will override the default. */
#undef GRPC_USE_EVENT_ENGINE
#endif /* GRPC_USE_EVENT_ENGINE */
#ifdef GRPC_USE_EVENT_ENGINE
#undef GPR_SUPPORT_CHANNELS_FROM_FD
#define GRPC_ARES 0
#endif /* GRPC_USE_EVENT_ENGINE */
#define GRPC_CALLBACK_API_NONEXPERIMENTAL
/* clang 11 with msan miscompiles destruction of [[no_unique_address]] members

19
package.xml generated

@ -165,12 +165,10 @@
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc" role="src" />
@ -935,8 +933,6 @@
<file baseinstalldir="/" name="src/core/lib/event_engine/resolved_address.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/event_engine/slice.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/event_engine/slice_buffer.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/event_engine/sockaddr.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/event_engine/sockaddr.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/event_engine/trace.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/event_engine/trace.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/gpr/alloc.cc" role="src" />
@ -1047,7 +1043,6 @@
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_cfstream.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_cfstream.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_event_engine.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_posix.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_windows.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/error.cc" role="src" />
@ -1064,20 +1059,6 @@
<file baseinstalldir="/" name="src/core/lib/iomgr/ev_posix.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/ev_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/ev_windows.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/closure.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/closure.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/endpoint.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/endpoint.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/iomgr.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/pollset.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/pollset.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/promise.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/resolved_address_internal.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/resolved_address_internal.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/resolver.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/resolver.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/tcp.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/event_engine/timer.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/exec_ctx.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/exec_ctx.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/executor.cc" role="src" />

@ -1,31 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#include "src/core/lib/iomgr/port.h" // IWYU pragma: keep
#if GRPC_ARES == 1 && defined(GRPC_USE_EVENT_ENGINE)
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h"
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h"
namespace grpc_core {
std::unique_ptr<GrpcPolledFdFactory> NewGrpcPolledFdFactory(
std::shared_ptr<WorkSerializer> /* work_serializer */) {
return nullptr;
}
} // namespace grpc_core
#endif /* GRPC_ARES == 1 && defined(GRPC_USE_EVENT_ENGINE) */

@ -1,29 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#include "src/core/lib/iomgr/port.h" // IWYU pragma: keep
#if GRPC_ARES == 1 && defined(GRPC_USE_EVENT_ENGINE)
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h"
bool grpc_ares_query_ipv6() {
/* The libuv grpc code currently does not have the code to probe for this,
* so we assume for now that IPv6 is always available in contexts where this
* code will be used. */
return true;
}
#endif /* GRPC_ARES == 1 && defined(GRPC_USE_EVENT_ENGINE) */

@ -1,40 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
#include <string.h>
#include <grpc/event_engine/event_engine.h>
#include <grpc/event_engine/port.h>
#include <grpc/support/log.h>
uint16_t grpc_htons(uint16_t hostshort) { return htons(hostshort); }
uint16_t grpc_ntohs(uint16_t netshort) { return ntohs(netshort); }
uint32_t grpc_htonl(uint32_t hostlong) { return htonl(hostlong); }
uint32_t grpc_ntohl(uint32_t netlong) { return ntohl(netlong); }
int grpc_inet_pton(int af, const char* src, void* dst) {
return inet_pton(af, src, dst);
}
const char* grpc_inet_ntop(int af, const void* src, char* dst, size_t size) {
inet_ntop(af, src, dst, size);
return dst;
}
#endif // GRPC_USE_EVENT_ENGINE

@ -1,44 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef GRPC_CORE_LIB_EVENT_ENGINE_SOCKADDR_H
#define GRPC_CORE_LIB_EVENT_ENGINE_SOCKADDR_H
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
#include <grpc/event_engine/port.h>
#include "src/core/lib/iomgr/port.h"
typedef struct sockaddr grpc_sockaddr;
typedef struct sockaddr_in grpc_sockaddr_in;
typedef struct sockaddr_in6 grpc_sockaddr_in6;
typedef struct in_addr grpc_in_addr;
typedef struct in6_addr grpc_in6_addr;
#define GRPC_INET_ADDRSTRLEN INET_ADDRSTRLEN
#define GRPC_INET6_ADDRSTRLEN INET6_ADDRSTRLEN
#define GRPC_SOCK_STREAM SOCK_STREAM
#define GRPC_SOCK_DGRAM SOCK_DGRAM
#define GRPC_AF_UNSPEC AF_UNSPEC
#define GRPC_AF_UNIX AF_UNIX
#define GRPC_AF_INET AF_INET
#define GRPC_AF_INET6 AF_INET6
#define GRPC_AI_PASSIVE AI_PASSIVE
#endif
#endif // GRPC_CORE_LIB_EVENT_ENGINE_SOCKADDR_H

@ -1,32 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
#include <stdlib.h>
#include <grpc/support/log.h>
#include "src/core/lib/iomgr/endpoint_pair.h"
#include "src/core/lib/iomgr/port.h"
grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(
const char* /* name */, grpc_channel_args* /* args */) {
// TODO(hork): determine what's needed here in the long run
GPR_ASSERT(
false &&
"grpc_iomgr_create_endpoint_pair is not suppoted with event_engine");
}
#endif // GRPC_USE_EVENT_ENGINE

@ -1,77 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
#include <grpc/event_engine/event_engine.h>
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/event_engine/closure.h"
#include "src/core/lib/iomgr/event_engine/pollset.h"
#include "src/core/lib/transport/error_utils.h"
namespace grpc_event_engine {
namespace experimental {
namespace {
void RunClosure(grpc_closure* closure, grpc_error_handle error) {
GPR_ASSERT(closure != nullptr);
#ifndef NDEBUG
closure->scheduled = false;
if (grpc_trace_closure.enabled()) {
gpr_log(GPR_DEBUG,
"EventEngine: running closure %p: created [%s:%d]: %s [%s:%d]",
closure, closure->file_created, closure->line_created,
closure->run ? "run" : "scheduled", closure->file_initiated,
closure->line_initiated);
}
#endif
closure->cb(closure->cb_arg, error);
#ifndef NDEBUG
if (grpc_trace_closure.enabled()) {
gpr_log(GPR_DEBUG, "EventEngine: closure %p finished", closure);
}
#endif
}
} // namespace
std::function<void(absl::Status)> GrpcClosureToStatusCallback(
grpc_closure* closure) {
return [closure](absl::Status status) {
RunClosure(closure, absl_status_to_grpc_error(status));
grpc_pollset_ee_broadcast_event();
};
}
std::function<void()> GrpcClosureToCallback(grpc_closure* closure) {
return [closure]() {
RunClosure(closure, GRPC_ERROR_NONE);
grpc_pollset_ee_broadcast_event();
};
}
std::function<void()> GrpcClosureToCallback(grpc_closure* closure,
grpc_error_handle error) {
return [closure, error]() {
RunClosure(closure, error);
grpc_pollset_ee_broadcast_event();
};
}
} // namespace experimental
} // namespace grpc_event_engine
#endif // GRPC_USE_EVENT_ENGINE

@ -1,42 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_CLOSURE_H
#define GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_CLOSURE_H
#include <grpc/support/port_platform.h>
#include <grpc/event_engine/event_engine.h>
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
namespace grpc_event_engine {
namespace experimental {
/// Creates a callback that takes an error status argument.
std::function<void(absl::Status)> GrpcClosureToStatusCallback(
grpc_closure* closure);
/// Create a callback that *does not* take an error status argument.
std::function<void()> GrpcClosureToCallback(grpc_closure* closure);
/// Creates a callback that *does not* take an error status argument.
/// This version has a pre-bound error.
std::function<void()> GrpcClosureToCallback(grpc_closure* closure,
grpc_error_handle error);
} // namespace experimental
} // namespace grpc_event_engine
#endif // GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_CLOSURE_H

@ -1,173 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
#include "absl/strings/string_view.h"
#include <grpc/event_engine/event_engine.h>
#include <grpc/slice.h>
#include <grpc/slice_buffer.h>
#include <grpc/support/time.h>
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/iomgr/endpoint.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/event_engine/closure.h"
#include "src/core/lib/iomgr/event_engine/endpoint.h"
#include "src/core/lib/iomgr/event_engine/pollset.h"
#include "src/core/lib/iomgr/pollset.h"
#include "src/core/lib/iomgr/pollset_set.h"
#include "src/core/lib/iomgr/resource_quota.h"
#include "src/core/lib/transport/error_utils.h"
extern grpc_core::TraceFlag grpc_tcp_trace;
namespace {
using ::grpc_event_engine::experimental::EventEngine;
using ::grpc_event_engine::experimental::ResolvedAddressToURI;
using ::grpc_event_engine::experimental::SliceBuffer;
void endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* slices,
grpc_closure* cb, bool /* urgent */,
int /* min_progress_size */) {
auto* eeep = reinterpret_cast<grpc_event_engine_endpoint*>(ep);
if (eeep->endpoint == nullptr) {
grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, GRPC_ERROR_CANCELLED);
return;
}
SliceBuffer* read_buffer = new (&eeep->read_buffer) SliceBuffer(slices);
eeep->endpoint->Read(
[eeep, cb](absl::Status status) {
auto* read_buffer = reinterpret_cast<SliceBuffer*>(&eeep->read_buffer);
read_buffer->~SliceBuffer();
grpc_core::ExecCtx exec_ctx;
grpc_core::Closure::Run(DEBUG_LOCATION, cb,
absl_status_to_grpc_error(status));
exec_ctx.Flush();
grpc_pollset_ee_broadcast_event();
},
read_buffer);
}
void endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
grpc_closure* cb, void* arg, int /*max_frame_size*/) {
// TODO(hork): adapt arg to some metrics collection mechanism.
(void)arg;
auto* eeep = reinterpret_cast<grpc_event_engine_endpoint*>(ep);
if (eeep->endpoint == nullptr) {
grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, GRPC_ERROR_CANCELLED);
return;
}
SliceBuffer* write_buffer = new (&eeep->write_buffer) SliceBuffer(slices);
eeep->endpoint->Write(
[eeep, cb](absl::Status status) {
auto* write_buffer =
reinterpret_cast<SliceBuffer*>(&eeep->write_buffer);
write_buffer->~SliceBuffer();
grpc_core::ExecCtx exec_ctx;
grpc_core::Closure::Run(DEBUG_LOCATION, cb,
absl_status_to_grpc_error(status));
exec_ctx.Flush();
grpc_pollset_ee_broadcast_event();
},
write_buffer);
}
void endpoint_add_to_pollset(grpc_endpoint* /* ep */,
grpc_pollset* /* pollset */) {}
void endpoint_add_to_pollset_set(grpc_endpoint* /* ep */,
grpc_pollset_set* /* pollset */) {}
void endpoint_delete_from_pollset_set(grpc_endpoint* /* ep */,
grpc_pollset_set* /* pollset */) {}
/// After shutdown, all endpoint operations except destroy are no-op,
/// and will return some kind of sane default (empty strings, nullptrs, etc). It
/// is the caller's responsibility to ensure that calls to endpoint_shutdown are
/// synchronized.
void endpoint_shutdown(grpc_endpoint* ep, grpc_error_handle why) {
auto* eeep = reinterpret_cast<grpc_event_engine_endpoint*>(ep);
if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
std::string str = grpc_error_std_string(why);
gpr_log(GPR_INFO, "TCP Endpoint %p shutdown why=%s", eeep->endpoint.get(),
str.c_str());
}
eeep->endpoint.reset();
}
void endpoint_destroy(grpc_endpoint* ep) {
auto* eeep = reinterpret_cast<grpc_event_engine_endpoint*>(ep);
delete eeep;
}
absl::string_view endpoint_get_peer(grpc_endpoint* ep) {
auto* eeep = reinterpret_cast<grpc_event_engine_endpoint*>(ep);
if (eeep->endpoint == nullptr) {
return "";
}
if (eeep->peer_address.empty()) {
const EventEngine::ResolvedAddress& addr = eeep->endpoint->GetPeerAddress();
eeep->peer_address = ResolvedAddressToURI(addr).value();
}
return eeep->peer_address;
}
absl::string_view endpoint_get_local_address(grpc_endpoint* ep) {
auto* eeep = reinterpret_cast<grpc_event_engine_endpoint*>(ep);
if (eeep->endpoint == nullptr) {
return "";
}
if (eeep->local_address.empty()) {
const EventEngine::ResolvedAddress& addr =
eeep->endpoint->GetLocalAddress();
eeep->local_address = ResolvedAddressToURI(addr).value();
}
return eeep->local_address;
}
int endpoint_get_fd(grpc_endpoint* /* ep */) { return -1; }
bool endpoint_can_track_err(grpc_endpoint* /* ep */) { return false; }
grpc_endpoint_vtable grpc_event_engine_endpoint_vtable = {
endpoint_read,
endpoint_write,
endpoint_add_to_pollset,
endpoint_add_to_pollset_set,
endpoint_delete_from_pollset_set,
endpoint_shutdown,
endpoint_destroy,
endpoint_get_peer,
endpoint_get_local_address,
endpoint_get_fd,
endpoint_can_track_err};
} // namespace
grpc_event_engine_endpoint* grpc_tcp_server_endpoint_create(
std::unique_ptr<EventEngine::Endpoint> ee_endpoint) {
auto endpoint = new grpc_event_engine_endpoint;
endpoint->base.vtable = &grpc_event_engine_endpoint_vtable;
endpoint->endpoint = std::move(ee_endpoint);
return endpoint;
}
grpc_endpoint* grpc_tcp_create(const grpc_channel_args* /* channel_args */,
absl::string_view /* peer_address */) {
auto endpoint = new grpc_event_engine_endpoint;
endpoint->base.vtable = &grpc_event_engine_endpoint_vtable;
return &endpoint->base;
}
#endif // GRPC_USE_EVENT_ENGINE

@ -1,52 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_ENDPOINT_H
#define GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_ENDPOINT_H
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
#include <grpc/event_engine/event_engine.h>
#include "src/core/lib/iomgr/endpoint.h"
#include "src/core/lib/iomgr/resource_quota.h"
struct grpc_event_engine_endpoint {
grpc_endpoint base;
std::unique_ptr<grpc_event_engine::experimental::EventEngine::Endpoint>
endpoint;
std::string peer_address;
std::string local_address;
std::aligned_storage<
sizeof(grpc_event_engine::experimental::SliceBuffer),
alignof(grpc_event_engine::experimental::SliceBuffer)>::type read_buffer;
std::aligned_storage<
sizeof(grpc_event_engine::experimental::SliceBuffer),
alignof(grpc_event_engine::experimental::SliceBuffer)>::type write_buffer;
};
/// Creates an internal grpc_endpoint struct from an EventEngine Endpoint.
/// Server code needs to create grpc_endpoints after the EventEngine has made
/// connections.
grpc_event_engine_endpoint* grpc_tcp_server_endpoint_create(
std::unique_ptr<grpc_event_engine::experimental::EventEngine::Endpoint> ee);
/// Creates a new internal grpc_endpoint struct, when no EventEngine Endpoint
/// has yet been created. This is used in client code before connections are
/// established. Takes ownership of the slice_allocator.
grpc_endpoint* grpc_tcp_create(const grpc_channel_args* channel_args,
absl::string_view peer_address);
#endif
#endif // GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_ENDPOINT_H

@ -1,85 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
#include <grpc/event_engine/event_engine.h>
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/event_engine/resolver.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include "src/core/lib/iomgr/tcp_client.h"
#include "src/core/lib/iomgr/tcp_server.h"
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/surface/init.h"
extern grpc_tcp_client_vtable grpc_event_engine_tcp_client_vtable;
extern grpc_tcp_server_vtable grpc_event_engine_tcp_server_vtable;
extern grpc_timer_vtable grpc_event_engine_timer_vtable;
extern grpc_pollset_vtable grpc_event_engine_pollset_vtable;
extern grpc_pollset_set_vtable grpc_event_engine_pollset_set_vtable;
// Disabled by default. grpc_polling_trace must be defined in all iomgr
// implementations due to its usage in lockfree_event.
grpc_core::DebugOnlyTraceFlag grpc_polling_trace(false, "polling");
namespace {
using ::grpc_event_engine::experimental::EventEngine;
using ::grpc_event_engine::experimental::GetDefaultEventEngine;
// TODO(nnoble): Instantiate the default EventEngine if none have been provided.
void iomgr_platform_init(void) {}
void iomgr_platform_flush(void) {}
void iomgr_platform_shutdown(void) {}
void iomgr_platform_shutdown_background_closure(void) {}
bool iomgr_platform_is_any_background_poller_thread(void) {
return grpc_event_engine::experimental::GetDefaultEventEngine()
->IsWorkerThread();
}
bool iomgr_platform_add_closure_to_background_poller(
grpc_closure* /* closure */, grpc_error_handle /* error */) {
return false;
}
grpc_iomgr_platform_vtable vtable = {
iomgr_platform_init,
iomgr_platform_flush,
iomgr_platform_shutdown,
iomgr_platform_shutdown_background_closure,
iomgr_platform_is_any_background_poller_thread,
iomgr_platform_add_closure_to_background_poller};
} // namespace
void grpc_set_default_iomgr_platform() {
grpc_set_tcp_client_impl(&grpc_event_engine_tcp_client_vtable);
grpc_set_tcp_server_impl(&grpc_event_engine_tcp_server_vtable);
grpc_set_timer_impl(&grpc_event_engine_timer_vtable);
grpc_set_pollset_vtable(&grpc_event_engine_pollset_vtable);
grpc_set_pollset_set_vtable(&grpc_event_engine_pollset_set_vtable);
grpc_core::SetDNSResolver(
grpc_core::experimental::EventEngineDNSResolver::GetOrCreate());
grpc_set_iomgr_platform_vtable(&vtable);
}
bool grpc_iomgr_run_in_background() { return false; }
#endif // GRPC_USE_EVENT_ENGINE

@ -1,87 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
#include <grpc/event_engine/event_engine.h>
#include "src/core/lib/iomgr/event_engine/pollset.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include "src/core/lib/iomgr/pollset.h"
#include "src/core/lib/iomgr/pollset_set.h"
namespace {
static gpr_mu g_mu;
static gpr_cv g_cv;
// --- pollset vtable API ---
void pollset_global_init(void) {
gpr_mu_init(&g_mu);
gpr_cv_init(&g_cv);
}
void pollset_global_shutdown(void) {
gpr_cv_destroy(&g_cv);
gpr_mu_destroy(&g_mu);
}
void pollset_init(grpc_pollset* pollset, gpr_mu** mu) { *mu = &g_mu; }
void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, GRPC_ERROR_NONE);
}
void pollset_destroy(grpc_pollset* pollset) {}
grpc_error_handle pollset_work(grpc_pollset* pollset,
grpc_pollset_worker** worker,
grpc_core::Timestamp deadline) {
(void)worker;
gpr_cv_wait(&g_cv, &g_mu, deadline.as_timespec(GPR_CLOCK_REALTIME));
return GRPC_ERROR_NONE;
}
grpc_error_handle pollset_kick(grpc_pollset* pollset,
grpc_pollset_worker* specific_worker) {
(void)pollset;
(void)specific_worker;
return GRPC_ERROR_NONE;
}
size_t pollset_size(void) { return 1; }
// --- pollset_set vtable API ---
grpc_pollset_set* pollset_set_create(void) { return nullptr; }
void pollset_set_destroy(grpc_pollset_set* pollset_set) {}
void pollset_set_add_pollset(grpc_pollset_set* pollset_set,
grpc_pollset* pollset) {}
void pollset_set_del_pollset(grpc_pollset_set* pollset_set,
grpc_pollset* pollset) {}
void pollset_set_add_pollset_set(grpc_pollset_set* bag,
grpc_pollset_set* item) {}
void pollset_set_del_pollset_set(grpc_pollset_set* bag,
grpc_pollset_set* item) {}
} // namespace
void grpc_pollset_ee_broadcast_event() { gpr_cv_signal(&g_cv); }
// --- vtables ---
grpc_pollset_vtable grpc_event_engine_pollset_vtable = {
pollset_global_init, pollset_global_shutdown,
pollset_init, pollset_shutdown,
pollset_destroy, pollset_work,
pollset_kick, pollset_size};
grpc_pollset_set_vtable grpc_event_engine_pollset_set_vtable = {
pollset_set_create, pollset_set_destroy,
pollset_set_add_pollset, pollset_set_del_pollset,
pollset_set_add_pollset_set, pollset_set_del_pollset_set};
#endif // GRPC_USE_EVENT_ENGINE

@ -1,25 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_POLLSET_H
#define GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_POLLSET_H
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
/// Signals pollset_work that some work has been done.
void grpc_pollset_ee_broadcast_event();
#endif
#endif // GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_POLLSET_H

@ -1,51 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_PROMISE_H
#define GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_PROMISE_H
#include <grpc/support/port_platform.h>
#include "src/core/lib/gprpp/sync.h"
namespace grpc_event_engine {
namespace experimental {
/// A minimal promise implementation.
///
/// This is light-duty, syntactical sugar around cv wait & signal, which is
/// useful in some cases. A more robust implementation is being worked on
/// separately.
template <typename T>
class Promise {
public:
T& Get() {
grpc_core::MutexLock lock(&mu_);
cv_.Wait(&mu_);
return val_;
}
void Set(T&& val) {
grpc_core::MutexLock lock(&mu_);
val_ = std::move(val);
cv_.Signal();
}
private:
grpc_core::Mutex mu_;
grpc_core::CondVar cv_;
T val_;
};
} // namespace experimental
} // namespace grpc_event_engine
#endif // GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_PROMISE_H

@ -1,48 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#include "src/core/lib/iomgr/event_engine/resolved_address_internal.h"
#include <grpc/event_engine/event_engine.h>
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/iomgr/resolve_address.h"
namespace grpc_event_engine {
namespace experimental {
EventEngine::ResolvedAddress CreateResolvedAddress(
const grpc_resolved_address& addr) {
return EventEngine::ResolvedAddress(
reinterpret_cast<const sockaddr*>(addr.addr), addr.len);
}
grpc_resolved_address CreateGRPCResolvedAddress(
const EventEngine::ResolvedAddress& ra) {
grpc_resolved_address grpc_addr;
memcpy(grpc_addr.addr, ra.address(), ra.size());
grpc_addr.len = ra.size();
return grpc_addr;
}
// TODO(ctiller): Move this to somewhere more permanent as we're deleting iomgr.
absl::StatusOr<std::string> ResolvedAddressToURI(
const EventEngine::ResolvedAddress& addr) {
auto gra = CreateGRPCResolvedAddress(addr);
return grpc_sockaddr_to_uri(&gra);
}
} // namespace experimental
} // namespace grpc_event_engine

@ -1,38 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_RESOLVED_ADDRESS_INTERNAL_H
#define GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_RESOLVED_ADDRESS_INTERNAL_H
#include <grpc/support/port_platform.h>
#include <grpc/event_engine/event_engine.h>
#include "src/core/lib/iomgr/resolve_address.h"
namespace grpc_event_engine {
namespace experimental {
EventEngine::ResolvedAddress CreateResolvedAddress(
const grpc_resolved_address& addr);
grpc_resolved_address CreateGRPCResolvedAddress(
const EventEngine::ResolvedAddress& ra);
absl::StatusOr<std::string> ResolvedAddressToURI(
const EventEngine::ResolvedAddress& addr);
} // namespace experimental
} // namespace grpc_event_engine
#endif // GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_RESOLVED_ADDRESS_INTERNAL_H

@ -1,133 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
#include "absl/functional/bind_front.h"
#include <grpc/event_engine/event_engine.h>
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/event_engine/event_engine_factory.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/event_engine/promise.h"
#include "src/core/lib/iomgr/event_engine/resolved_address_internal.h"
#include "src/core/lib/iomgr/event_engine/resolver.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/resolve_address_impl.h"
#include "src/core/lib/iomgr/work_serializer.h"
#include "src/core/lib/surface/init.h"
#include "src/core/lib/transport/error_utils.h"
namespace grpc_core {
namespace experimental {
namespace {
using ::grpc_event_engine::experimental::CreateGRPCResolvedAddress;
using ::grpc_event_engine::experimental::EventEngine;
using ::grpc_event_engine::experimental::GetDefaultEventEngine;
using ::grpc_event_engine::experimental::Promise;
/// A fire-and-forget class representing an individual DNS request.
///
/// This provides a place to store the ownership of the DNSResolver object until
/// the request is complete.
class EventEngineDNSRequest : DNSRequest {
public:
EventEngineDNSRequest(std::unique_ptr<EventEngine::DNSResolver> dns_resolver,
absl::string_view name, absl::string_view default_port,
grpc_closure* on_done,
std::vector<grpc_resolved_address>* addresses)
: dns_resolver_(std::move(dns_resolver)),
name_(std::string(name)),
default_port_(std::string(default_port)),
on_done_(std::move(on_done)) {}
void Start() override {
if (dns_resolver_ == nullptr) {
new DNSCallbackExecCtxScheduler(
std::move(on_done_),
absl::UnknownError("Failed to get DNS Resolver."));
return;
}
Ref().release(); // ref held by pending resolution
dns_resolver_->LookupHostname(
absl::bind_front(&EventEngineDNSRequest::OnLookupComplete, this), name_,
default_port_, absl::InfiniteFuture());
}
// TODO(hork): implement cancellation; currently it's a no-op
void Orphan() override { Unref(); }
private:
void OnLookupComplete(
absl::StatusOr<std::vector<EventEngine::ResolvedAddress>> addresses) {
ExecCtx exec_ctx;
// Convert addresses to iomgr form.
std::vector<grpc_resolved_address> result;
results.reserve(addresses->size());
for (size_t i = 0; i < addresses->size(); ++i) {
results.push_back(CreateGRPCResolvedAddress(addresses[i]));
}
if (addresses.ok()) {
on_done_(std::move(result));
} else {
on_done_(addresses.status());
}
Unref();
}
std::unique_ptr<EventEngine::DNSResolver> dns_resolver_;
const std::string name_;
const std::string default_port_;
std::function<void(absl::StatusOr<std::vector<grpc_resolved_address>>)>
on_done_;
};
} // namespace
DNSResolver* EventEngineDNSResolver::GetOrCreate() {
static EventEngineDNSResolver* instance = new EventEngineDNSResolver();
return instance;
}
OrphanablePtr<DNSResolver::Request> EventEngineDNSResolver::ResolveName(
absl::string_view name, absl::string_view default_port,
grpc_pollset_set* /* interested_parties */,
std::function<void(absl::StatusOr<std::vector<grpc_resolved_address>>)>
on_done) {
std::unique_ptr<EventEngine::DNSResolver> dns_resolver =
GetDefaultEventEngine()->GetDNSResolver();
return MakeOrphanable<EventEngineDNSRequest>(
std::move(dns_resolver), name, default_port, std::move(on_done));
}
absl::StatusOr<std::vector<grpc_resolved_address>>
EventEngineDNSResolver::ResolveNameBlocking(absl::string_view name,
absl::string_view default_port) {
grpc_closure on_done;
Promise<absl::StatusOr<std::vector<grpc_resolved_address>>> evt;
auto r = ResolveName(
name, default_port,
[&evt](void(absl::StatusOr<std::vector<grpc_resolved_address>> result) {
evt.Set(std::move(result));
}));
r->Start();
return evt.Get();
}
} // namespace experimental
} // namespace grpc_core
#endif // GRPC_USE_EVENT_ENGINE

@ -1,302 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
#include <grpc/event_engine/event_engine.h>
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/event_engine/channel_args_endpoint_config.h"
#include "src/core/lib/event_engine/event_engine_factory.h"
#include "src/core/lib/event_engine/sockaddr.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/iomgr/event_engine/closure.h"
#include "src/core/lib/iomgr/event_engine/endpoint.h"
#include "src/core/lib/iomgr/event_engine/pollset.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/tcp_client.h"
#include "src/core/lib/iomgr/tcp_server.h"
#include "src/core/lib/surface/init.h"
#include "src/core/lib/transport/error_utils.h"
extern grpc_core::TraceFlag grpc_tcp_trace;
namespace {
using ::grpc_event_engine::experimental::ChannelArgsEndpointConfig;
using ::grpc_event_engine::experimental::EventEngine;
using ::grpc_event_engine::experimental::GetDefaultEventEngine;
using ::grpc_event_engine::experimental::GrpcClosureToStatusCallback;
using ::grpc_event_engine::experimental::SliceAllocator;
using ::grpc_event_engine::experimental::SliceAllocatorFactory;
using ::grpc_event_engine::experimental::SliceBuffer;
} // namespace
class WrappedInternalSliceAllocator : public SliceAllocator {
public:
explicit WrappedInternalSliceAllocator(grpc_slice_allocator* slice_allocator)
: slice_allocator_(slice_allocator) {}
~WrappedInternalSliceAllocator() {
grpc_slice_allocator_destroy(slice_allocator_);
}
absl::Status Allocate(size_t size, SliceBuffer* dest,
SliceAllocator::AllocateCallback cb) override {
// TODO(nnoble): requires the SliceBuffer definition.
grpc_slice_allocator_allocate(
slice_allocator_, size, 1, grpc_slice_allocator_intent::kReadBuffer,
dest->RawSliceBuffer(),
[](void* arg, grpc_error_handle error) {
auto cb = static_cast<SliceAllocator::AllocateCallback*>(arg);
(*cb)(grpc_error_to_absl_status(error));
delete cb;
},
new SliceAllocator::AllocateCallback(cb));
return absl::OkStatus();
}
private:
grpc_slice_allocator* slice_allocator_;
};
class WrappedInternalSliceAllocatorFactory : public SliceAllocatorFactory {
public:
explicit WrappedInternalSliceAllocatorFactory(
grpc_slice_allocator_factory* slice_allocator_factory)
: slice_allocator_factory_(slice_allocator_factory) {}
~WrappedInternalSliceAllocatorFactory() {
grpc_slice_allocator_factory_destroy(slice_allocator_factory_);
}
std::unique_ptr<SliceAllocator> CreateSliceAllocator(
absl::string_view peer_name) override {
return absl::make_unique<WrappedInternalSliceAllocator>(
grpc_slice_allocator_factory_create_slice_allocator(
slice_allocator_factory_, peer_name));
};
private:
grpc_slice_allocator_factory* slice_allocator_factory_;
};
struct grpc_tcp_server {
explicit grpc_tcp_server(std::unique_ptr<EventEngine::Listener> listener)
: refcount(1, GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace) ? "tcp" : nullptr),
listener(std::move(listener)) {
shutdown_starting.head = nullptr;
shutdown_starting.tail = nullptr;
};
~grpc_tcp_server() {
grpc_core::ExecCtx::RunList(DEBUG_LOCATION, &shutdown_starting);
grpc_core::ExecCtx::Get()->Flush();
}
grpc_core::RefCount refcount;
grpc_core::Mutex mu;
std::unique_ptr<EventEngine::Listener> listener;
grpc_closure_list shutdown_starting ABSL_GUARDED_BY(mu);
grpc_tcp_server_cb on_accept_internal;
void* on_accept_internal_arg;
};
namespace {
/// Converts a grpc_closure to an EventEngine Callback. The closure is expected
/// to already be initialized.
EventEngine::OnConnectCallback GrpcClosureToOnConnectCallback(
grpc_closure* closure, grpc_endpoint** endpoint_ptr) {
return [closure, endpoint_ptr](
absl::StatusOr<std::unique_ptr<EventEngine::Endpoint>> endpoint) {
grpc_core::ExecCtx exec_ctx;
if (endpoint.ok()) {
auto* grpc_endpoint_out =
reinterpret_cast<grpc_event_engine_endpoint*>(*endpoint_ptr);
grpc_endpoint_out->endpoint = std::move(*endpoint);
} else {
grpc_endpoint_destroy(*endpoint_ptr);
*endpoint_ptr = nullptr;
}
grpc_core::Closure::Run(DEBUG_LOCATION, closure,
absl_status_to_grpc_error(endpoint.status()));
exec_ctx.Flush();
grpc_pollset_ee_broadcast_event();
};
}
/// Usage note: this method does not take ownership of any pointer arguments.
void tcp_connect(grpc_closure* on_connect, grpc_endpoint** endpoint,
grpc_slice_allocator* slice_allocator,
grpc_pollset_set* /* interested_parties */,
const grpc_channel_args* channel_args,
const grpc_resolved_address* addr,
grpc_core::Timestamp deadline) {
auto addr_uri = grpc_sockaddr_to_uri(addr);
if (!addr_uri.ok()) {
grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_connect,
absl_status_to_grpc_error(addr_uri.status()));
return;
}
grpc_event_engine_endpoint* ee_endpoint =
reinterpret_cast<grpc_event_engine_endpoint*>(
grpc_tcp_create(channel_args, addr_uri.value()));
*endpoint = &ee_endpoint->base;
EventEngine::OnConnectCallback ee_on_connect =
GrpcClosureToOnConnectCallback(on_connect, endpoint);
auto ee_slice_allocator =
absl::make_unique<WrappedInternalSliceAllocator>(slice_allocator);
EventEngine::ResolvedAddress ra(reinterpret_cast<const sockaddr*>(addr->addr),
addr->len);
absl::Time ee_deadline =
grpc_core::ToAbslTime(deadline.as_timespec(GPR_CLOCK_MONOTONIC));
ChannelArgsEndpointConfig endpoint_config(channel_args);
absl::Status connected = GetDefaultEventEngine()->Connect(
ee_on_connect, ra, endpoint_config, std::move(ee_slice_allocator),
ee_deadline);
if (!connected.ok()) {
// EventEngine failed to start an asynchronous connect.
grpc_endpoint_destroy(*endpoint);
*endpoint = nullptr;
grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_connect,
absl_status_to_grpc_error(connected));
}
}
grpc_error_handle tcp_server_create(
grpc_closure* shutdown_complete, const grpc_channel_args* args,
grpc_slice_allocator_factory* slice_allocator_factory,
grpc_tcp_server** server) {
ChannelArgsEndpointConfig endpoint_config(args);
auto ee_slice_allocator_factory =
absl::make_unique<WrappedInternalSliceAllocatorFactory>(
slice_allocator_factory);
EventEngine* event_engine = GetDefaultEventEngine();
absl::StatusOr<std::unique_ptr<EventEngine::Listener>> listener =
event_engine->CreateListener(
[server](std::unique_ptr<EventEngine::Endpoint> ee_endpoint,
const SliceAllocator& /*slice_allocator*/) {
grpc_core::ExecCtx exec_ctx;
GPR_ASSERT((*server)->on_accept_internal != nullptr);
grpc_event_engine_endpoint* iomgr_endpoint =
grpc_tcp_server_endpoint_create(std::move(ee_endpoint));
grpc_tcp_server_acceptor* acceptor =
static_cast<grpc_tcp_server_acceptor*>(
gpr_zalloc(sizeof(*acceptor)));
acceptor->from_server = *server;
acceptor->external_connection = false;
(*server)->on_accept_internal((*server)->on_accept_internal_arg,
&iomgr_endpoint->base, nullptr,
acceptor);
exec_ctx.Flush();
grpc_pollset_ee_broadcast_event();
},
GrpcClosureToStatusCallback(shutdown_complete), endpoint_config,
std::move(ee_slice_allocator_factory));
if (!listener.ok()) {
return absl_status_to_grpc_error(listener.status());
}
*server = new grpc_tcp_server(std::move(*listener));
return GRPC_ERROR_NONE;
}
void tcp_server_start(grpc_tcp_server* server,
const std::vector<grpc_pollset*>* /* pollsets */,
grpc_tcp_server_cb on_accept_cb, void* cb_arg) {
server->on_accept_internal = on_accept_cb;
server->on_accept_internal_arg = cb_arg;
// The iomgr API does not handle situations where the server cannot start, so
// a crash may be preferable for now.
GPR_ASSERT(server->listener->Start().ok());
}
grpc_error_handle tcp_server_add_port(grpc_tcp_server* s,
const grpc_resolved_address* addr,
int* out_port) {
EventEngine::ResolvedAddress ra(reinterpret_cast<const sockaddr*>(addr->addr),
addr->len);
auto port = s->listener->Bind(ra);
if (!port.ok()) {
return absl_status_to_grpc_error(port.status());
}
*out_port = *port;
return GRPC_ERROR_NONE;
}
grpc_core::TcpServerFdHandler* tcp_server_create_fd_handler(
grpc_tcp_server* /* s */) {
// EventEngine-iomgr does not support fds.
return nullptr;
}
unsigned tcp_server_port_fd_count(grpc_tcp_server* /* s */,
unsigned /* port_index */) {
return 0;
}
int tcp_server_port_fd(grpc_tcp_server* /* s */, unsigned /* port_index */,
unsigned /* fd_index */) {
// Note: only used internally
return -1;
}
grpc_tcp_server* tcp_server_ref(grpc_tcp_server* s) {
s->refcount.Ref(DEBUG_LOCATION, "server ref");
return s;
}
void tcp_server_shutdown_starting_add(grpc_tcp_server* s,
grpc_closure* shutdown_starting) {
grpc_core::MutexLock lock(&s->mu);
grpc_closure_list_append(&s->shutdown_starting, shutdown_starting,
GRPC_ERROR_NONE);
}
void tcp_server_unref(grpc_tcp_server* s) {
if (GPR_UNLIKELY(s->refcount.Unref(DEBUG_LOCATION, "server unref"))) {
delete s;
}
}
// No-op, all are handled on listener unref
void tcp_server_shutdown_listeners(grpc_tcp_server* /* s */) {}
} // namespace
grpc_tcp_client_vtable grpc_event_engine_tcp_client_vtable = {tcp_connect};
grpc_tcp_server_vtable grpc_event_engine_tcp_server_vtable = {
tcp_server_create, tcp_server_start,
tcp_server_add_port, tcp_server_create_fd_handler,
tcp_server_port_fd_count, tcp_server_port_fd,
tcp_server_ref, tcp_server_shutdown_starting_add,
tcp_server_unref, tcp_server_shutdown_listeners};
// Methods that are expected to exist elsewhere in the codebase.
struct grpc_fd {
int fd;
};
grpc_fd* grpc_fd_create(int /* fd */, const char* /* name */,
bool /* track_err */) {
return nullptr;
}
grpc_endpoint* grpc_tcp_client_create_from_fd(
grpc_fd* /* fd */, const grpc_channel_args* /* channel_args */,
absl::string_view /* addr_str */,
grpc_slice_allocator* slice_allocator /* slice_allocator */) {
grpc_slice_allocator_destroy(slice_allocator);
return nullptr;
}
#endif // GRPC_USE_EVENT_ENGINE

@ -1,62 +0,0 @@
// Copyright 2021 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#ifdef GRPC_USE_EVENT_ENGINE
#include <grpc/event_engine/event_engine.h>
#include "src/core/lib/event_engine/event_engine_factory.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/event_engine/closure.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/surface/init.h"
#include "src/core/lib/transport/error_utils.h"
namespace {
using ::grpc_event_engine::experimental::EventEngine;
using ::grpc_event_engine::experimental::GetDefaultEventEngine;
using ::grpc_event_engine::experimental::GrpcClosureToCallback;
void timer_init(grpc_timer* timer, grpc_core::Timestamp deadline,
grpc_closure* closure) {
timer->ee_task_handle = GetDefaultEventEngine()->RunAt(
grpc_core::ToAbslTime(deadline.as_timespec(GPR_CLOCK_REALTIME)),
GrpcClosureToCallback(closure));
timer->closure = closure;
}
void timer_cancel(grpc_timer* timer) {
auto handle = timer->ee_task_handle;
if (!GetDefaultEventEngine()->Cancel(handle)) {
grpc_core::ExecCtx::Run(DEBUG_LOCATION, timer->closure,
GRPC_ERROR_CANCELLED);
}
}
/* Internal API */
grpc_timer_check_result timer_check(grpc_core::Timestamp* /* next */) {
return GRPC_TIMERS_NOT_CHECKED;
}
void timer_list_init() {}
void timer_list_shutdown(void) {}
void timer_consume_kick(void) {}
} // namespace
grpc_timer_vtable grpc_event_engine_timer_vtable = {
timer_init, timer_cancel, timer_check,
timer_list_init, timer_list_shutdown, timer_consume_kick};
#endif // GRPC_USE_EVENT_ENGINE

@ -25,9 +25,7 @@
#ifdef GPR_WINDOWS
#define GRPC_ARES_RESOLVE_LOCALHOST_MANUALLY 1
#endif
#if defined(GRPC_USE_EVENT_ENGINE)
// Do Nothing
#elif defined(GPR_WINDOWS)
#if defined(GPR_WINDOWS)
#define GRPC_WINSOCK_SOCKET 1
#define GRPC_WINDOWS_SOCKETUTILS 1
#define GRPC_WINDOWS_SOCKET_ARES_EV_DRIVER 1
@ -181,11 +179,11 @@
#error "Platform not recognized"
#endif
#if defined(GRPC_POSIX_SOCKET) + defined(GRPC_WINSOCK_SOCKET) + \
defined(GRPC_CFSTREAM) + defined(GRPC_USE_EVENT_ENGINE) != \
#if defined(GRPC_POSIX_SOCKET) + defined(GRPC_WINSOCK_SOCKET) + \
defined(GRPC_CFSTREAM) != \
1
#error \
"Must define exactly one of GRPC_POSIX_SOCKET, GRPC_WINSOCK_SOCKET, GRPC_CFSTREAM, GRPC_USE_EVENT_ENGINE"
"Must define exactly one of GRPC_POSIX_SOCKET, GRPC_WINSOCK_SOCKET, GRPC_CFSTREAM"
#endif
#ifdef GRPC_POSIX_SOCKET

@ -25,7 +25,6 @@
#include <grpc/support/port_platform.h>
#include "src/core/lib/event_engine/sockaddr.h"
#include "src/core/lib/iomgr/port.h"
#include "src/core/lib/iomgr/sockaddr_posix.h" // IWYU pragma: export
#include "src/core/lib/iomgr/sockaddr_windows.h" // IWYU pragma: export

@ -55,11 +55,9 @@ CORE_SOURCE_FILES = [
'src/core/ext/filters/client_channel/proxy_mapper_registry.cc',
'src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc',
'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc',
'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc',
@ -444,7 +442,6 @@ CORE_SOURCE_FILES = [
'src/core/lib/event_engine/resolved_address.cc',
'src/core/lib/event_engine/slice.cc',
'src/core/lib/event_engine/slice_buffer.cc',
'src/core/lib/event_engine/sockaddr.cc',
'src/core/lib/event_engine/trace.cc',
'src/core/lib/gpr/alloc.cc',
'src/core/lib/gpr/atm.cc',
@ -500,7 +497,6 @@ CORE_SOURCE_FILES = [
'src/core/lib/iomgr/dualstack_socket_posix.cc',
'src/core/lib/iomgr/endpoint.cc',
'src/core/lib/iomgr/endpoint_cfstream.cc',
'src/core/lib/iomgr/endpoint_pair_event_engine.cc',
'src/core/lib/iomgr/endpoint_pair_posix.cc',
'src/core/lib/iomgr/endpoint_pair_windows.cc',
'src/core/lib/iomgr/error.cc',
@ -510,14 +506,6 @@ CORE_SOURCE_FILES = [
'src/core/lib/iomgr/ev_poll_posix.cc',
'src/core/lib/iomgr/ev_posix.cc',
'src/core/lib/iomgr/ev_windows.cc',
'src/core/lib/iomgr/event_engine/closure.cc',
'src/core/lib/iomgr/event_engine/endpoint.cc',
'src/core/lib/iomgr/event_engine/iomgr.cc',
'src/core/lib/iomgr/event_engine/pollset.cc',
'src/core/lib/iomgr/event_engine/resolved_address_internal.cc',
'src/core/lib/iomgr/event_engine/resolver.cc',
'src/core/lib/iomgr/event_engine/tcp.cc',
'src/core/lib/iomgr/event_engine/timer.cc',
'src/core/lib/iomgr/exec_ctx.cc',
'src/core/lib/iomgr/executor.cc',
'src/core/lib/iomgr/executor/mpmcqueue.cc',

@ -35,7 +35,6 @@
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h"
#include "src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h"
#include "src/core/lib/event_engine/sockaddr.h"
#include "src/core/lib/gpr/string.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/gprpp/time.h"

@ -22,7 +22,6 @@
#include "absl/strings/str_cat.h"
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/event_engine/sockaddr.h"
#include "test/core/util/port.h"
#ifdef GPR_WINDOWS

@ -26,7 +26,6 @@
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h"
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/event_engine/sockaddr.h"
#include "src/core/lib/iomgr/sockaddr.h"
#include "src/proto/grpc/lb/v1/load_balancer.pb.h" // C++ version
#include "test/core/util/test_config.h"

@ -1127,12 +1127,10 @@ src/core/ext/filters/client_channel/proxy_mapper_registry.h \
src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \
src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc \
@ -1935,8 +1933,6 @@ src/core/lib/event_engine/memory_allocator.cc \
src/core/lib/event_engine/resolved_address.cc \
src/core/lib/event_engine/slice.cc \
src/core/lib/event_engine/slice_buffer.cc \
src/core/lib/event_engine/sockaddr.cc \
src/core/lib/event_engine/sockaddr.h \
src/core/lib/event_engine/trace.cc \
src/core/lib/event_engine/trace.h \
src/core/lib/gpr/alloc.cc \
@ -2047,7 +2043,6 @@ src/core/lib/iomgr/endpoint.h \
src/core/lib/iomgr/endpoint_cfstream.cc \
src/core/lib/iomgr/endpoint_cfstream.h \
src/core/lib/iomgr/endpoint_pair.h \
src/core/lib/iomgr/endpoint_pair_event_engine.cc \
src/core/lib/iomgr/endpoint_pair_posix.cc \
src/core/lib/iomgr/endpoint_pair_windows.cc \
src/core/lib/iomgr/error.cc \
@ -2064,20 +2059,6 @@ src/core/lib/iomgr/ev_poll_posix.h \
src/core/lib/iomgr/ev_posix.cc \
src/core/lib/iomgr/ev_posix.h \
src/core/lib/iomgr/ev_windows.cc \
src/core/lib/iomgr/event_engine/closure.cc \
src/core/lib/iomgr/event_engine/closure.h \
src/core/lib/iomgr/event_engine/endpoint.cc \
src/core/lib/iomgr/event_engine/endpoint.h \
src/core/lib/iomgr/event_engine/iomgr.cc \
src/core/lib/iomgr/event_engine/pollset.cc \
src/core/lib/iomgr/event_engine/pollset.h \
src/core/lib/iomgr/event_engine/promise.h \
src/core/lib/iomgr/event_engine/resolved_address_internal.cc \
src/core/lib/iomgr/event_engine/resolved_address_internal.h \
src/core/lib/iomgr/event_engine/resolver.cc \
src/core/lib/iomgr/event_engine/resolver.h \
src/core/lib/iomgr/event_engine/tcp.cc \
src/core/lib/iomgr/event_engine/timer.cc \
src/core/lib/iomgr/exec_ctx.cc \
src/core/lib/iomgr/exec_ctx.h \
src/core/lib/iomgr/executor.cc \

@ -949,12 +949,10 @@ src/core/ext/filters/client_channel/resolver/binder/README.md \
src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \
src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc \
@ -1727,8 +1725,6 @@ src/core/lib/event_engine/memory_allocator.cc \
src/core/lib/event_engine/resolved_address.cc \
src/core/lib/event_engine/slice.cc \
src/core/lib/event_engine/slice_buffer.cc \
src/core/lib/event_engine/sockaddr.cc \
src/core/lib/event_engine/sockaddr.h \
src/core/lib/event_engine/trace.cc \
src/core/lib/event_engine/trace.h \
src/core/lib/gpr/README.md \
@ -1842,7 +1838,6 @@ src/core/lib/iomgr/endpoint.h \
src/core/lib/iomgr/endpoint_cfstream.cc \
src/core/lib/iomgr/endpoint_cfstream.h \
src/core/lib/iomgr/endpoint_pair.h \
src/core/lib/iomgr/endpoint_pair_event_engine.cc \
src/core/lib/iomgr/endpoint_pair_posix.cc \
src/core/lib/iomgr/endpoint_pair_windows.cc \
src/core/lib/iomgr/error.cc \
@ -1859,20 +1854,6 @@ src/core/lib/iomgr/ev_poll_posix.h \
src/core/lib/iomgr/ev_posix.cc \
src/core/lib/iomgr/ev_posix.h \
src/core/lib/iomgr/ev_windows.cc \
src/core/lib/iomgr/event_engine/closure.cc \
src/core/lib/iomgr/event_engine/closure.h \
src/core/lib/iomgr/event_engine/endpoint.cc \
src/core/lib/iomgr/event_engine/endpoint.h \
src/core/lib/iomgr/event_engine/iomgr.cc \
src/core/lib/iomgr/event_engine/pollset.cc \
src/core/lib/iomgr/event_engine/pollset.h \
src/core/lib/iomgr/event_engine/promise.h \
src/core/lib/iomgr/event_engine/resolved_address_internal.cc \
src/core/lib/iomgr/event_engine/resolved_address_internal.h \
src/core/lib/iomgr/event_engine/resolver.cc \
src/core/lib/iomgr/event_engine/resolver.h \
src/core/lib/iomgr/event_engine/tcp.cc \
src/core/lib/iomgr/event_engine/timer.cc \
src/core/lib/iomgr/exec_ctx.cc \
src/core/lib/iomgr/exec_ctx.h \
src/core/lib/iomgr/executor.cc \

Loading…
Cancel
Save