diff --git a/BUILD b/BUILD index 4cab5759cc0..604dad10bfd 100644 --- a/BUILD +++ b/BUILD @@ -399,7 +399,6 @@ grpc_cc_library( "channel_init", "channel_stack_type", "config", - "default_event_engine_factory_hdrs", "gpr_base", "grpc_authorization_base", "grpc_base", @@ -408,7 +407,6 @@ grpc_cc_library( "grpc_security_base", "grpc_trace", "http_connect_handshaker", - "iomgr_timer", "slice", "tcp_connect_handshaker", ], @@ -457,7 +455,6 @@ grpc_cc_library( "channel_init", "channel_stack_type", "config", - "default_event_engine_factory_hdrs", "gpr_base", "grpc_authorization_base", "grpc_base", @@ -467,7 +464,6 @@ grpc_cc_library( "grpc_security_base", "grpc_trace", "http_connect_handshaker", - "iomgr_timer", "slice", "tcp_connect_handshaker", ], @@ -1518,7 +1514,6 @@ grpc_cc_library( "grpc_base", "grpc_codegen", "grpc_trace", - "iomgr_timer", "slice", ], ) @@ -1890,41 +1885,6 @@ grpc_cc_library( ], ) -grpc_cc_library( - name = "iomgr_timer", - srcs = [ - "src/core/lib/iomgr/time_averaged_stats.cc", - "src/core/lib/iomgr/timer.cc", - "src/core/lib/iomgr/timer_generic.cc", - "src/core/lib/iomgr/timer_heap.cc", - "src/core/lib/iomgr/timer_manager.cc", - ], - hdrs = [ - "src/core/lib/iomgr/timer.h", - "src/core/lib/iomgr/timer_generic.h", - "src/core/lib/iomgr/timer_heap.h", - "src/core/lib/iomgr/timer_manager.h", - "src/core/lib/iomgr/time_averaged_stats.h", - ] + [ - # TODO(hork): deduplicate - "src/core/lib/iomgr/iomgr.h", - ], - external_deps = [ - "absl/strings", - ], - deps = [ - "event_engine_base_hdrs", - "exec_ctx", - "gpr_base", - "gpr_platform", - "gpr_tls", - "grpc_trace", - "iomgr_port", - "time", - "useful", - ], -) - grpc_cc_library( name = "iomgr_fwd", hdrs = [ @@ -1994,39 +1954,13 @@ grpc_cc_library( srcs = [ "src/core/lib/event_engine/default_event_engine_factory.cc", ], - external_deps = ["absl/memory"], - deps = [ - "default_event_engine_factory_hdrs", - "event_engine_base_hdrs", - "gpr_base", - "iomgr_event_engine", - "iomgr_port", - ], -) - -grpc_cc_library( - name = "iomgr_event_engine", - srcs = ["src/core/lib/event_engine/iomgr_engine.cc"], - hdrs = ["src/core/lib/event_engine/iomgr_engine.h"], external_deps = [ - "absl/cleanup", - "absl/container:flat_hash_set", - "absl/time", - "absl/strings", + # TODO(hork): uv, in a subsequent PR ], deps = [ - "closure", - "error", + "default_event_engine_factory_hdrs", "event_engine_base_hdrs", - "event_engine_common", - "event_engine_trace", - "exec_ctx", "gpr_base", - "gpr_platform", - "grpc_trace", - "iomgr_timer", - "match", - "time", ], ) @@ -2037,15 +1971,8 @@ grpc_cc_library( "src/core/lib/event_engine/slice.cc", "src/core/lib/event_engine/slice_buffer.cc", ], - hdrs = [ - "src/core/lib/event_engine/handle_containers.h", - ], - external_deps = [ - "absl/container:flat_hash_set", - ], deps = [ "event_engine_base_hdrs", - "event_engine_trace", "gpr_base", "gpr_platform", "ref_counted", @@ -2054,20 +1981,6 @@ grpc_cc_library( ], ) -grpc_cc_library( - name = "event_engine_trace", - srcs = [ - "src/core/lib/event_engine/trace.cc", - ], - hdrs = [ - "src/core/lib/event_engine/trace.h", - ], - deps = [ - "gpr_platform", - "grpc_trace", - ], -) - grpc_cc_library( name = "event_engine_base", srcs = [ @@ -2077,9 +1990,7 @@ grpc_cc_library( "default_event_engine_factory", "default_event_engine_factory_hdrs", "event_engine_base_hdrs", - "event_engine_trace", "gpr_base", - "grpc_trace", ], ) @@ -2209,6 +2120,11 @@ grpc_cc_library( "src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc", "src/core/lib/iomgr/tcp_server_windows.cc", "src/core/lib/iomgr/tcp_windows.cc", + "src/core/lib/iomgr/time_averaged_stats.cc", + "src/core/lib/iomgr/timer.cc", + "src/core/lib/iomgr/timer_generic.cc", + "src/core/lib/iomgr/timer_heap.cc", + "src/core/lib/iomgr/timer_manager.cc", "src/core/lib/iomgr/unix_sockets_posix.cc", "src/core/lib/iomgr/unix_sockets_posix_noop.cc", "src/core/lib/iomgr/wakeup_fd_eventfd.cc", @@ -2331,6 +2247,11 @@ grpc_cc_library( "src/core/lib/iomgr/tcp_server.h", "src/core/lib/iomgr/tcp_server_utils_posix.h", "src/core/lib/iomgr/tcp_windows.h", + "src/core/lib/iomgr/time_averaged_stats.h", + "src/core/lib/iomgr/timer.h", + "src/core/lib/iomgr/timer_generic.h", + "src/core/lib/iomgr/timer_heap.h", + "src/core/lib/iomgr/timer_manager.h", "src/core/lib/iomgr/unix_sockets_posix.h", "src/core/lib/iomgr/wakeup_fd_pipe.h", "src/core/lib/iomgr/wakeup_fd_posix.h", @@ -2437,7 +2358,6 @@ grpc_cc_library( "grpc_trace", "handshaker_registry", "iomgr_port", - "iomgr_timer", "json", "latch", "memory_quota", @@ -2813,7 +2733,6 @@ grpc_cc_library( "http_connect_handshaker", "httpcli", "iomgr_fwd", - "iomgr_timer", "json", "json_util", "orphanable", @@ -2898,7 +2817,6 @@ grpc_cc_library( "gpr_base", "grpc_base", "idle_filter_state", - "iomgr_timer", "loop", "promise", "single_set_ptr", @@ -2920,7 +2838,6 @@ grpc_cc_library( "config", "gpr_base", "grpc_base", - "iomgr_timer", "slice", ], ) @@ -3127,7 +3044,6 @@ grpc_cc_library( "grpc_sockaddr", "grpc_trace", "grpc_transport_chttp2_client_connector", - "iomgr_timer", "json", "orphanable", "protobuf_duration_upb", @@ -3177,7 +3093,6 @@ grpc_cc_library( "grpc_security_base", "grpc_service_config_impl", "grpc_trace", - "iomgr_timer", "json", "json_util", "orphanable", @@ -3308,7 +3223,6 @@ grpc_cc_library( "grpc_sockaddr", "grpc_tls_credentials", "grpc_transport_chttp2_client_connector", - "iomgr_timer", "json", "json_util", "orphanable", @@ -3552,7 +3466,6 @@ grpc_cc_library( "grpc_codegen", "grpc_resolver_xds_header", "grpc_trace", - "iomgr_timer", "json", "orphanable", "ref_counted", @@ -3711,7 +3624,6 @@ grpc_cc_library( "grpc_codegen", "grpc_lb_address_filtering", "grpc_trace", - "iomgr_timer", "json", "orphanable", "ref_counted", @@ -3742,7 +3654,6 @@ grpc_cc_library( "grpc_codegen", "grpc_lb_address_filtering", "grpc_trace", - "iomgr_timer", "json", "orphanable", "ref_counted", @@ -3915,7 +3826,6 @@ grpc_cc_library( "gpr_base", "grpc_base", "grpc_resolver", - "iomgr_timer", "orphanable", "ref_counted_ptr", "uri_parser", @@ -3961,7 +3871,6 @@ grpc_cc_library( "grpc_resolver", "grpc_resolver_dns_selection", "grpc_trace", - "iomgr_timer", "orphanable", "polling_resolver", "ref_counted_ptr", @@ -4017,7 +3926,6 @@ grpc_cc_library( "grpc_trace", "iomgr_fwd", "iomgr_port", - "iomgr_timer", "json", "orphanable", "polling_resolver", @@ -5149,7 +5057,6 @@ grpc_cc_library( "hpack_encoder_table", "httpcli", "iomgr_fwd", - "iomgr_timer", "memory_quota", "orphanable", "pid_controller", @@ -5251,7 +5158,6 @@ grpc_cc_library( "handshaker", "handshaker_registry", "iomgr_fwd", - "iomgr_timer", "memory_quota", "orphanable", "ref_counted", @@ -5381,7 +5287,6 @@ grpc_cc_library( "grpc_service_config_impl", "grpc_trace", "grpc_transport_inproc", - "iomgr_timer", "ref_counted", "useful", ], @@ -5416,7 +5321,6 @@ grpc_cc_library( "grpc_trace", "grpc_transport_inproc", "grpc_unsecure", - "iomgr_timer", "ref_counted", "useful", ], @@ -5591,7 +5495,6 @@ grpc_cc_library( "grpc++", "grpc++_codegen_base", "grpc_base", - "iomgr_timer", "protobuf_duration_upb", "ref_counted", "time", diff --git a/CMakeLists.txt b/CMakeLists.txt index 71e4524774b..95b711256d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -110,8 +110,6 @@ set(gRPC_ABSL_USED_TARGETS absl_bits absl_city absl_civil_time - absl_cleanup - absl_cleanup_internal absl_compressed_tuple absl_config absl_container_common @@ -134,7 +132,6 @@ set(gRPC_ABSL_USED_TARGETS absl_fast_type_id absl_fixed_array absl_flat_hash_map - absl_flat_hash_set absl_function_ref absl_graphcycles_internal absl_hash @@ -1047,7 +1044,6 @@ if(gRPC_BUILD_TESTS) add_dependencies(buildtests_cxx insecure_security_connector_test) add_dependencies(buildtests_cxx interop_client) add_dependencies(buildtests_cxx interop_server) - add_dependencies(buildtests_cxx iomgr_event_engine_test) add_dependencies(buildtests_cxx join_test) add_dependencies(buildtests_cxx json_test) add_dependencies(buildtests_cxx large_metadata_bad_client_test) @@ -2028,13 +2024,11 @@ add_library(grpc src/core/lib/event_engine/channel_args_endpoint_config.cc src/core/lib/event_engine/default_event_engine_factory.cc src/core/lib/event_engine/event_engine.cc - src/core/lib/event_engine/iomgr_engine.cc 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/trace.cc src/core/lib/gprpp/time.cc src/core/lib/http/format_request.cc src/core/lib/http/httpcli.cc @@ -2316,9 +2310,7 @@ target_link_libraries(grpc ${_gRPC_RE2_LIBRARIES} ${_gRPC_UPB_LIBRARIES} ${_gRPC_ALLTARGETS_LIBRARIES} - absl::cleanup absl::flat_hash_map - absl::flat_hash_set absl::inlined_vector absl::bind_front absl::hash @@ -2647,13 +2639,11 @@ add_library(grpc_unsecure src/core/lib/event_engine/channel_args_endpoint_config.cc src/core/lib/event_engine/default_event_engine_factory.cc src/core/lib/event_engine/event_engine.cc - src/core/lib/event_engine/iomgr_engine.cc 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/trace.cc src/core/lib/gprpp/time.cc src/core/lib/http/format_request.cc src/core/lib/http/httpcli.cc @@ -2871,9 +2861,7 @@ target_link_libraries(grpc_unsecure ${_gRPC_RE2_LIBRARIES} ${_gRPC_UPB_LIBRARIES} ${_gRPC_ALLTARGETS_LIBRARIES} - absl::cleanup absl::flat_hash_map - absl::flat_hash_set absl::inlined_vector absl::bind_front absl::hash @@ -8457,6 +8445,7 @@ target_include_directories(cel_authorization_engine_test target_link_libraries(cel_authorization_engine_test ${_gRPC_PROTOBUF_LIBRARIES} ${_gRPC_ALLTARGETS_LIBRARIES} + absl::flat_hash_set grpc_test_util ) @@ -12494,43 +12483,6 @@ target_link_libraries(interop_server ) -endif() -if(gRPC_BUILD_TESTS) - -add_executable(iomgr_event_engine_test - test/core/event_engine/test_suite/event_engine_test.cc - test/core/event_engine/test_suite/iomgr_event_engine_test.cc - test/core/event_engine/test_suite/timer_test.cc - third_party/googletest/googletest/src/gtest-all.cc - third_party/googletest/googlemock/src/gmock-all.cc -) - -target_include_directories(iomgr_event_engine_test - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/include - ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR} - ${_gRPC_RE2_INCLUDE_DIR} - ${_gRPC_SSL_INCLUDE_DIR} - ${_gRPC_UPB_GENERATED_DIR} - ${_gRPC_UPB_GRPC_GENERATED_DIR} - ${_gRPC_UPB_INCLUDE_DIR} - ${_gRPC_XXHASH_INCLUDE_DIR} - ${_gRPC_ZLIB_INCLUDE_DIR} - third_party/googletest/googletest/include - third_party/googletest/googletest - third_party/googletest/googlemock/include - third_party/googletest/googlemock - ${_gRPC_PROTO_GENS_DIR} -) - -target_link_libraries(iomgr_event_engine_test - ${_gRPC_PROTOBUF_LIBRARIES} - ${_gRPC_ALLTARGETS_LIBRARIES} - grpc_test_util -) - - endif() if(gRPC_BUILD_TESTS) @@ -19279,7 +19231,7 @@ generate_pkgconfig( "gRPC" "high performance general RPC framework" "${gRPC_CORE_VERSION}" - "gpr openssl absl_base absl_bind_front absl_cleanup absl_cord absl_core_headers absl_flat_hash_map absl_flat_hash_set absl_hash absl_inlined_vector absl_memory absl_optional absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant" + "gpr openssl absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_hash absl_inlined_vector absl_memory absl_optional absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant" "-lgrpc -laddress_sorting -lre2 -lupb -lcares -lz" "" "grpc.pc") @@ -19289,7 +19241,7 @@ generate_pkgconfig( "gRPC unsecure" "high performance general RPC framework without SSL" "${gRPC_CORE_VERSION}" - "gpr absl_base absl_bind_front absl_cleanup absl_cord absl_core_headers absl_flat_hash_map absl_flat_hash_set absl_hash absl_inlined_vector absl_memory absl_optional absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant" + "gpr absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_hash absl_inlined_vector absl_memory absl_optional absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant" "-lgrpc_unsecure" "" "grpc_unsecure.pc") @@ -19299,7 +19251,7 @@ generate_pkgconfig( "gRPC++" "C++ wrapper for gRPC" "${gRPC_CPP_VERSION}" - "grpc absl_base absl_bind_front absl_cleanup absl_cord absl_core_headers absl_flat_hash_map absl_flat_hash_set absl_hash absl_inlined_vector absl_memory absl_optional absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant" + "grpc absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_hash absl_inlined_vector absl_memory absl_optional absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant" "-lgrpc++" "" "grpc++.pc") @@ -19309,7 +19261,7 @@ generate_pkgconfig( "gRPC++ unsecure" "C++ wrapper for gRPC without SSL" "${gRPC_CPP_VERSION}" - "grpc_unsecure absl_base absl_bind_front absl_cleanup absl_cord absl_core_headers absl_flat_hash_map absl_flat_hash_set absl_hash absl_inlined_vector absl_memory absl_optional absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant" + "grpc_unsecure absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_hash absl_inlined_vector absl_memory absl_optional absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant" "-lgrpc++_unsecure" "" "grpc++_unsecure.pc") diff --git a/Makefile b/Makefile index f1af688661b..bae84705a77 100644 --- a/Makefile +++ b/Makefile @@ -1441,13 +1441,11 @@ LIBGRPC_SRC = \ src/core/lib/event_engine/channel_args_endpoint_config.cc \ src/core/lib/event_engine/default_event_engine_factory.cc \ src/core/lib/event_engine/event_engine.cc \ - src/core/lib/event_engine/iomgr_engine.cc \ 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/trace.cc \ src/core/lib/gprpp/time.cc \ src/core/lib/http/format_request.cc \ src/core/lib/http/httpcli.cc \ @@ -1901,13 +1899,11 @@ LIBGRPC_UNSECURE_SRC = \ src/core/lib/event_engine/channel_args_endpoint_config.cc \ src/core/lib/event_engine/default_event_engine_factory.cc \ src/core/lib/event_engine/event_engine.cc \ - src/core/lib/event_engine/iomgr_engine.cc \ 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/trace.cc \ src/core/lib/gprpp/time.cc \ src/core/lib/http/format_request.cc \ src/core/lib/http/httpcli.cc \ diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index b2877ffd13c..50ccbae91df 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -726,10 +726,7 @@ libs: - src/core/lib/debug/trace.h - src/core/lib/event_engine/channel_args_endpoint_config.h - 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 - src/core/lib/gprpp/capture.h @@ -1405,13 +1402,11 @@ libs: - src/core/lib/event_engine/channel_args_endpoint_config.cc - src/core/lib/event_engine/default_event_engine_factory.cc - src/core/lib/event_engine/event_engine.cc - - src/core/lib/event_engine/iomgr_engine.cc - 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/trace.cc - src/core/lib/gprpp/time.cc - src/core/lib/http/format_request.cc - src/core/lib/http/httpcli.cc @@ -1655,9 +1650,7 @@ libs: - src/core/tsi/transport_security.cc - src/core/tsi/transport_security_grpc.cc deps: - - absl/cleanup:cleanup - absl/container:flat_hash_map - - absl/container:flat_hash_set - absl/container:inlined_vector - absl/functional:bind_front - absl/hash:hash @@ -1926,10 +1919,7 @@ libs: - src/core/lib/debug/trace.h - src/core/lib/event_engine/channel_args_endpoint_config.h - 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 - src/core/lib/gprpp/capture.h @@ -2258,13 +2248,11 @@ libs: - src/core/lib/event_engine/channel_args_endpoint_config.cc - src/core/lib/event_engine/default_event_engine_factory.cc - src/core/lib/event_engine/event_engine.cc - - src/core/lib/event_engine/iomgr_engine.cc - 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/trace.cc - src/core/lib/gprpp/time.cc - src/core/lib/http/format_request.cc - src/core/lib/http/httpcli.cc @@ -2444,9 +2432,7 @@ libs: - src/core/tsi/transport_security.cc - src/core/tsi/transport_security_grpc.cc deps: - - absl/cleanup:cleanup - absl/container:flat_hash_map - - absl/container:flat_hash_set - absl/container:inlined_vector - absl/functional:bind_front - absl/hash:hash @@ -4860,6 +4846,7 @@ targets: - src/core/lib/security/authorization/cel_authorization_engine.cc - test/core/security/cel_authorization_engine_test.cc deps: + - absl/container:flat_hash_set - grpc_test_util - name: certificate_provider_registry_test gtest: true @@ -6385,19 +6372,6 @@ targets: deps: - grpc++_test_config - grpc++_test_util -- name: iomgr_event_engine_test - gtest: true - build: test - language: c++ - headers: - - test/core/event_engine/test_suite/event_engine_test.h - src: - - test/core/event_engine/test_suite/event_engine_test.cc - - test/core/event_engine/test_suite/iomgr_event_engine_test.cc - - test/core/event_engine/test_suite/timer_test.cc - deps: - - grpc_test_util - uses_polling: false - name: join_test gtest: true build: test diff --git a/config.m4 b/config.m4 index 82477ddd57c..df036077eb8 100644 --- a/config.m4 +++ b/config.m4 @@ -463,13 +463,11 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/event_engine/channel_args_endpoint_config.cc \ src/core/lib/event_engine/default_event_engine_factory.cc \ src/core/lib/event_engine/event_engine.cc \ - src/core/lib/event_engine/iomgr_engine.cc \ 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/trace.cc \ src/core/lib/gpr/alloc.cc \ src/core/lib/gpr/atm.cc \ src/core/lib/gpr/cpu_iphone.cc \ diff --git a/config.w32 b/config.w32 index 2d26f0f7f45..5a7e0474935 100644 --- a/config.w32 +++ b/config.w32 @@ -429,13 +429,11 @@ if (PHP_GRPC != "no") { "src\\core\\lib\\event_engine\\channel_args_endpoint_config.cc " + "src\\core\\lib\\event_engine\\default_event_engine_factory.cc " + "src\\core\\lib\\event_engine\\event_engine.cc " + - "src\\core\\lib\\event_engine\\iomgr_engine.cc " + "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\\trace.cc " + "src\\core\\lib\\gpr\\alloc.cc " + "src\\core\\lib\\gpr\\atm.cc " + "src\\core\\lib\\gpr\\cpu_iphone.cc " + diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec index 5fec0547f6e..435754224db 100644 --- a/gRPC-C++.podspec +++ b/gRPC-C++.podspec @@ -197,9 +197,7 @@ Pod::Spec.new do |s| abseil_version = '1.20211102.0' ss.dependency 'abseil/base/base', abseil_version ss.dependency 'abseil/base/core_headers', abseil_version - ss.dependency 'abseil/cleanup/cleanup', abseil_version ss.dependency 'abseil/container/flat_hash_map', abseil_version - ss.dependency 'abseil/container/flat_hash_set', abseil_version ss.dependency 'abseil/container/inlined_vector', abseil_version ss.dependency 'abseil/functional/bind_front', abseil_version ss.dependency 'abseil/hash/hash', abseil_version @@ -667,10 +665,7 @@ Pod::Spec.new do |s| 'src/core/lib/debug/trace.h', 'src/core/lib/event_engine/channel_args_endpoint_config.h', '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', 'src/core/lib/gpr/murmur_hash.h', @@ -1487,10 +1482,7 @@ Pod::Spec.new do |s| 'src/core/lib/debug/trace.h', 'src/core/lib/event_engine/channel_args_endpoint_config.h', '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', 'src/core/lib/gpr/murmur_hash.h', diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec index c5bad19e34c..a2dd24358ad 100644 --- a/gRPC-Core.podspec +++ b/gRPC-Core.podspec @@ -175,9 +175,7 @@ Pod::Spec.new do |s| ss.dependency 'Libuv-gRPC', '0.0.10' ss.dependency 'abseil/base/base', abseil_version ss.dependency 'abseil/base/core_headers', abseil_version - ss.dependency 'abseil/cleanup/cleanup', abseil_version ss.dependency 'abseil/container/flat_hash_map', abseil_version - ss.dependency 'abseil/container/flat_hash_set', abseil_version ss.dependency 'abseil/container/inlined_vector', abseil_version ss.dependency 'abseil/functional/bind_front', abseil_version ss.dependency 'abseil/hash/hash', abseil_version @@ -1031,17 +1029,12 @@ Pod::Spec.new do |s| 'src/core/lib/event_engine/default_event_engine_factory.cc', 'src/core/lib/event_engine/event_engine.cc', 'src/core/lib/event_engine/event_engine_factory.h', - 'src/core/lib/event_engine/handle_containers.h', - 'src/core/lib/event_engine/iomgr_engine.cc', - 'src/core/lib/event_engine/iomgr_engine.h', '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', 'src/core/lib/gpr/alloc.h', 'src/core/lib/gpr/atm.cc', @@ -2099,10 +2092,7 @@ Pod::Spec.new do |s| 'src/core/lib/debug/trace.h', 'src/core/lib/event_engine/channel_args_endpoint_config.h', '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', 'src/core/lib/gpr/murmur_hash.h', diff --git a/grpc.gemspec b/grpc.gemspec index f023e972495..565d7cb0390 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -944,17 +944,12 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/event_engine/default_event_engine_factory.cc ) s.files += %w( src/core/lib/event_engine/event_engine.cc ) s.files += %w( src/core/lib/event_engine/event_engine_factory.h ) - s.files += %w( src/core/lib/event_engine/handle_containers.h ) - s.files += %w( src/core/lib/event_engine/iomgr_engine.cc ) - s.files += %w( src/core/lib/event_engine/iomgr_engine.h ) s.files += %w( src/core/lib/event_engine/memory_allocator.cc ) 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 ) s.files += %w( src/core/lib/gpr/alloc.h ) s.files += %w( src/core/lib/gpr/atm.cc ) @@ -1573,11 +1568,8 @@ Gem::Specification.new do |s| s.files += %w( third_party/abseil-cpp/absl/base/policy_checks.h ) s.files += %w( third_party/abseil-cpp/absl/base/port.h ) s.files += %w( third_party/abseil-cpp/absl/base/thread_annotations.h ) - s.files += %w( third_party/abseil-cpp/absl/cleanup/cleanup.h ) - s.files += %w( third_party/abseil-cpp/absl/cleanup/internal/cleanup.h ) s.files += %w( third_party/abseil-cpp/absl/container/fixed_array.h ) s.files += %w( third_party/abseil-cpp/absl/container/flat_hash_map.h ) - s.files += %w( third_party/abseil-cpp/absl/container/flat_hash_set.h ) s.files += %w( third_party/abseil-cpp/absl/container/inlined_vector.h ) s.files += %w( third_party/abseil-cpp/absl/container/internal/common.h ) s.files += %w( third_party/abseil-cpp/absl/container/internal/compressed_tuple.h ) diff --git a/grpc.gyp b/grpc.gyp index cc049e7a91b..f0c0f2527b7 100644 --- a/grpc.gyp +++ b/grpc.gyp @@ -360,9 +360,7 @@ 'target_name': 'grpc', 'type': 'static_library', 'dependencies': [ - 'absl/cleanup:cleanup', 'absl/container:flat_hash_map', - 'absl/container:flat_hash_set', 'absl/container:inlined_vector', 'absl/functional:bind_front', 'absl/hash:hash', @@ -798,13 +796,11 @@ 'src/core/lib/event_engine/channel_args_endpoint_config.cc', 'src/core/lib/event_engine/default_event_engine_factory.cc', 'src/core/lib/event_engine/event_engine.cc', - 'src/core/lib/event_engine/iomgr_engine.cc', '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/trace.cc', 'src/core/lib/gprpp/time.cc', 'src/core/lib/http/format_request.cc', 'src/core/lib/http/httpcli.cc', @@ -1120,9 +1116,7 @@ 'target_name': 'grpc_unsecure', 'type': 'static_library', 'dependencies': [ - 'absl/cleanup:cleanup', 'absl/container:flat_hash_map', - 'absl/container:flat_hash_set', 'absl/container:inlined_vector', 'absl/functional:bind_front', 'absl/hash:hash', @@ -1267,13 +1261,11 @@ 'src/core/lib/event_engine/channel_args_endpoint_config.cc', 'src/core/lib/event_engine/default_event_engine_factory.cc', 'src/core/lib/event_engine/event_engine.cc', - 'src/core/lib/event_engine/iomgr_engine.cc', '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/trace.cc', 'src/core/lib/gprpp/time.cc', 'src/core/lib/http/format_request.cc', 'src/core/lib/http/httpcli.cc', diff --git a/include/grpc/event_engine/event_engine.h b/include/grpc/event_engine/event_engine.h index 0454ce921c1..8a0d882c465 100644 --- a/include/grpc/event_engine/event_engine.h +++ b/include/grpc/event_engine/event_engine.h @@ -28,7 +28,7 @@ #include #include -// TODO(vigneshbabu): Define the Endpoint::Write metrics collection system +// TODO(hork): Define the Endpoint::Write metrics collection system namespace grpc_event_engine { namespace experimental { diff --git a/package.xml b/package.xml index ce7b0d76c17..ac3419a56de 100644 --- a/package.xml +++ b/package.xml @@ -926,17 +926,12 @@ - - - - - @@ -1577,11 +1572,8 @@ - - - diff --git a/src/core/lib/event_engine/default_event_engine_factory.cc b/src/core/lib/event_engine/default_event_engine_factory.cc index 214651781b4..7d1b4ea69c1 100644 --- a/src/core/lib/event_engine/default_event_engine_factory.cc +++ b/src/core/lib/event_engine/default_event_engine_factory.cc @@ -15,18 +15,16 @@ #include -#include "absl/memory/memory.h" - #include #include "src/core/lib/event_engine/event_engine_factory.h" -#include "src/core/lib/event_engine/iomgr_engine.h" namespace grpc_event_engine { namespace experimental { std::unique_ptr DefaultEventEngineFactory() { - return absl::make_unique(); + // TODO(hork): call LibuvEventEngineFactory + return nullptr; } } // namespace experimental diff --git a/src/core/lib/event_engine/event_engine.cc b/src/core/lib/event_engine/event_engine.cc index a84cb90d2a6..79490acb96b 100644 --- a/src/core/lib/event_engine/event_engine.cc +++ b/src/core/lib/event_engine/event_engine.cc @@ -18,9 +18,7 @@ #include -#include "src/core/lib/debug/trace.h" #include "src/core/lib/event_engine/event_engine_factory.h" -#include "src/core/lib/event_engine/trace.h" #include "src/core/lib/gprpp/sync.h" namespace grpc_event_engine { @@ -51,12 +49,5 @@ EventEngine* GetDefaultEventEngine() { return default_event_engine; } -void InitializeEventEngine() { - GetDefaultEventEngine()->Run([]() { - GRPC_EVENT_ENGINE_TRACE("EventEngine:%p initialized", - GetDefaultEventEngine()); - }); -} - } // namespace experimental } // namespace grpc_event_engine diff --git a/src/core/lib/event_engine/event_engine_factory.h b/src/core/lib/event_engine/event_engine_factory.h index b99dca6badc..d73b3b2785b 100644 --- a/src/core/lib/event_engine/event_engine_factory.h +++ b/src/core/lib/event_engine/event_engine_factory.h @@ -32,9 +32,6 @@ EventEngine* GetDefaultEventEngine(); /// Create an EventEngine using the default factory provided at link time. std::unique_ptr DefaultEventEngineFactory(); -// TODO(hork): remove this when any other EE usage is landed -void InitializeEventEngine(); - } // namespace experimental } // namespace grpc_event_engine diff --git a/src/core/lib/event_engine/handle_containers.h b/src/core/lib/event_engine/handle_containers.h deleted file mode 100644 index 288170e5278..00000000000 --- a/src/core/lib/event_engine/handle_containers.h +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 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_HANDLE_CONTAINERS_H -#define GRPC_CORE_LIB_EVENT_ENGINE_HANDLE_CONTAINERS_H - -#include - -#include - -#include -#include - -#include "absl/container/flat_hash_set.h" -#include "absl/hash/hash.h" - -#include - -namespace grpc_event_engine { -namespace experimental { - -// Used for heterogenous lookup of TaskHandles in abseil containers. -template -struct TaskHandleComparator { - struct Hash { - using HashType = std::pair; - using is_transparent = void; - size_t operator()(const TaskHandle& handle) const { - return absl::Hash()({handle.keys[0], handle.keys[1]}); - } - }; - struct Eq { - using is_transparent = void; - bool operator()(const TaskHandle& lhs, const TaskHandle& rhs) const { - return lhs.keys[0] == rhs.keys[0] && lhs.keys[1] == rhs.keys[1]; - } - }; -}; - -using TaskHandleSet = absl::flat_hash_set< - grpc_event_engine::experimental::EventEngine::TaskHandle, - TaskHandleComparator< - grpc_event_engine::experimental::EventEngine::TaskHandle>::Hash, - TaskHandleComparator< - grpc_event_engine::experimental::EventEngine::TaskHandle>::Eq>; - -using LookupTaskHandleSet = absl::flat_hash_set< - grpc_event_engine::experimental::EventEngine::DNSResolver::LookupTaskHandle, - TaskHandleComparator::Hash, - TaskHandleComparator::Eq>; - -} // namespace experimental -} // namespace grpc_event_engine - -#endif // GRPC_CORE_LIB_EVENT_ENGINE_HANDLE_CONTAINERS_H diff --git a/src/core/lib/event_engine/iomgr_engine.cc b/src/core/lib/event_engine/iomgr_engine.cc deleted file mode 100644 index f532f611965..00000000000 --- a/src/core/lib/event_engine/iomgr_engine.cc +++ /dev/null @@ -1,206 +0,0 @@ -// Copyright 2022 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 - -#include "src/core/lib/event_engine/iomgr_engine.h" - -#include -#include -#include - -#include "absl/cleanup/cleanup.h" -#include "absl/container/flat_hash_set.h" -#include "absl/strings/str_cat.h" -#include "absl/time/clock.h" - -#include -#include - -#include "src/core/lib/debug/trace.h" -#include "src/core/lib/event_engine/trace.h" -#include "src/core/lib/gprpp/match.h" -#include "src/core/lib/gprpp/time.h" -#include "src/core/lib/iomgr/closure.h" -#include "src/core/lib/iomgr/error.h" -#include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/iomgr/executor.h" -#include "src/core/lib/iomgr/timer.h" - -namespace grpc_event_engine { -namespace experimental { - -namespace { - -struct ClosureData { - grpc_timer timer; - grpc_closure closure; - absl::variant, EventEngine::Closure*> cb; - IomgrEventEngine* engine; - EventEngine::TaskHandle handle; -}; - -// Timer limits due to quirks in the iomgr implementation. -// If deadline <= Now, the callback will be run inline, which can result in lock -// issues. And absl::InfiniteFuture yields UB. -absl::Time Clamp(absl::Time when) { - absl::Time max = absl::Now() + absl::Hours(8766); - absl::Time min = absl::Now() + absl::Milliseconds(2); - if (when > max) return max; - if (when < min) return min; - return when; -} - -std::string HandleToString(EventEngine::TaskHandle handle) { - return absl::StrCat("{", handle.keys[0], ",", handle.keys[1], "}"); -} - -} // namespace - -IomgrEventEngine::IomgrEventEngine() {} - -IomgrEventEngine::~IomgrEventEngine() { - grpc_core::MutexLock lock(&mu_); - if (GRPC_TRACE_FLAG_ENABLED(grpc_event_engine_trace)) { - for (auto handle : known_handles_) { - gpr_log(GPR_ERROR, - "(event_engine) IomgrEventEngine:%p uncleared TaskHandle at " - "shutdown:%s", - this, HandleToString(handle).c_str()); - } - } - GPR_ASSERT(GPR_LIKELY(known_handles_.empty())); -} - -bool IomgrEventEngine::Cancel(EventEngine::TaskHandle handle) { - grpc_core::ExecCtx ctx; - grpc_core::MutexLock lock(&mu_); - if (!known_handles_.contains(handle)) return false; - auto* cd = reinterpret_cast(handle.keys[0]); - grpc_timer_cancel(&cd->timer); - known_handles_.erase(handle); - return true; -} - -EventEngine::TaskHandle IomgrEventEngine::RunAt(absl::Time when, - std::function closure) { - return RunAtInternal(when, std::move(closure)); -} - -EventEngine::TaskHandle IomgrEventEngine::RunAt(absl::Time when, - EventEngine::Closure* closure) { - return RunAtInternal(when, closure); -} - -void IomgrEventEngine::Run(std::function closure) { - RunInternal(closure); -} - -void IomgrEventEngine::Run(EventEngine::Closure* closure) { - RunInternal(closure); -} - -EventEngine::TaskHandle IomgrEventEngine::RunAtInternal( - absl::Time when, - absl::variant, EventEngine::Closure*> cb) { - when = Clamp(when); - grpc_core::ExecCtx ctx; - auto* cd = new ClosureData; - cd->cb = std::move(cb); - cd->engine = this; - GRPC_CLOSURE_INIT( - &cd->closure, - [](void* arg, grpc_error_handle error) { - auto* cd = static_cast(arg); - GRPC_EVENT_ENGINE_TRACE("IomgrEventEngine:%p executing callback:%s", - cd->engine, HandleToString(cd->handle).c_str()); - { - grpc_core::MutexLock lock(&cd->engine->mu_); - cd->engine->known_handles_.erase(cd->handle); - } - auto cleaner = absl::MakeCleanup([cd] { delete cd; }); - if (error == GRPC_ERROR_CANCELLED) return; - grpc_core::Match( - cd->cb, [](EventEngine::Closure* cb) { cb->Run(); }, - [](std::function fn) { fn(); }); - }, - cd, nullptr); - // kludge to deal with realtime/monotonic clock conversion - absl::Time absl_now = absl::Now(); - grpc_core::Duration duration = grpc_core::Duration::Milliseconds( - absl::ToInt64Milliseconds(when - absl_now) + 1); - grpc_core::ExecCtx::Get()->InvalidateNow(); - grpc_core::Timestamp when_internal = grpc_core::ExecCtx::Get()->Now() + - duration + - grpc_core::Duration::Milliseconds(1); - EventEngine::TaskHandle handle{reinterpret_cast(cd), - aba_token_.fetch_add(1)}; - grpc_core::MutexLock lock(&mu_); - known_handles_.insert(handle); - cd->handle = handle; - GRPC_EVENT_ENGINE_TRACE("IomgrEventEngine:%p scheduling callback:%s", this, - HandleToString(handle).c_str()); - grpc_timer_init(&cd->timer, when_internal, &cd->closure); - return handle; -} - -void IomgrEventEngine::RunInternal( - absl::variant, EventEngine::Closure*> cb) { - auto* cd = new ClosureData; - cd->cb = std::move(cb); - cd->engine = this; - GRPC_CLOSURE_INIT( - &cd->closure, - [](void* arg, grpc_error_handle /*error*/) { - auto* cd = static_cast(arg); - auto cleaner = absl::MakeCleanup([cd] { delete cd; }); - grpc_core::Match( - cd->cb, [](EventEngine::Closure* cb) { cb->Run(); }, - [](std::function fn) { fn(); }); - }, - cd, nullptr); - // TODO(hork): have the EE spawn dedicated closure thread(s) - grpc_core::Executor::Run(&cd->closure, GRPC_ERROR_NONE); -} - -std::unique_ptr IomgrEventEngine::GetDNSResolver( - EventEngine::DNSResolver::ResolverOptions const& /*options*/) { - GPR_ASSERT(false && "unimplemented"); -} - -bool IomgrEventEngine::IsWorkerThread() { - GPR_ASSERT(false && "unimplemented"); -} - -bool IomgrEventEngine::CancelConnect(EventEngine::ConnectionHandle /*handle*/) { - GPR_ASSERT(false && "unimplemented"); -} - -EventEngine::ConnectionHandle IomgrEventEngine::Connect( - OnConnectCallback /*on_connect*/, const ResolvedAddress& /*addr*/, - const EndpointConfig& /*args*/, MemoryAllocator /*memory_allocator*/, - absl::Time /*deadline*/) { - GPR_ASSERT(false && "unimplemented"); -} - -absl::StatusOr> -IomgrEventEngine::CreateListener( - Listener::AcceptCallback /*on_accept*/, - std::function /*on_shutdown*/, - const EndpointConfig& /*config*/, - std::unique_ptr /*memory_allocator_factory*/) { - GPR_ASSERT(false && "unimplemented"); -} - -} // namespace experimental -} // namespace grpc_event_engine diff --git a/src/core/lib/event_engine/iomgr_engine.h b/src/core/lib/event_engine/iomgr_engine.h deleted file mode 100644 index ea618e3c96a..00000000000 --- a/src/core/lib/event_engine/iomgr_engine.h +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2022 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_IOMGR_ENGINE_H -#define GRPC_CORE_LIB_EVENT_ENGINE_IOMGR_ENGINE_H -#include - -#include - -#include -#include -#include - -#include "absl/base/thread_annotations.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "absl/strings/string_view.h" -#include "absl/time/time.h" -#include "absl/types/variant.h" - -#include -#include -#include -#include - -#include "src/core/lib/event_engine/handle_containers.h" -#include "src/core/lib/gprpp/sync.h" - -namespace grpc_event_engine { -namespace experimental { - -class IomgrEventEngine final : public EventEngine { - public: - class IomgrEndpoint : public EventEngine::Endpoint { - public: - ~IomgrEndpoint() override; - void Read(std::function on_read, SliceBuffer* buffer, - const ReadArgs* args) override; - void Write(std::function on_writable, SliceBuffer* data, - const WriteArgs* args) override; - const ResolvedAddress& GetPeerAddress() const override; - const ResolvedAddress& GetLocalAddress() const override; - }; - class IomgrListener : public EventEngine::Listener { - public: - ~IomgrListener() override; - absl::StatusOr Bind(const ResolvedAddress& addr) override; - absl::Status Start() override; - }; - class IomgrDNSResolver : public EventEngine::DNSResolver { - public: - ~IomgrDNSResolver() override; - LookupTaskHandle LookupHostname(LookupHostnameCallback on_resolve, - absl::string_view name, - absl::string_view default_port, - absl::Time deadline) override; - LookupTaskHandle LookupSRV(LookupSRVCallback on_resolve, - absl::string_view name, - absl::Time deadline) override; - LookupTaskHandle LookupTXT(LookupTXTCallback on_resolve, - absl::string_view name, - absl::Time deadline) override; - bool CancelLookup(LookupTaskHandle handle) override; - }; - - IomgrEventEngine(); - ~IomgrEventEngine() override; - - absl::StatusOr> CreateListener( - Listener::AcceptCallback on_accept, - std::function on_shutdown, - const EndpointConfig& config, - std::unique_ptr memory_allocator_factory) - override; - - ConnectionHandle Connect(OnConnectCallback on_connect, - const ResolvedAddress& addr, - const EndpointConfig& args, - MemoryAllocator memory_allocator, - absl::Time deadline) override; - - bool CancelConnect(ConnectionHandle handle) override; - bool IsWorkerThread() override; - std::unique_ptr GetDNSResolver( - const DNSResolver::ResolverOptions& options) override; - void Run(Closure* closure) override; - void Run(std::function closure) override; - TaskHandle RunAt(absl::Time when, Closure* closure) override; - TaskHandle RunAt(absl::Time when, std::function closure) override; - bool Cancel(TaskHandle handle) override; - - private: - EventEngine::TaskHandle RunAtInternal( - absl::Time when, - absl::variant, EventEngine::Closure*> cb); - - void RunInternal( - absl::variant, EventEngine::Closure*> cb); - - grpc_core::Mutex mu_; - TaskHandleSet known_handles_ ABSL_GUARDED_BY(mu_); - std::atomic aba_token_{0}; -}; - -} // namespace experimental -} // namespace grpc_event_engine - -#endif // GRPC_CORE_LIB_EVENT_ENGINE_IOMGR_ENGINE_H diff --git a/src/core/lib/event_engine/trace.cc b/src/core/lib/event_engine/trace.cc deleted file mode 100644 index 52cbd35f4f5..00000000000 --- a/src/core/lib/event_engine/trace.cc +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2022 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 - -#include "src/core/lib/debug/trace.h" - -grpc_core::TraceFlag grpc_event_engine_trace(false, "event_engine"); diff --git a/src/core/lib/event_engine/trace.h b/src/core/lib/event_engine/trace.h deleted file mode 100644 index d26dee3628f..00000000000 --- a/src/core/lib/event_engine/trace.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2022 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_TRACE_H -#define GRPC_CORE_LIB_EVENT_ENGINE_TRACE_H - -#include - -#include - -#include "src/core/lib/debug/trace.h" - -extern grpc_core::TraceFlag grpc_event_engine_trace; - -#define GRPC_EVENT_ENGINE_TRACE(format, ...) \ - if (GRPC_TRACE_FLAG_ENABLED(grpc_event_engine_trace)) { \ - gpr_log(GPR_DEBUG, "(event_engine) " format, __VA_ARGS__); \ - } - -#endif // GRPC_CORE_LIB_EVENT_ENGINE_TRACE_H diff --git a/src/core/lib/surface/init.cc b/src/core/lib/surface/init.cc index 600abcae3a9..d41f029f730 100644 --- a/src/core/lib/surface/init.cc +++ b/src/core/lib/surface/init.cc @@ -38,7 +38,6 @@ #include "src/core/lib/config/core_configuration.h" #include "src/core/lib/debug/stats.h" #include "src/core/lib/debug/trace.h" -#include "src/core/lib/event_engine/event_engine_factory.h" #include "src/core/lib/gprpp/fork.h" #include "src/core/lib/gprpp/sync.h" #include "src/core/lib/gprpp/thd.h" @@ -165,7 +164,6 @@ void grpc_init(void) { } grpc_tracer_init(); grpc_iomgr_start(); - grpc_event_engine::experimental::InitializeEventEngine(); } GRPC_API_TRACE("grpc_init(void)", 0, ()); diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py index dacad2006a9..e867f8f3576 100644 --- a/src/python/grpcio/grpc_core_dependencies.py +++ b/src/python/grpcio/grpc_core_dependencies.py @@ -438,13 +438,11 @@ CORE_SOURCE_FILES = [ 'src/core/lib/event_engine/channel_args_endpoint_config.cc', 'src/core/lib/event_engine/default_event_engine_factory.cc', 'src/core/lib/event_engine/event_engine.cc', - 'src/core/lib/event_engine/iomgr_engine.cc', '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/trace.cc', 'src/core/lib/gpr/alloc.cc', 'src/core/lib/gpr/atm.cc', 'src/core/lib/gpr/cpu_iphone.cc', diff --git a/test/core/event_engine/test_init.cc b/test/core/event_engine/test_init.cc index 95cea74c928..f4c4e102799 100644 --- a/test/core/event_engine/test_init.cc +++ b/test/core/event_engine/test_init.cc @@ -23,11 +23,12 @@ namespace grpc_event_engine { namespace experimental { /// Sets the default EventEngine factory, used for testing. -/// Currently the only valid engine is 'default' or ''. -/// When more engines are added, this should be updated accordingly. +/// Valid engines are: +/// * 'default' or 'libuv': the LibuvEventEngine absl::Status InitializeTestingEventEngineFactory(absl::string_view engine) { - if (engine == "default" || engine.empty()) { - // No-op, the default will be used + if (engine == "default" || engine == "libuv") { + // TODO(hork): SetDefaultEventEngineFactory(LibuvEventEngineFactory) + gpr_log(GPR_DEBUG, "Libuv EventEngine initialized."); return absl::OkStatus(); } return absl::InvalidArgumentError( diff --git a/test/core/event_engine/test_suite/BUILD b/test/core/event_engine/test_suite/BUILD index 06a5783b2e4..eff948f7d82 100644 --- a/test/core/event_engine/test_suite/BUILD +++ b/test/core/event_engine/test_suite/BUILD @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_test", "grpc_package") +load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_package") licenses(["notice"]) @@ -69,15 +69,6 @@ grpc_cc_library( alwayslink = 1, ) -# -- EventEngine implementations -- - -grpc_cc_test( - name = "iomgr_event_engine_test", - srcs = ["iomgr_event_engine_test.cc"], - uses_polling = False, - deps = ["//test/core/event_engine/test_suite:timer"], -) - # -- Internal targets -- grpc_cc_library( diff --git a/test/core/event_engine/test_suite/README.md b/test/core/event_engine/test_suite/README.md index fd428aee290..cb756c44fbe 100644 --- a/test/core/event_engine/test_suite/README.md +++ b/test/core/event_engine/test_suite/README.md @@ -19,7 +19,7 @@ And the main function will be similar to: ``` #include "path/to/my_custom_event_engine.h" -#include "test/core/event_engine/test_suite/event_engine_test.h" +#include "src/core/event_engine/test_suite/event_engine_test.h" int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv); diff --git a/test/core/event_engine/test_suite/iomgr_event_engine_test.cc b/test/core/event_engine/test_suite/iomgr_event_engine_test.cc deleted file mode 100644 index 387ac5b5036..00000000000 --- a/test/core/event_engine/test_suite/iomgr_event_engine_test.cc +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2022 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 - -#include "src/core/lib/event_engine/iomgr_engine.h" -#include "test/core/event_engine/test_suite/event_engine_test.h" -#include "test/core/util/test_config.h" - -int main(int argc, char** argv) { - testing::InitGoogleTest(&argc, argv); - grpc::testing::TestEnvironment env(&argc, argv); - SetEventEngineFactory([]() { - return absl::make_unique< - grpc_event_engine::experimental::IomgrEventEngine>(); - }); - grpc_init(); - auto result = RUN_ALL_TESTS(); - grpc_shutdown(); - return result; -} diff --git a/test/core/event_engine/test_suite/timer_test.cc b/test/core/event_engine/test_suite/timer_test.cc index fa924dcbe3a..088dc2ce366 100644 --- a/test/core/event_engine/test_suite/timer_test.cc +++ b/test/core/event_engine/test_suite/timer_test.cc @@ -80,7 +80,7 @@ TEST_F(EventEngineTimerTest, TimersRespectScheduleOrdering) { grpc_core::MutexLock lock(&mu_); { auto engine = this->NewEventEngine(); - engine->RunAt(absl::Now() + absl::Milliseconds(100), [&]() { + engine->RunAt(absl::Now() + absl::Seconds(1), [&]() { grpc_core::MutexLock lock(&mu_); ordered.push_back(2); ++count; @@ -92,9 +92,9 @@ TEST_F(EventEngineTimerTest, TimersRespectScheduleOrdering) { ++count; cv_.Signal(); }); - // Ensure both callbacks have run. + // Ensure both callbacks have run. Simpler than a mutex. while (count != 2) { - cv_.WaitWithTimeout(&mu_, absl::Milliseconds(8)); + cv_.WaitWithTimeout(&mu_, absl::Microseconds(100)); } } // The engine is deleted, and all closures should have been flushed beforehand diff --git a/test/core/transport/bdp_estimator_test.cc b/test/core/transport/bdp_estimator_test.cc index 81ba915dff6..f839723c09c 100644 --- a/test/core/transport/bdp_estimator_test.cc +++ b/test/core/transport/bdp_estimator_test.cc @@ -39,10 +39,8 @@ namespace grpc_core { namespace testing { namespace { int g_clock = 123; -Mutex mu_; gpr_timespec fake_gpr_now(gpr_clock_type clock_type) { - MutexLock lock(&mu_); gpr_timespec ts; ts.tv_sec = g_clock; ts.tv_nsec = 0; @@ -50,10 +48,7 @@ gpr_timespec fake_gpr_now(gpr_clock_type clock_type) { return ts; } -void inc_time(void) { - MutexLock lock(&mu_); - g_clock += 30; -} +void inc_time(void) { g_clock += 30; } } // namespace TEST(BdpEstimatorTest, NoOp) { BdpEstimator est("test"); } diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index 9a0045512a7..e666a366900 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -1926,17 +1926,12 @@ src/core/lib/event_engine/channel_args_endpoint_config.h \ src/core/lib/event_engine/default_event_engine_factory.cc \ src/core/lib/event_engine/event_engine.cc \ src/core/lib/event_engine/event_engine_factory.h \ -src/core/lib/event_engine/handle_containers.h \ -src/core/lib/event_engine/iomgr_engine.cc \ -src/core/lib/event_engine/iomgr_engine.h \ 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 \ src/core/lib/gpr/alloc.h \ src/core/lib/gpr/atm.cc \ diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index 7c0ed1e1d08..0eacf41d229 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -1718,17 +1718,12 @@ src/core/lib/event_engine/channel_args_endpoint_config.h \ src/core/lib/event_engine/default_event_engine_factory.cc \ src/core/lib/event_engine/event_engine.cc \ src/core/lib/event_engine/event_engine_factory.h \ -src/core/lib/event_engine/handle_containers.h \ -src/core/lib/event_engine/iomgr_engine.cc \ -src/core/lib/event_engine/iomgr_engine.h \ 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 \ src/core/lib/gpr/alloc.cc \ src/core/lib/gpr/alloc.h \ diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json index 0df3dae4f77..0e5164ac880 100644 --- a/tools/run_tests/generated/tests.json +++ b/tools/run_tests/generated/tests.json @@ -5043,30 +5043,6 @@ ], "uses_polling": true }, - { - "args": [], - "benchmark": false, - "ci_platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "cpu_cost": 1.0, - "exclude_configs": [], - "exclude_iomgrs": [], - "flaky": false, - "gtest": true, - "language": "c++", - "name": "iomgr_event_engine_test", - "platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "uses_polling": false - }, { "args": [], "benchmark": false,