grpc 1.73.0 → 1.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +116 -53
- data/include/grpc/create_channel_from_endpoint.h +54 -0
- data/include/grpc/credentials.h +18 -6
- data/include/grpc/event_engine/event_engine.h +74 -17
- data/include/grpc/grpc_posix.h +20 -1
- data/include/grpc/impl/channel_arg_names.h +2 -4
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/support/json.h +24 -0
- data/src/core/call/client_call.cc +4 -4
- data/src/core/call/filter_fusion.h +1230 -0
- data/src/core/call/interception_chain.h +7 -11
- data/src/core/call/metadata.cc +22 -0
- data/src/core/call/metadata.h +24 -2
- data/src/core/channelz/channel_trace.cc +213 -115
- data/src/core/channelz/channel_trace.h +380 -86
- data/src/core/channelz/channelz.cc +274 -192
- data/src/core/channelz/channelz.h +224 -72
- data/src/core/channelz/channelz_registry.cc +2 -163
- data/src/core/channelz/channelz_registry.h +37 -6
- data/src/core/channelz/property_list.cc +353 -0
- data/src/core/channelz/property_list.h +204 -0
- data/src/core/channelz/v2tov1/convert.cc +683 -0
- data/src/core/channelz/v2tov1/convert.h +58 -0
- data/src/core/channelz/v2tov1/legacy_api.cc +425 -0
- data/src/core/channelz/v2tov1/legacy_api.h +32 -0
- data/src/core/channelz/v2tov1/property_list.cc +118 -0
- data/src/core/channelz/v2tov1/property_list.h +52 -0
- data/src/core/channelz/ztrace_collector.h +3 -2
- data/src/core/client_channel/backup_poller.cc +17 -2
- data/src/core/client_channel/client_channel.cc +17 -28
- data/src/core/client_channel/client_channel_filter.cc +24 -33
- data/src/core/client_channel/client_channel_filter.h +2 -2
- data/src/core/client_channel/client_channel_internal.h +2 -1
- data/src/core/client_channel/config_selector.h +8 -2
- data/src/core/client_channel/dynamic_filters.cc +5 -6
- data/src/core/client_channel/dynamic_filters.h +1 -1
- data/src/core/client_channel/global_subchannel_pool.cc +4 -1
- data/src/core/client_channel/load_balanced_call_destination.cc +6 -5
- data/src/core/client_channel/retry_filter.cc +21 -27
- data/src/core/client_channel/retry_filter.h +10 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
- data/src/core/client_channel/retry_filter_legacy_call_data.h +1 -1
- data/src/core/client_channel/retry_interceptor.cc +30 -44
- data/src/core/client_channel/retry_interceptor.h +18 -17
- data/src/core/client_channel/retry_throttle.cc +46 -61
- data/src/core/client_channel/retry_throttle.h +17 -39
- data/src/core/client_channel/subchannel.cc +57 -25
- data/src/core/client_channel/subchannel.h +10 -0
- data/src/core/config/config_vars.cc +2 -0
- data/src/core/config/core_configuration.cc +4 -1
- data/src/core/config/core_configuration.h +23 -0
- data/src/core/credentials/call/call_creds_registry.h +125 -0
- data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +6 -48
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
- data/src/core/credentials/call/jwt_util.cc +70 -0
- data/src/core/credentials/call/jwt_util.h +32 -0
- data/src/core/credentials/transport/alts/alts_credentials.cc +5 -0
- data/src/core/credentials/transport/alts/check_gcp_environment_windows.cc +2 -0
- data/src/core/credentials/transport/channel_creds_registry_init.cc +4 -2
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +72 -4
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +1 -2
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +8 -3
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +29 -24
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +19 -8
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +96 -54
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +15 -2
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
- data/src/core/credentials/transport/tls/spiffe_utils.cc +371 -0
- data/src/core/credentials/transport/tls/spiffe_utils.h +171 -0
- data/src/core/credentials/transport/tls/ssl_utils.cc +11 -10
- data/src/core/credentials/transport/tls/ssl_utils.h +4 -2
- data/src/core/credentials/transport/tls/tls_credentials.cc +2 -0
- data/src/core/credentials/transport/tls/tls_security_connector.cc +11 -26
- data/src/core/credentials/transport/tls/tls_security_connector.h +12 -12
- data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -2
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +8 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +16 -16
- data/src/core/ext/filters/http/client/http_client_filter.cc +3 -6
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -6
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +8 -8
- data/src/core/ext/filters/http/message_compress/compression_filter.h +25 -22
- data/src/core/ext/filters/http/server/http_server_filter.cc +3 -6
- data/src/core/ext/filters/http/server/http_server_filter.h +12 -11
- data/src/core/ext/filters/message_size/message_size_filter.cc +4 -4
- data/src/core/ext/filters/rbac/rbac_filter.cc +1 -1
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +3 -5
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +120 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +165 -117
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +23 -17
- data/src/core/ext/transport/chttp2/transport/frame.cc +99 -6
- data/src/core/ext/transport/chttp2/transport/frame.h +40 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +290 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +12 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1233 -0
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +712 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +11 -38
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +65 -51
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.cc +61 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +142 -0
- data/{third_party/abseil-cpp/absl/strings/cord_buffer.cc → src/core/ext/transport/chttp2/transport/http2_stats_collector.cc} +14 -14
- data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
- data/src/core/ext/transport/chttp2/transport/http2_status.h +6 -1
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +121 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +76 -0
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +0 -29
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -8
- data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
- data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +152 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +197 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +11 -0
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +607 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +39 -1
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
- data/src/core/ext/transport/chttp2/transport/writable_streams.h +254 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +41 -13
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h +4959 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +1111 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +108 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +1072 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +230 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.c +716 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.h +227 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +133 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
- data/src/core/filter/auth/auth_filters.h +2 -27
- data/src/core/filter/auth/client_auth_filter.cc +0 -118
- data/src/core/filter/filter_args.h +9 -23
- data/src/core/filter/fused_filters.cc +154 -0
- data/src/core/handshaker/handshaker.cc +23 -14
- data/src/core/handshaker/handshaker.h +3 -0
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -1
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +7 -6
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +965 -0
- data/src/core/handshaker/security/secure_endpoint.cc +98 -38
- data/src/core/handshaker/security/secure_endpoint.h +8 -0
- data/src/core/handshaker/security/security_handshaker.cc +4 -1
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +7 -1
- data/src/core/lib/channel/channel_args.cc +15 -0
- data/src/core/lib/channel/channel_args.h +3 -0
- data/src/core/lib/channel/channel_stack.cc +22 -23
- data/src/core/lib/channel/channel_stack.h +9 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
- data/src/core/lib/channel/promise_based_filter.cc +15 -25
- data/src/core/lib/channel/promise_based_filter.h +11 -10
- data/src/core/lib/debug/trace_impl.h +0 -1
- data/src/core/lib/event_engine/ares_resolver.cc +165 -46
- data/src/core/lib/event_engine/ares_resolver.h +51 -3
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +12 -6
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +2 -4
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +263 -0
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.h +107 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +31 -3
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +14 -6
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
- data/src/core/lib/event_engine/event_engine.cc +7 -0
- data/src/core/lib/event_engine/extensions/channelz.h +10 -6
- data/src/core/lib/event_engine/grpc_polled_fd.h +5 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +139 -169
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +17 -19
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +90 -131
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +13 -13
- data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -23
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +11 -23
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +3 -2
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +30 -19
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +6 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +6 -1
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +4 -4
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +3 -4
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +147 -94
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +435 -229
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +78 -50
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +46 -38
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +6 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +32 -142
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -5
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -719
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +11 -171
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +33 -22
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +13 -11
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +117 -151
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -94
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +26 -25
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +36 -62
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +7 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +12 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -1
- data/src/core/lib/event_engine/shim.cc +9 -0
- data/src/core/lib/event_engine/shim.h +3 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +7 -3
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +0 -17
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +4 -2
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -2
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +6 -1
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +2 -6
- data/src/core/lib/event_engine/windows/windows_engine.cc +0 -1
- data/src/core/lib/event_engine/windows/windows_engine.h +1 -3
- data/src/core/lib/event_engine/windows/windows_listener.cc +14 -2
- data/src/core/lib/experiments/experiments.cc +165 -99
- data/src/core/lib/experiments/experiments.h +65 -52
- data/src/core/lib/iomgr/combiner.cc +1 -1
- data/src/core/lib/iomgr/endpoint.cc +4 -3
- data/src/core/lib/iomgr/endpoint.h +7 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +7 -2
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +4 -6
- data/src/core/lib/iomgr/exec_ctx.h +3 -9
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_posix.cc +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +15 -9
- data/src/core/lib/iomgr/tcp_windows.cc +3 -2
- data/src/core/lib/promise/activity.h +3 -2
- data/src/core/lib/promise/arena_promise.h +23 -7
- data/src/core/lib/promise/detail/promise_factory.h +10 -0
- data/src/core/lib/promise/detail/promise_like.h +118 -11
- data/src/core/lib/promise/detail/promise_variant.h +50 -0
- data/src/core/lib/promise/detail/seq_state.h +687 -548
- data/src/core/lib/promise/if.h +20 -0
- data/src/core/lib/promise/inter_activity_latch.h +147 -0
- data/src/core/lib/promise/inter_activity_mutex.h +547 -0
- data/src/core/lib/promise/loop.h +65 -3
- data/src/core/lib/promise/map.h +24 -0
- data/src/core/lib/promise/match_promise.h +103 -0
- data/src/core/lib/promise/mpsc.cc +425 -0
- data/src/core/lib/promise/mpsc.h +490 -0
- data/src/core/lib/promise/party.cc +55 -6
- data/src/core/lib/promise/party.h +68 -3
- data/src/core/lib/promise/poll.h +10 -0
- data/src/core/lib/promise/race.h +31 -0
- data/src/core/lib/promise/seq.h +4 -1
- data/src/core/lib/promise/status_flag.h +7 -0
- data/src/core/lib/promise/try_seq.h +4 -1
- data/src/core/lib/promise/wait_set.cc +28 -0
- data/src/core/lib/promise/wait_set.h +86 -0
- data/src/core/lib/resource_quota/arena.h +19 -0
- data/src/core/lib/resource_quota/memory_quota.cc +90 -3
- data/src/core/lib/resource_quota/memory_quota.h +20 -9
- data/src/core/lib/resource_quota/periodic_update.cc +14 -0
- data/src/core/lib/resource_quota/periodic_update.h +8 -0
- data/src/core/lib/resource_quota/resource_quota.cc +15 -4
- data/src/core/lib/resource_quota/resource_quota.h +3 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
- data/src/core/lib/slice/slice.h +5 -0
- data/src/core/lib/surface/call.cc +5 -5
- data/src/core/lib/surface/call.h +6 -5
- data/src/core/lib/surface/channel_create.cc +88 -13
- data/src/core/lib/surface/channel_create.h +4 -0
- data/src/core/lib/surface/channel_init.cc +164 -47
- data/src/core/lib/surface/channel_init.h +64 -1
- data/src/core/lib/surface/completion_queue.cc +2 -4
- data/src/core/lib/surface/filter_stack_call.cc +19 -10
- data/src/core/lib/surface/init.cc +6 -15
- data/src/core/lib/surface/legacy_channel.cc +3 -5
- data/src/core/lib/surface/legacy_channel.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +110 -0
- data/src/core/lib/transport/promise_endpoint.h +307 -0
- data/src/core/load_balancing/child_policy_handler.cc +2 -4
- data/src/core/load_balancing/delegating_helper.h +2 -3
- data/src/core/load_balancing/endpoint_list.cc +29 -2
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +3 -3
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -1
- data/src/core/load_balancing/health_check_client.cc +1 -5
- data/src/core/load_balancing/lb_policy.h +1 -3
- data/src/core/load_balancing/oob_backend_metric.cc +1 -5
- data/src/core/load_balancing/pick_first/pick_first.cc +15 -5
- data/src/core/load_balancing/xds/cds.cc +10 -1
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +5 -3
- data/src/core/net/socket_mutator.cc +19 -0
- data/src/core/net/socket_mutator.h +25 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -0
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +6 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +2 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +8 -5
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +2 -1
- data/src/core/resolver/xds/xds_config.cc +6 -3
- data/src/core/resolver/xds/xds_config.h +9 -4
- data/src/core/resolver/xds/xds_dependency_manager.cc +22 -7
- data/src/core/resolver/xds/xds_dependency_manager.h +2 -1
- data/src/core/resolver/xds/xds_resolver.cc +31 -11
- data/src/core/server/server.cc +84 -13
- data/src/core/server/server.h +21 -2
- data/src/core/server/server_call_tracer_filter.cc +0 -66
- data/src/core/server/server_call_tracer_filter.h +64 -0
- data/src/core/server/server_config_selector_filter.cc +1 -1
- data/src/core/server/xds_server_config_fetcher.cc +63 -25
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_channel_arg_filter.cc +3 -60
- data/src/core/service_config/service_config_channel_arg_filter.h +82 -0
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/telemetry/call_tracer.cc +20 -14
- data/src/core/telemetry/call_tracer.h +22 -17
- data/src/core/telemetry/context_list_entry.cc +38 -0
- data/src/core/telemetry/context_list_entry.h +42 -12
- data/src/core/telemetry/metrics.h +8 -8
- data/src/core/telemetry/stats_data.cc +369 -343
- data/src/core/telemetry/stats_data.h +341 -244
- data/src/core/telemetry/tcp_tracer.h +1 -1
- data/src/core/transport/auth_context.cc +20 -0
- data/src/core/transport/auth_context.h +4 -0
- data/src/core/transport/auth_context_comparator_registry.h +69 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +2 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +11 -3
- data/src/core/tsi/fake_transport_security.cc +17 -0
- data/src/core/tsi/ssl_transport_security.cc +205 -32
- data/src/core/tsi/ssl_transport_security.h +19 -10
- data/src/core/tsi/ssl_transport_security_utils.cc +21 -0
- data/src/core/tsi/ssl_transport_security_utils.h +4 -0
- data/src/core/tsi/transport_security_grpc.cc +8 -0
- data/src/core/tsi/transport_security_grpc.h +15 -0
- data/src/core/util/backoff.cc +1 -5
- data/src/core/util/backoff.h +1 -0
- data/src/core/util/down_cast.h +1 -1
- data/src/core/util/function_signature.h +15 -1
- data/src/core/util/http_client/httpcli.cc +12 -5
- data/src/core/util/http_client/httpcli.h +4 -1
- data/src/core/util/http_client/httpcli_security_connector.cc +3 -1
- data/src/core/util/latent_see.cc +178 -146
- data/src/core/util/latent_see.h +249 -189
- data/src/core/util/log.cc +4 -0
- data/src/core/util/memory_usage.h +268 -0
- data/src/core/util/per_cpu.cc +2 -0
- data/src/core/util/per_cpu.h +7 -0
- data/src/core/util/shared_bit_gen.h +20 -0
- data/src/core/util/single_set_ptr.h +7 -4
- data/src/core/util/upb_utils.h +42 -0
- data/src/core/util/uri.cc +3 -2
- data/src/core/util/useful.h +144 -2
- data/src/core/util/wait_for_single_owner.cc +31 -0
- data/src/core/util/wait_for_single_owner.h +24 -0
- data/src/core/util/windows/directory_reader.cc +1 -0
- data/src/core/util/windows/thd.cc +1 -3
- data/src/core/util/work_serializer.cc +1 -1
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +32 -5
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +5 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +5 -0
- data/src/core/xds/grpc/xds_certificate_provider.cc +5 -6
- data/src/core/xds/grpc/xds_client_grpc.cc +6 -2
- data/src/core/xds/grpc/xds_common_types_parser.cc +138 -50
- data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
- data/src/core/xds/grpc/xds_http_filter.h +7 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +22 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -0
- data/src/core/xds/grpc/xds_route_config_parser.cc +15 -38
- data/src/core/xds/grpc/xds_server_grpc.cc +63 -13
- data/src/core/xds/grpc/xds_server_grpc.h +10 -2
- data/src/core/xds/grpc/xds_server_grpc_interface.h +4 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +18 -0
- data/src/core/xds/xds_client/xds_bootstrap.h +2 -0
- data/src/core/xds/xds_client/xds_client.cc +26 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -8
- data/src/ruby/ext/grpc/rb_channel.c +70 -557
- data/src/ruby/ext/grpc/rb_channel.h +0 -3
- data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
- data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
- data/src/ruby/ext/grpc/rb_grpc.c +9 -5
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
- data/src/ruby/ext/grpc/rb_loader.c +0 -4
- data/src/ruby/ext/grpc/rb_server.c +31 -50
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/core_spec.rb +22 -0
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +2 -19
- data/third_party/abseil-cpp/absl/base/attributes.h +76 -7
- data/third_party/abseil-cpp/absl/base/call_once.h +11 -12
- data/third_party/abseil-cpp/absl/base/config.h +20 -129
- data/third_party/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
- data/third_party/abseil-cpp/absl/base/internal/{nullability_impl.h → nullability_deprecated.h} +45 -8
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
- data/third_party/abseil-cpp/absl/base/nullability.h +84 -72
- data/third_party/abseil-cpp/absl/base/options.h +3 -80
- data/third_party/abseil-cpp/absl/base/policy_checks.h +7 -7
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- data/third_party/abseil-cpp/absl/container/btree_map.h +4 -2
- data/third_party/abseil-cpp/absl/container/btree_set.h +4 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -14
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -1
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +8 -5
- data/third_party/abseil-cpp/absl/container/internal/btree.h +132 -29
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +9 -10
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- data/third_party/abseil-cpp/absl/container/internal/layout.h +26 -42
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1354 -183
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +881 -1424
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
- data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
- data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
- data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/flag.h +4 -3
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +7 -6
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
- data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- data/third_party/abseil-cpp/absl/hash/hash.h +18 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -5
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -61
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +25 -68
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
- data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
- data/third_party/abseil-cpp/absl/log/check.h +2 -1
- data/third_party/abseil-cpp/absl/log/globals.h +4 -5
- data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +22 -22
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +65 -62
- data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +84 -59
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -2
- data/third_party/abseil-cpp/absl/log/internal/proto.h +3 -3
- data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
- data/third_party/abseil-cpp/absl/log/log.h +48 -35
- data/third_party/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- data/third_party/abseil-cpp/absl/meta/type_traits.h +46 -175
- data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
- data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +22 -90
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- data/third_party/abseil-cpp/absl/random/random.h +88 -53
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
- data/third_party/abseil-cpp/absl/status/status.cc +4 -8
- data/third_party/abseil-cpp/absl/status/status.h +8 -8
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
- data/third_party/abseil-cpp/absl/strings/ascii.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/ascii.h +18 -18
- data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -22
- data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
- data/third_party/abseil-cpp/absl/strings/cord.h +94 -83
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- data/third_party/abseil-cpp/absl/strings/escaping.cc +130 -149
- data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +6 -8
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- data/third_party/abseil-cpp/absl/strings/numbers.cc +53 -32
- data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
- data/third_party/abseil-cpp/absl/strings/str_cat.h +32 -32
- data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
- data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +27 -32
- data/third_party/abseil-cpp/absl/strings/strip.h +4 -4
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
- data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +12 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- data/third_party/abseil-cpp/absl/time/time.h +20 -15
- data/third_party/abseil-cpp/absl/types/optional.h +7 -747
- data/third_party/abseil-cpp/absl/types/span.h +13 -11
- data/third_party/abseil-cpp/absl/types/variant.h +5 -784
- data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
- data/third_party/cares/cares/include/ares.h +925 -460
- data/third_party/cares/cares/include/ares_dns.h +86 -71
- data/third_party/cares/cares/include/ares_dns_record.h +1118 -0
- data/third_party/cares/cares/include/ares_nameser.h +215 -189
- data/third_party/cares/cares/include/ares_version.h +37 -14
- data/third_party/cares/cares/src/lib/ares_addrinfo2hostent.c +305 -0
- data/third_party/cares/cares/src/lib/ares_addrinfo_localhost.c +245 -0
- data/third_party/cares/cares/src/lib/ares_android.c +216 -164
- data/third_party/cares/cares/src/lib/ares_android.h +25 -14
- data/third_party/cares/cares/src/lib/ares_cancel.c +68 -44
- data/third_party/cares/cares/src/lib/ares_close_sockets.c +137 -0
- data/third_party/cares/cares/src/lib/ares_conn.c +511 -0
- data/third_party/cares/cares/src/lib/ares_conn.h +196 -0
- data/third_party/cares/cares/src/lib/ares_cookie.c +461 -0
- data/third_party/cares/cares/src/lib/ares_data.c +93 -181
- data/third_party/cares/cares/src/lib/ares_data.h +50 -39
- data/third_party/cares/cares/src/lib/ares_destroy.c +127 -89
- data/third_party/cares/cares/src/lib/ares_free_hostent.c +35 -24
- data/third_party/cares/cares/src/lib/ares_free_string.c +24 -16
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +45 -38
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +549 -663
- data/third_party/cares/cares/src/lib/ares_getenv.c +25 -15
- data/third_party/cares/cares/src/lib/ares_getenv.h +26 -18
- data/third_party/cares/cares/src/lib/ares_gethostbyaddr.c +163 -221
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +222 -223
- data/third_party/cares/cares/src/lib/ares_getnameinfo.c +328 -338
- data/third_party/cares/cares/src/lib/ares_hosts_file.c +952 -0
- data/third_party/cares/cares/src/lib/ares_inet_net_pton.h +25 -19
- data/third_party/cares/cares/src/lib/ares_init.c +425 -2091
- data/third_party/cares/cares/src/lib/ares_ipv6.h +63 -33
- data/third_party/cares/cares/src/lib/ares_library_init.c +110 -54
- data/third_party/cares/cares/src/lib/ares_metrics.c +261 -0
- data/third_party/cares/cares/src/lib/ares_options.c +418 -332
- data/third_party/cares/cares/src/lib/ares_parse_into_addrinfo.c +179 -0
- data/third_party/cares/cares/src/lib/ares_private.h +558 -356
- data/third_party/cares/cares/src/lib/ares_process.c +1224 -1369
- data/third_party/cares/cares/src/lib/ares_qcache.c +430 -0
- data/third_party/cares/cares/src/lib/ares_query.c +126 -121
- data/third_party/cares/cares/src/lib/ares_search.c +564 -262
- data/third_party/cares/cares/src/lib/ares_send.c +264 -93
- data/third_party/cares/cares/src/lib/ares_set_socket_functions.c +588 -0
- data/third_party/cares/cares/src/lib/ares_setup.h +115 -111
- data/third_party/cares/cares/src/lib/ares_socket.c +425 -0
- data/third_party/cares/cares/src/lib/ares_socket.h +163 -0
- data/third_party/cares/cares/src/lib/ares_sortaddrinfo.c +447 -0
- data/third_party/cares/cares/src/lib/ares_strerror.c +83 -48
- data/third_party/cares/cares/src/lib/ares_sysconfig.c +639 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_files.c +839 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_mac.c +373 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_win.c +621 -0
- data/third_party/cares/cares/src/lib/ares_timeout.c +136 -73
- data/third_party/cares/cares/src/lib/ares_update_servers.c +1362 -0
- data/third_party/cares/cares/src/lib/ares_version.c +29 -4
- data/third_party/cares/cares/src/lib/config-dos.h +88 -89
- data/third_party/cares/cares/src/lib/config-win32.h +122 -77
- data/third_party/cares/cares/src/lib/dsa/ares_array.c +394 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable.c +447 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable.h +174 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_asvp.c +224 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_dict.c +228 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_strvp.c +210 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_szvp.c +188 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_vpstr.c +186 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_vpvp.c +194 -0
- data/third_party/cares/cares/src/lib/dsa/ares_llist.c +382 -0
- data/third_party/cares/cares/src/lib/dsa/ares_slist.c +479 -0
- data/third_party/cares/cares/src/lib/dsa/ares_slist.h +207 -0
- data/third_party/cares/cares/src/lib/event/ares_event.h +191 -0
- data/third_party/cares/cares/src/lib/event/ares_event_configchg.c +743 -0
- data/third_party/cares/cares/src/lib/event/ares_event_epoll.c +192 -0
- data/third_party/cares/cares/src/lib/event/ares_event_kqueue.c +248 -0
- data/third_party/cares/cares/src/lib/event/ares_event_poll.c +140 -0
- data/third_party/cares/cares/src/lib/event/ares_event_select.c +159 -0
- data/third_party/cares/cares/src/lib/event/ares_event_thread.c +567 -0
- data/third_party/cares/cares/src/lib/event/ares_event_wake_pipe.c +166 -0
- data/third_party/cares/cares/src/lib/event/ares_event_win32.c +978 -0
- data/third_party/cares/cares/src/lib/event/ares_event_win32.h +161 -0
- data/third_party/cares/cares/src/lib/include/ares_array.h +276 -0
- data/third_party/cares/cares/src/lib/include/ares_buf.h +732 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_asvp.h +130 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_dict.h +123 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_strvp.h +130 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_szvp.h +118 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_vpstr.h +111 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_vpvp.h +128 -0
- data/third_party/cares/cares/src/lib/include/ares_llist.h +239 -0
- data/third_party/cares/cares/src/lib/include/ares_mem.h +38 -0
- data/third_party/cares/cares/src/lib/include/ares_str.h +244 -0
- data/third_party/cares/cares/src/lib/inet_net_pton.c +202 -157
- data/third_party/cares/cares/src/lib/inet_ntop.c +87 -69
- data/third_party/cares/cares/src/lib/legacy/ares_create_query.c +78 -0
- data/third_party/cares/cares/src/lib/legacy/ares_expand_name.c +99 -0
- data/third_party/cares/cares/src/lib/legacy/ares_expand_string.c +107 -0
- data/third_party/cares/cares/src/lib/legacy/ares_fds.c +80 -0
- data/third_party/cares/cares/src/lib/legacy/ares_getsock.c +85 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_a_reply.c +107 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_aaaa_reply.c +109 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_caa_reply.c +137 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_mx_reply.c +110 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_naptr_reply.c +132 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_ns_reply.c +154 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_ptr_reply.c +213 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_soa_reply.c +115 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_srv_reply.c +114 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_txt_reply.c +144 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_uri_reply.c +113 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_mapping.c +982 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_multistring.c +307 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_multistring.h +72 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_name.c +673 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_parse.c +1329 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_private.h +273 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_record.c +1661 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_write.c +1229 -0
- data/third_party/cares/cares/src/lib/str/ares_buf.c +1498 -0
- data/third_party/cares/cares/src/lib/str/ares_str.c +508 -0
- data/third_party/cares/cares/src/lib/str/ares_strsplit.c +90 -0
- data/third_party/cares/cares/src/lib/str/ares_strsplit.h +51 -0
- data/third_party/cares/cares/src/lib/thirdparty/apple/dnsinfo.h +122 -0
- data/third_party/cares/cares/src/lib/util/ares_iface_ips.c +628 -0
- data/third_party/cares/cares/src/lib/util/ares_iface_ips.h +139 -0
- data/third_party/cares/cares/src/lib/util/ares_math.c +158 -0
- data/third_party/cares/cares/src/lib/util/ares_math.h +45 -0
- data/third_party/cares/cares/src/lib/util/ares_rand.c +389 -0
- data/third_party/cares/cares/src/lib/util/ares_rand.h +36 -0
- data/third_party/cares/cares/src/lib/util/ares_threads.c +614 -0
- data/third_party/cares/cares/src/lib/util/ares_threads.h +60 -0
- data/third_party/cares/cares/src/lib/util/ares_time.h +48 -0
- data/third_party/cares/cares/src/lib/util/ares_timeval.c +95 -0
- data/third_party/cares/cares/src/lib/util/ares_uri.c +1626 -0
- data/third_party/cares/cares/src/lib/util/ares_uri.h +252 -0
- data/third_party/cares/cares/src/lib/windows_port.c +16 -9
- metadata +192 -68
- data/src/core/lib/event_engine/forkable.cc +0 -105
- data/src/core/lib/event_engine/forkable.h +0 -67
- data/src/core/lib/iomgr/python_util.h +0 -46
- data/src/core/util/ring_buffer.h +0 -122
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
- data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
- data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
- data/third_party/cares/cares/include/ares_rules.h +0 -125
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +0 -266
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +0 -240
- data/third_party/cares/cares/src/lib/ares__close_sockets.c +0 -61
- data/third_party/cares/cares/src/lib/ares__get_hostent.c +0 -260
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +0 -229
- data/third_party/cares/cares/src/lib/ares__read_line.c +0 -73
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +0 -258
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +0 -507
- data/third_party/cares/cares/src/lib/ares__timeval.c +0 -111
- data/third_party/cares/cares/src/lib/ares_create_query.c +0 -197
- data/third_party/cares/cares/src/lib/ares_expand_name.c +0 -311
- data/third_party/cares/cares/src/lib/ares_expand_string.c +0 -67
- data/third_party/cares/cares/src/lib/ares_fds.c +0 -59
- data/third_party/cares/cares/src/lib/ares_getsock.c +0 -66
- data/third_party/cares/cares/src/lib/ares_iphlpapi.h +0 -221
- data/third_party/cares/cares/src/lib/ares_llist.c +0 -63
- data/third_party/cares/cares/src/lib/ares_llist.h +0 -39
- data/third_party/cares/cares/src/lib/ares_mkquery.c +0 -24
- data/third_party/cares/cares/src/lib/ares_nowarn.c +0 -260
- data/third_party/cares/cares/src/lib/ares_nowarn.h +0 -61
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +0 -90
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +0 -92
- data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +0 -199
- data/third_party/cares/cares/src/lib/ares_parse_mx_reply.c +0 -164
- data/third_party/cares/cares/src/lib/ares_parse_naptr_reply.c +0 -183
- data/third_party/cares/cares/src/lib/ares_parse_ns_reply.c +0 -177
- data/third_party/cares/cares/src/lib/ares_parse_ptr_reply.c +0 -228
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +0 -179
- data/third_party/cares/cares/src/lib/ares_parse_srv_reply.c +0 -168
- data/third_party/cares/cares/src/lib/ares_parse_txt_reply.c +0 -214
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +0 -184
- data/third_party/cares/cares/src/lib/ares_platform.c +0 -11042
- data/third_party/cares/cares/src/lib/ares_platform.h +0 -43
- data/third_party/cares/cares/src/lib/ares_rand.c +0 -279
- data/third_party/cares/cares/src/lib/ares_strcasecmp.c +0 -66
- data/third_party/cares/cares/src/lib/ares_strcasecmp.h +0 -30
- data/third_party/cares/cares/src/lib/ares_strdup.c +0 -42
- data/third_party/cares/cares/src/lib/ares_strdup.h +0 -24
- data/third_party/cares/cares/src/lib/ares_strsplit.c +0 -94
- data/third_party/cares/cares/src/lib/ares_strsplit.h +0 -42
- data/third_party/cares/cares/src/lib/ares_writev.c +0 -79
- data/third_party/cares/cares/src/lib/ares_writev.h +0 -36
- data/third_party/cares/cares/src/lib/bitncmp.c +0 -59
- data/third_party/cares/cares/src/lib/bitncmp.h +0 -26
- data/third_party/cares/cares/src/lib/setup_once.h +0 -554
- data/third_party/cares/cares/src/tools/ares_getopt.h +0 -53
@@ -59,7 +59,8 @@ namespace grpc_core {
|
|
59
59
|
#if defined(GRPC_CFSTREAM)
|
60
60
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT
|
61
61
|
inline bool IsCallTracerInTransportEnabled() { return true; }
|
62
|
-
inline bool
|
62
|
+
inline bool IsChannelzUseV2ForV1ApiEnabled() { return false; }
|
63
|
+
inline bool IsChannelzUseV2ForV1ServiceEnabled() { return false; }
|
63
64
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
|
64
65
|
inline bool IsChaoticGoodFramingLayerEnabled() { return true; }
|
65
66
|
inline bool IsChttp2BoundWriteSizeEnabled() { return false; }
|
@@ -68,7 +69,8 @@ inline bool IsErrorFlattenEnabled() { return false; }
|
|
68
69
|
inline bool IsEventEngineClientEnabled() { return true; }
|
69
70
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS
|
70
71
|
inline bool IsEventEngineDnsEnabled() { return true; }
|
71
|
-
|
72
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS_NON_CLIENT_CHANNEL
|
73
|
+
inline bool IsEventEngineDnsNonClientChannelEnabled() { return true; }
|
72
74
|
inline bool IsEventEngineForkEnabled() { return false; }
|
73
75
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
|
74
76
|
inline bool IsEventEngineListenerEnabled() { return true; }
|
@@ -79,29 +81,28 @@ inline bool IsEventEngineForAllOtherEndpointsEnabled() { return true; }
|
|
79
81
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_SECURE_ENDPOINT
|
80
82
|
inline bool IsEventEngineSecureEndpointEnabled() { return true; }
|
81
83
|
inline bool IsFreeLargeAllocatorEnabled() { return false; }
|
84
|
+
inline bool IsFuseFiltersEnabled() { return false; }
|
82
85
|
inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
|
83
86
|
inline bool IsLocalConnectorSecureEnabled() { return false; }
|
84
87
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_INFLIGHT_PINGS_STRICT_LIMIT
|
85
88
|
inline bool IsMaxInflightPingsStrictLimitEnabled() { return true; }
|
86
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE
|
87
|
-
inline bool IsMaxPingsWoDataThrottleEnabled() { return true; }
|
88
89
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
89
90
|
inline bool IsMonitoringExperimentEnabled() { return true; }
|
90
91
|
inline bool IsMultipingEnabled() { return false; }
|
92
|
+
inline bool IsPickFirstIgnoreEmptyUpdatesEnabled() { return false; }
|
93
|
+
inline bool IsPipelinedReadSecureEndpointEnabled() { return false; }
|
91
94
|
inline bool IsPollsetAlternativeEnabled() { return false; }
|
92
|
-
|
93
|
-
inline bool IsPosixEeSkipGrpcInitEnabled() { return true; }
|
95
|
+
inline bool IsPrioritizeFinishedRequestsEnabled() { return false; }
|
94
96
|
inline bool IsPromiseBasedHttp2ClientTransportEnabled() { return false; }
|
95
97
|
inline bool IsPromiseBasedHttp2ServerTransportEnabled() { return false; }
|
96
98
|
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
97
99
|
inline bool IsRetryInCallv3Enabled() { return false; }
|
98
|
-
inline bool
|
99
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
|
100
|
-
inline bool IsRstStreamFixEnabled() { return true; }
|
100
|
+
inline bool IsRrWrrConnectFromRandomIndexEnabled() { return false; }
|
101
101
|
inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
|
102
102
|
inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; }
|
103
103
|
inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; }
|
104
|
-
|
104
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_GLOBAL_CALLBACKS_OWNERSHIP
|
105
|
+
inline bool IsServerGlobalCallbacksOwnershipEnabled() { return true; }
|
105
106
|
#define GRPC_EXPERIMENT_IS_INCLUDED_SHARD_GLOBAL_CONNECTION_POOL
|
106
107
|
inline bool IsShardGlobalConnectionPoolEnabled() { return true; }
|
107
108
|
inline bool IsSleepPromiseExecCtxRemovalEnabled() { return false; }
|
@@ -113,7 +114,8 @@ inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
|
113
114
|
#elif defined(GPR_WINDOWS)
|
114
115
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT
|
115
116
|
inline bool IsCallTracerInTransportEnabled() { return true; }
|
116
|
-
inline bool
|
117
|
+
inline bool IsChannelzUseV2ForV1ApiEnabled() { return false; }
|
118
|
+
inline bool IsChannelzUseV2ForV1ServiceEnabled() { return false; }
|
117
119
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
|
118
120
|
inline bool IsChaoticGoodFramingLayerEnabled() { return true; }
|
119
121
|
inline bool IsChttp2BoundWriteSizeEnabled() { return false; }
|
@@ -122,7 +124,8 @@ inline bool IsErrorFlattenEnabled() { return false; }
|
|
122
124
|
inline bool IsEventEngineClientEnabled() { return true; }
|
123
125
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS
|
124
126
|
inline bool IsEventEngineDnsEnabled() { return true; }
|
125
|
-
|
127
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS_NON_CLIENT_CHANNEL
|
128
|
+
inline bool IsEventEngineDnsNonClientChannelEnabled() { return true; }
|
126
129
|
inline bool IsEventEngineForkEnabled() { return false; }
|
127
130
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
|
128
131
|
inline bool IsEventEngineListenerEnabled() { return true; }
|
@@ -133,29 +136,28 @@ inline bool IsEventEngineForAllOtherEndpointsEnabled() { return true; }
|
|
133
136
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_SECURE_ENDPOINT
|
134
137
|
inline bool IsEventEngineSecureEndpointEnabled() { return true; }
|
135
138
|
inline bool IsFreeLargeAllocatorEnabled() { return false; }
|
139
|
+
inline bool IsFuseFiltersEnabled() { return false; }
|
136
140
|
inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
|
137
141
|
inline bool IsLocalConnectorSecureEnabled() { return false; }
|
138
142
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_INFLIGHT_PINGS_STRICT_LIMIT
|
139
143
|
inline bool IsMaxInflightPingsStrictLimitEnabled() { return true; }
|
140
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE
|
141
|
-
inline bool IsMaxPingsWoDataThrottleEnabled() { return true; }
|
142
144
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
143
145
|
inline bool IsMonitoringExperimentEnabled() { return true; }
|
144
146
|
inline bool IsMultipingEnabled() { return false; }
|
147
|
+
inline bool IsPickFirstIgnoreEmptyUpdatesEnabled() { return false; }
|
148
|
+
inline bool IsPipelinedReadSecureEndpointEnabled() { return false; }
|
145
149
|
inline bool IsPollsetAlternativeEnabled() { return false; }
|
146
|
-
|
147
|
-
inline bool IsPosixEeSkipGrpcInitEnabled() { return true; }
|
150
|
+
inline bool IsPrioritizeFinishedRequestsEnabled() { return false; }
|
148
151
|
inline bool IsPromiseBasedHttp2ClientTransportEnabled() { return false; }
|
149
152
|
inline bool IsPromiseBasedHttp2ServerTransportEnabled() { return false; }
|
150
153
|
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
151
154
|
inline bool IsRetryInCallv3Enabled() { return false; }
|
152
|
-
inline bool
|
153
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
|
154
|
-
inline bool IsRstStreamFixEnabled() { return true; }
|
155
|
+
inline bool IsRrWrrConnectFromRandomIndexEnabled() { return false; }
|
155
156
|
inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
|
156
157
|
inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; }
|
157
158
|
inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; }
|
158
|
-
|
159
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_GLOBAL_CALLBACKS_OWNERSHIP
|
160
|
+
inline bool IsServerGlobalCallbacksOwnershipEnabled() { return true; }
|
159
161
|
#define GRPC_EXPERIMENT_IS_INCLUDED_SHARD_GLOBAL_CONNECTION_POOL
|
160
162
|
inline bool IsShardGlobalConnectionPoolEnabled() { return true; }
|
161
163
|
inline bool IsSleepPromiseExecCtxRemovalEnabled() { return false; }
|
@@ -167,7 +169,8 @@ inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
|
167
169
|
#else
|
168
170
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT
|
169
171
|
inline bool IsCallTracerInTransportEnabled() { return true; }
|
170
|
-
inline bool
|
172
|
+
inline bool IsChannelzUseV2ForV1ApiEnabled() { return false; }
|
173
|
+
inline bool IsChannelzUseV2ForV1ServiceEnabled() { return false; }
|
171
174
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
|
172
175
|
inline bool IsChaoticGoodFramingLayerEnabled() { return true; }
|
173
176
|
inline bool IsChttp2BoundWriteSizeEnabled() { return false; }
|
@@ -176,7 +179,8 @@ inline bool IsErrorFlattenEnabled() { return false; }
|
|
176
179
|
inline bool IsEventEngineClientEnabled() { return true; }
|
177
180
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS
|
178
181
|
inline bool IsEventEngineDnsEnabled() { return true; }
|
179
|
-
|
182
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS_NON_CLIENT_CHANNEL
|
183
|
+
inline bool IsEventEngineDnsNonClientChannelEnabled() { return true; }
|
180
184
|
inline bool IsEventEngineForkEnabled() { return false; }
|
181
185
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
|
182
186
|
inline bool IsEventEngineListenerEnabled() { return true; }
|
@@ -187,29 +191,28 @@ inline bool IsEventEngineForAllOtherEndpointsEnabled() { return true; }
|
|
187
191
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_SECURE_ENDPOINT
|
188
192
|
inline bool IsEventEngineSecureEndpointEnabled() { return true; }
|
189
193
|
inline bool IsFreeLargeAllocatorEnabled() { return false; }
|
194
|
+
inline bool IsFuseFiltersEnabled() { return false; }
|
190
195
|
inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
|
191
196
|
inline bool IsLocalConnectorSecureEnabled() { return false; }
|
192
197
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_INFLIGHT_PINGS_STRICT_LIMIT
|
193
198
|
inline bool IsMaxInflightPingsStrictLimitEnabled() { return true; }
|
194
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE
|
195
|
-
inline bool IsMaxPingsWoDataThrottleEnabled() { return true; }
|
196
199
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
197
200
|
inline bool IsMonitoringExperimentEnabled() { return true; }
|
198
201
|
inline bool IsMultipingEnabled() { return false; }
|
202
|
+
inline bool IsPickFirstIgnoreEmptyUpdatesEnabled() { return false; }
|
203
|
+
inline bool IsPipelinedReadSecureEndpointEnabled() { return false; }
|
199
204
|
inline bool IsPollsetAlternativeEnabled() { return false; }
|
200
|
-
|
201
|
-
inline bool IsPosixEeSkipGrpcInitEnabled() { return true; }
|
205
|
+
inline bool IsPrioritizeFinishedRequestsEnabled() { return false; }
|
202
206
|
inline bool IsPromiseBasedHttp2ClientTransportEnabled() { return false; }
|
203
207
|
inline bool IsPromiseBasedHttp2ServerTransportEnabled() { return false; }
|
204
208
|
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
205
209
|
inline bool IsRetryInCallv3Enabled() { return false; }
|
206
|
-
inline bool
|
207
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
|
208
|
-
inline bool IsRstStreamFixEnabled() { return true; }
|
210
|
+
inline bool IsRrWrrConnectFromRandomIndexEnabled() { return false; }
|
209
211
|
inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
|
210
212
|
inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; }
|
211
213
|
inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; }
|
212
|
-
|
214
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_GLOBAL_CALLBACKS_OWNERSHIP
|
215
|
+
inline bool IsServerGlobalCallbacksOwnershipEnabled() { return true; }
|
213
216
|
#define GRPC_EXPERIMENT_IS_INCLUDED_SHARD_GLOBAL_CONNECTION_POOL
|
214
217
|
inline bool IsShardGlobalConnectionPoolEnabled() { return true; }
|
215
218
|
inline bool IsSleepPromiseExecCtxRemovalEnabled() { return false; }
|
@@ -222,7 +225,8 @@ inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
|
222
225
|
#else
|
223
226
|
enum ExperimentIds {
|
224
227
|
kExperimentIdCallTracerInTransport,
|
225
|
-
|
228
|
+
kExperimentIdChannelzUseV2ForV1Api,
|
229
|
+
kExperimentIdChannelzUseV2ForV1Service,
|
226
230
|
kExperimentIdChaoticGoodFramingLayer,
|
227
231
|
kExperimentIdChttp2BoundWriteSize,
|
228
232
|
kExperimentIdErrorFlatten,
|
@@ -235,20 +239,21 @@ enum ExperimentIds {
|
|
235
239
|
kExperimentIdEventEngineForAllOtherEndpoints,
|
236
240
|
kExperimentIdEventEngineSecureEndpoint,
|
237
241
|
kExperimentIdFreeLargeAllocator,
|
242
|
+
kExperimentIdFuseFilters,
|
238
243
|
kExperimentIdKeepAlivePingTimerBatch,
|
239
244
|
kExperimentIdLocalConnectorSecure,
|
240
245
|
kExperimentIdMaxInflightPingsStrictLimit,
|
241
|
-
kExperimentIdMaxPingsWoDataThrottle,
|
242
246
|
kExperimentIdMonitoringExperiment,
|
243
247
|
kExperimentIdMultiping,
|
248
|
+
kExperimentIdPickFirstIgnoreEmptyUpdates,
|
249
|
+
kExperimentIdPipelinedReadSecureEndpoint,
|
244
250
|
kExperimentIdPollsetAlternative,
|
245
|
-
|
251
|
+
kExperimentIdPrioritizeFinishedRequests,
|
246
252
|
kExperimentIdPromiseBasedHttp2ClientTransport,
|
247
253
|
kExperimentIdPromiseBasedHttp2ServerTransport,
|
248
254
|
kExperimentIdPromiseBasedInprocTransport,
|
249
255
|
kExperimentIdRetryInCallv3,
|
250
|
-
|
251
|
-
kExperimentIdRstStreamFix,
|
256
|
+
kExperimentIdRrWrrConnectFromRandomIndex,
|
252
257
|
kExperimentIdScheduleCancellationOverWrite,
|
253
258
|
kExperimentIdSecureEndpointOffloadLargeReads,
|
254
259
|
kExperimentIdSecureEndpointOffloadLargeWrites,
|
@@ -265,9 +270,13 @@ enum ExperimentIds {
|
|
265
270
|
inline bool IsCallTracerInTransportEnabled() {
|
266
271
|
return IsExperimentEnabled<kExperimentIdCallTracerInTransport>();
|
267
272
|
}
|
268
|
-
#define
|
269
|
-
inline bool
|
270
|
-
return IsExperimentEnabled<
|
273
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_CHANNELZ_USE_V2_FOR_V1_API
|
274
|
+
inline bool IsChannelzUseV2ForV1ApiEnabled() {
|
275
|
+
return IsExperimentEnabled<kExperimentIdChannelzUseV2ForV1Api>();
|
276
|
+
}
|
277
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_CHANNELZ_USE_V2_FOR_V1_SERVICE
|
278
|
+
inline bool IsChannelzUseV2ForV1ServiceEnabled() {
|
279
|
+
return IsExperimentEnabled<kExperimentIdChannelzUseV2ForV1Service>();
|
271
280
|
}
|
272
281
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
|
273
282
|
inline bool IsChaoticGoodFramingLayerEnabled() {
|
@@ -317,6 +326,10 @@ inline bool IsEventEngineSecureEndpointEnabled() {
|
|
317
326
|
inline bool IsFreeLargeAllocatorEnabled() {
|
318
327
|
return IsExperimentEnabled<kExperimentIdFreeLargeAllocator>();
|
319
328
|
}
|
329
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_FUSE_FILTERS
|
330
|
+
inline bool IsFuseFiltersEnabled() {
|
331
|
+
return IsExperimentEnabled<kExperimentIdFuseFilters>();
|
332
|
+
}
|
320
333
|
#define GRPC_EXPERIMENT_IS_INCLUDED_KEEP_ALIVE_PING_TIMER_BATCH
|
321
334
|
inline bool IsKeepAlivePingTimerBatchEnabled() {
|
322
335
|
return IsExperimentEnabled<kExperimentIdKeepAlivePingTimerBatch>();
|
@@ -329,10 +342,6 @@ inline bool IsLocalConnectorSecureEnabled() {
|
|
329
342
|
inline bool IsMaxInflightPingsStrictLimitEnabled() {
|
330
343
|
return IsExperimentEnabled<kExperimentIdMaxInflightPingsStrictLimit>();
|
331
344
|
}
|
332
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE
|
333
|
-
inline bool IsMaxPingsWoDataThrottleEnabled() {
|
334
|
-
return IsExperimentEnabled<kExperimentIdMaxPingsWoDataThrottle>();
|
335
|
-
}
|
336
345
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
337
346
|
inline bool IsMonitoringExperimentEnabled() {
|
338
347
|
return IsExperimentEnabled<kExperimentIdMonitoringExperiment>();
|
@@ -341,13 +350,21 @@ inline bool IsMonitoringExperimentEnabled() {
|
|
341
350
|
inline bool IsMultipingEnabled() {
|
342
351
|
return IsExperimentEnabled<kExperimentIdMultiping>();
|
343
352
|
}
|
353
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_IGNORE_EMPTY_UPDATES
|
354
|
+
inline bool IsPickFirstIgnoreEmptyUpdatesEnabled() {
|
355
|
+
return IsExperimentEnabled<kExperimentIdPickFirstIgnoreEmptyUpdates>();
|
356
|
+
}
|
357
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_PIPELINED_READ_SECURE_ENDPOINT
|
358
|
+
inline bool IsPipelinedReadSecureEndpointEnabled() {
|
359
|
+
return IsExperimentEnabled<kExperimentIdPipelinedReadSecureEndpoint>();
|
360
|
+
}
|
344
361
|
#define GRPC_EXPERIMENT_IS_INCLUDED_POLLSET_ALTERNATIVE
|
345
362
|
inline bool IsPollsetAlternativeEnabled() {
|
346
363
|
return IsExperimentEnabled<kExperimentIdPollsetAlternative>();
|
347
364
|
}
|
348
|
-
#define
|
349
|
-
inline bool
|
350
|
-
return IsExperimentEnabled<
|
365
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_PRIORITIZE_FINISHED_REQUESTS
|
366
|
+
inline bool IsPrioritizeFinishedRequestsEnabled() {
|
367
|
+
return IsExperimentEnabled<kExperimentIdPrioritizeFinishedRequests>();
|
351
368
|
}
|
352
369
|
#define GRPC_EXPERIMENT_IS_INCLUDED_PROMISE_BASED_HTTP2_CLIENT_TRANSPORT
|
353
370
|
inline bool IsPromiseBasedHttp2ClientTransportEnabled() {
|
@@ -365,13 +382,9 @@ inline bool IsPromiseBasedInprocTransportEnabled() {
|
|
365
382
|
inline bool IsRetryInCallv3Enabled() {
|
366
383
|
return IsExperimentEnabled<kExperimentIdRetryInCallv3>();
|
367
384
|
}
|
368
|
-
#define
|
369
|
-
inline bool
|
370
|
-
return IsExperimentEnabled<
|
371
|
-
}
|
372
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
|
373
|
-
inline bool IsRstStreamFixEnabled() {
|
374
|
-
return IsExperimentEnabled<kExperimentIdRstStreamFix>();
|
385
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_RR_WRR_CONNECT_FROM_RANDOM_INDEX
|
386
|
+
inline bool IsRrWrrConnectFromRandomIndexEnabled() {
|
387
|
+
return IsExperimentEnabled<kExperimentIdRrWrrConnectFromRandomIndex>();
|
375
388
|
}
|
376
389
|
#define GRPC_EXPERIMENT_IS_INCLUDED_SCHEDULE_CANCELLATION_OVER_WRITE
|
377
390
|
inline bool IsScheduleCancellationOverWriteEnabled() {
|
@@ -166,7 +166,7 @@ static void queue_offload(grpc_core::Combiner* lock) {
|
|
166
166
|
}
|
167
167
|
|
168
168
|
bool grpc_combiner_continue_exec_ctx() {
|
169
|
-
|
169
|
+
GRPC_LATENT_SEE_SCOPE("grpc_combiner_continue_exec_ctx");
|
170
170
|
|
171
171
|
grpc_core::Combiner* lock =
|
172
172
|
grpc_core::ExecCtx::Get()->combiner_data()->active_combiner;
|
@@ -25,9 +25,10 @@ void grpc_endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
25
25
|
ep->vtable->read(ep, slices, cb, urgent, min_progress_size);
|
26
26
|
}
|
27
27
|
|
28
|
-
void grpc_endpoint_write(
|
29
|
-
|
30
|
-
|
28
|
+
void grpc_endpoint_write(
|
29
|
+
grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
30
|
+
grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs args) {
|
31
|
+
ep->vtable->write(ep, slices, cb, std::move(args));
|
31
32
|
}
|
32
33
|
|
33
34
|
void grpc_endpoint_add_to_pollset(grpc_endpoint* ep, grpc_pollset* pollset) {
|
@@ -19,6 +19,7 @@
|
|
19
19
|
#ifndef GRPC_SRC_CORE_LIB_IOMGR_ENDPOINT_H
|
20
20
|
#define GRPC_SRC_CORE_LIB_IOMGR_ENDPOINT_H
|
21
21
|
|
22
|
+
#include <grpc/event_engine/event_engine.h>
|
22
23
|
#include <grpc/slice.h>
|
23
24
|
#include <grpc/slice_buffer.h>
|
24
25
|
#include <grpc/support/port_platform.h>
|
@@ -37,8 +38,9 @@ typedef struct grpc_endpoint_vtable grpc_endpoint_vtable;
|
|
37
38
|
struct grpc_endpoint_vtable {
|
38
39
|
void (*read)(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
39
40
|
bool urgent, int min_progress_size);
|
40
|
-
void (*write)(
|
41
|
-
|
41
|
+
void (*write)(
|
42
|
+
grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
43
|
+
grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs args);
|
42
44
|
void (*add_to_pollset)(grpc_endpoint* ep, grpc_pollset* pollset);
|
43
45
|
void (*add_to_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
44
46
|
void (*delete_from_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
@@ -79,8 +81,9 @@ int grpc_endpoint_get_fd(grpc_endpoint* ep);
|
|
79
81
|
// \a max_frame_size. A hint to the endpoint implementation to construct
|
80
82
|
// frames which do not exceed the specified size.
|
81
83
|
//
|
82
|
-
void grpc_endpoint_write(
|
83
|
-
|
84
|
+
void grpc_endpoint_write(
|
85
|
+
grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
86
|
+
grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs arg);
|
84
87
|
|
85
88
|
// Causes any pending and future read/write callbacks to run immediately with
|
86
89
|
// success==0
|
@@ -244,8 +244,9 @@ static void CFStreamRead(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
244
244
|
}
|
245
245
|
|
246
246
|
static void CFStreamWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
247
|
-
grpc_closure* cb,
|
248
|
-
|
247
|
+
grpc_closure* cb,
|
248
|
+
grpc_event_engine::experimental::EventEngine::
|
249
|
+
Endpoint::WriteArgs /*args*/) {
|
249
250
|
CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
|
250
251
|
GRPC_TRACE_VLOG(tcp, 2) << "CFStream endpoint:" << ep_impl << " write ("
|
251
252
|
<< slices << ", " << cb
|
@@ -45,6 +45,7 @@
|
|
45
45
|
#include "absl/strings/str_cat.h"
|
46
46
|
#include "absl/strings/str_format.h"
|
47
47
|
#include "absl/strings/str_join.h"
|
48
|
+
#include "src/core/lib/event_engine/shim.h"
|
48
49
|
#include "src/core/lib/experiments/experiments.h"
|
49
50
|
#include "src/core/lib/iomgr/block_annotate.h"
|
50
51
|
#include "src/core/lib/iomgr/ev_epoll1_linux.h"
|
@@ -333,7 +334,9 @@ static void fork_fd_list_remove_grpc_fd(grpc_fd* fd) {
|
|
333
334
|
|
334
335
|
static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
|
335
336
|
grpc_fd* new_fd = nullptr;
|
336
|
-
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled()
|
337
|
+
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled() &&
|
338
|
+
!grpc_event_engine::experimental::
|
339
|
+
EventEngineExperimentDisabledForPython()) {
|
337
340
|
grpc_fd* new_fd = static_cast<grpc_fd*>(gpr_malloc(sizeof(grpc_fd)));
|
338
341
|
new_fd->fd = fd;
|
339
342
|
return new_fd;
|
@@ -415,7 +418,9 @@ static void fd_shutdown(grpc_fd* fd, grpc_error_handle why) {
|
|
415
418
|
|
416
419
|
static void fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
|
417
420
|
const char* reason) {
|
418
|
-
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled()
|
421
|
+
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled() &&
|
422
|
+
!grpc_event_engine::experimental::
|
423
|
+
EventEngineExperimentDisabledForPython()) {
|
419
424
|
CHECK_NE(release_fd, nullptr);
|
420
425
|
CHECK_EQ(on_done, nullptr);
|
421
426
|
*release_fd = fd->fd;
|
@@ -38,6 +38,7 @@
|
|
38
38
|
#include "absl/log/log.h"
|
39
39
|
#include "absl/strings/str_cat.h"
|
40
40
|
#include "absl/strings/str_format.h"
|
41
|
+
#include "src/core/lib/event_engine/shim.h"
|
41
42
|
#include "src/core/lib/experiments/experiments.h"
|
42
43
|
#include "src/core/lib/iomgr/block_annotate.h"
|
43
44
|
#include "src/core/lib/iomgr/ev_poll_posix.h"
|
@@ -378,7 +379,9 @@ static void unref_by(grpc_fd* fd, int n) {
|
|
378
379
|
}
|
379
380
|
|
380
381
|
static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
|
381
|
-
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled()
|
382
|
+
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled() &&
|
383
|
+
!grpc_event_engine::experimental::
|
384
|
+
EventEngineExperimentDisabledForPython()) {
|
382
385
|
GRPC_TRACE_LOG(event_engine, ERROR)
|
383
386
|
<< "Creating a wrapped EventEngine grpc_fd with fd:" << fd;
|
384
387
|
grpc_fd* new_fd = static_cast<grpc_fd*>(gpr_malloc(sizeof(grpc_fd)));
|
@@ -477,7 +480,9 @@ static int fd_wrapped_fd(grpc_fd* fd) {
|
|
477
480
|
|
478
481
|
static void fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
|
479
482
|
const char* reason) {
|
480
|
-
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled()
|
483
|
+
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled() &&
|
484
|
+
!grpc_event_engine::experimental::
|
485
|
+
EventEngineExperimentDisabledForPython()) {
|
481
486
|
CHECK_NE(release_fd, nullptr);
|
482
487
|
CHECK_EQ(on_done, nullptr);
|
483
488
|
*release_fd = fd->fd;
|
@@ -312,8 +312,9 @@ void EndpointRead(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
312
312
|
|
313
313
|
// Write the data from slices and invoke the provided closure asynchronously
|
314
314
|
// after the write is complete.
|
315
|
-
void EndpointWrite(
|
316
|
-
|
315
|
+
void EndpointWrite(
|
316
|
+
grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
317
|
+
grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs args) {
|
317
318
|
auto* eeep =
|
318
319
|
reinterpret_cast<EventEngineEndpointWrapper::grpc_event_engine_endpoint*>(
|
319
320
|
ep);
|
@@ -323,10 +324,7 @@ void EndpointWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
323
324
|
return;
|
324
325
|
}
|
325
326
|
|
326
|
-
|
327
|
-
write_args.SetDeprecatedAndDiscouragedGoogleSpecificPointer(arg);
|
328
|
-
write_args.set_max_frame_size(max_frame_size);
|
329
|
-
if (eeep->wrapper->Write(cb, slices, std::move(write_args))) {
|
327
|
+
if (eeep->wrapper->Write(cb, slices, std::move(args))) {
|
330
328
|
// Write succeeded immediately. Run the callback inline.
|
331
329
|
eeep->wrapper->FinishPendingWrite(absl::OkStatus());
|
332
330
|
}
|
@@ -108,23 +108,17 @@ class Combiner;
|
|
108
108
|
/// since that implies a core re-entry outside of application
|
109
109
|
/// callbacks.
|
110
110
|
///
|
111
|
-
class GRPC_DLL ExecCtx
|
111
|
+
class GRPC_DLL ExecCtx {
|
112
112
|
public:
|
113
113
|
/// Default Constructor
|
114
114
|
|
115
|
-
ExecCtx()
|
116
|
-
: latent_see::ParentScope(GRPC_LATENT_SEE_METADATA("ExecCtx")),
|
117
|
-
flags_(GRPC_EXEC_CTX_FLAG_IS_FINISHED) {
|
115
|
+
ExecCtx() : flags_(GRPC_EXEC_CTX_FLAG_IS_FINISHED) {
|
118
116
|
Fork::IncExecCtxCount();
|
119
117
|
Set(this);
|
120
118
|
}
|
121
119
|
|
122
120
|
/// Parameterised Constructor
|
123
|
-
explicit ExecCtx(uintptr_t fl)
|
124
|
-
: ExecCtx(fl, GRPC_LATENT_SEE_METADATA("ExecCtx")) {}
|
125
|
-
|
126
|
-
explicit ExecCtx(uintptr_t fl, latent_see::Metadata* latent_see_metadata)
|
127
|
-
: latent_see::ParentScope(latent_see_metadata), flags_(fl) {
|
121
|
+
explicit ExecCtx(uintptr_t fl) : flags_(fl) {
|
128
122
|
if (!(GRPC_EXEC_CTX_FLAG_IS_INTERNAL_THREAD & flags_)) {
|
129
123
|
Fork::IncExecCtxCount();
|
130
124
|
}
|
@@ -40,9 +40,9 @@
|
|
40
40
|
#include <grpc/impl/grpc_types.h>
|
41
41
|
|
42
42
|
#include "src/core/lib/channel/channel_args.h"
|
43
|
-
#include "src/core/lib/iomgr/socket_mutator.h"
|
44
43
|
#include "src/core/lib/iomgr/socket_utils_posix.h"
|
45
44
|
#include "src/core/lib/resource_quota/resource_quota.h"
|
45
|
+
#include "src/core/net/socket_mutator.h"
|
46
46
|
#include "src/core/util/useful.h"
|
47
47
|
|
48
48
|
namespace {
|
@@ -30,8 +30,8 @@
|
|
30
30
|
|
31
31
|
#include "src/core/lib/iomgr/error.h"
|
32
32
|
#include "src/core/lib/iomgr/resolved_address.h"
|
33
|
-
#include "src/core/lib/iomgr/socket_mutator.h"
|
34
33
|
#include "src/core/lib/resource_quota/resource_quota.h"
|
34
|
+
#include "src/core/net/socket_mutator.h"
|
35
35
|
#include "src/core/util/ref_counted_ptr.h"
|
36
36
|
|
37
37
|
#ifdef GRPC_LINUX_ERRQUEUE
|
@@ -44,7 +44,6 @@
|
|
44
44
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
45
45
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
46
46
|
#include "src/core/lib/iomgr/sockaddr.h"
|
47
|
-
#include "src/core/lib/iomgr/socket_mutator.h"
|
48
47
|
#include "src/core/lib/iomgr/socket_utils_posix.h"
|
49
48
|
#include "src/core/lib/iomgr/tcp_client_posix.h"
|
50
49
|
#include "src/core/lib/iomgr/tcp_posix.h"
|
@@ -52,6 +51,7 @@
|
|
52
51
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
53
52
|
#include "src/core/lib/iomgr/vsock.h"
|
54
53
|
#include "src/core/lib/slice/slice_internal.h"
|
54
|
+
#include "src/core/net/socket_mutator.h"
|
55
55
|
#include "src/core/util/crash.h"
|
56
56
|
#include "src/core/util/status_helper.h"
|
57
57
|
#include "src/core/util/string.h"
|
@@ -894,7 +894,7 @@ static void update_rcvlowat(grpc_tcp* tcp)
|
|
894
894
|
#define MAX_READ_IOVEC 64
|
895
895
|
static bool tcp_do_read(grpc_tcp* tcp, grpc_error_handle* error)
|
896
896
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(tcp->read_mu) {
|
897
|
-
|
897
|
+
GRPC_LATENT_SEE_ALWAYS_ON_SCOPE("tcp_do_read");
|
898
898
|
GRPC_TRACE_LOG(tcp, INFO) << "TCP:" << tcp << " do_read";
|
899
899
|
struct msghdr msg;
|
900
900
|
struct iovec iov[MAX_READ_IOVEC];
|
@@ -1184,7 +1184,7 @@ static void tcp_read(grpc_endpoint* ep, grpc_slice_buffer* incoming_buffer,
|
|
1184
1184
|
// of bytes sent.
|
1185
1185
|
ssize_t tcp_send(int fd, const struct msghdr* msg, int* saved_errno,
|
1186
1186
|
int additional_flags = 0) {
|
1187
|
-
|
1187
|
+
GRPC_LATENT_SEE_ALWAYS_ON_SCOPE("tcp_send");
|
1188
1188
|
ssize_t sent_length;
|
1189
1189
|
do {
|
1190
1190
|
// TODO(klempner): Cork if this is a partial write
|
@@ -1375,7 +1375,7 @@ struct cmsghdr* process_timestamp(grpc_tcp* tcp, msghdr* msg,
|
|
1375
1375
|
/// messages from the queue.
|
1376
1376
|
///
|
1377
1377
|
static bool process_errors(grpc_tcp* tcp) {
|
1378
|
-
|
1378
|
+
GRPC_LATENT_SEE_ALWAYS_ON_SCOPE("process_errors");
|
1379
1379
|
bool processed_err = false;
|
1380
1380
|
struct iovec iov;
|
1381
1381
|
iov.iov_base = nullptr;
|
@@ -1795,8 +1795,9 @@ static void tcp_handle_write(void* arg /* grpc_tcp */,
|
|
1795
1795
|
}
|
1796
1796
|
}
|
1797
1797
|
|
1798
|
-
static void tcp_write(
|
1799
|
-
|
1798
|
+
static void tcp_write(
|
1799
|
+
grpc_endpoint* ep, grpc_slice_buffer* buf, grpc_closure* cb,
|
1800
|
+
grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs args) {
|
1800
1801
|
grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
|
1801
1802
|
grpc_error_handle error;
|
1802
1803
|
TcpZerocopySendRecord* zerocopy_send_record = nullptr;
|
@@ -1835,8 +1836,9 @@ static void tcp_write(grpc_endpoint* ep, grpc_slice_buffer* buf,
|
|
1835
1836
|
tcp->outgoing_buffer = buf;
|
1836
1837
|
tcp->outgoing_byte_idx = 0;
|
1837
1838
|
}
|
1838
|
-
tcp->outgoing_buffer_arg =
|
1839
|
-
|
1839
|
+
tcp->outgoing_buffer_arg =
|
1840
|
+
args.TakeDeprecatedAndDiscouragedGoogleSpecificPointer();
|
1841
|
+
if (tcp->outgoing_buffer_arg) {
|
1840
1842
|
CHECK(grpc_event_engine_can_track_errors());
|
1841
1843
|
}
|
1842
1844
|
|
@@ -1915,7 +1917,9 @@ static const grpc_endpoint_vtable vtable = {tcp_read,
|
|
1915
1917
|
grpc_endpoint* grpc_tcp_create(
|
1916
1918
|
grpc_fd* fd, const grpc_event_engine::experimental::EndpointConfig& config,
|
1917
1919
|
absl::string_view peer_string) {
|
1918
|
-
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled()
|
1920
|
+
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled() &&
|
1921
|
+
!grpc_event_engine::experimental::
|
1922
|
+
EventEngineExperimentDisabledForPython()) {
|
1919
1923
|
// Create an EventEngine endpoint when creating the transport.
|
1920
1924
|
auto* engine =
|
1921
1925
|
reinterpret_cast<grpc_event_engine::experimental::EventEngine*>(
|
@@ -1943,7 +1947,9 @@ grpc_endpoint* grpc_tcp_create(grpc_fd* em_fd,
|
|
1943
1947
|
CHECK(!grpc_event_engine::experimental::UsePollsetAlternative())
|
1944
1948
|
<< "This function must not be called when the pollset_alternative "
|
1945
1949
|
"experiment is enabled. This is a bug.";
|
1946
|
-
CHECK(
|
1950
|
+
CHECK(
|
1951
|
+
!grpc_core::IsEventEngineForAllOtherEndpointsEnabled() ||
|
1952
|
+
grpc_event_engine::experimental::EventEngineExperimentDisabledForPython())
|
1947
1953
|
<< "The event_engine_for_all_other_endpoints experiment should prevent "
|
1948
1954
|
"this method from being called. This is a bug.";
|
1949
1955
|
grpc_tcp* tcp = new grpc_tcp(options);
|
@@ -323,8 +323,9 @@ static void on_write(void* tcpp, grpc_error_handle error) {
|
|
323
323
|
|
324
324
|
// Initiates a write.
|
325
325
|
static void win_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
326
|
-
grpc_closure* cb,
|
327
|
-
|
326
|
+
grpc_closure* cb,
|
327
|
+
grpc_event_engine::experimental::EventEngine::Endpoint::
|
328
|
+
WriteArgs /*args*/) {
|
328
329
|
grpc_tcp* tcp = (grpc_tcp*)ep;
|
329
330
|
grpc_winsocket* socket = tcp->socket;
|
330
331
|
grpc_winsocket_callback_info* info = &socket->write_info;
|
@@ -122,6 +122,7 @@ class Waker {
|
|
122
122
|
}
|
123
123
|
|
124
124
|
std::string DebugString() const {
|
125
|
+
if (is_unwakeable()) return "<unwakeable>";
|
125
126
|
return absl::StrFormat("Waker{%p, %d}", wakeable_and_arg_.wakeable,
|
126
127
|
wakeable_and_arg_.wakeup_mask);
|
127
128
|
}
|
@@ -564,7 +565,7 @@ class PromiseActivity final
|
|
564
565
|
}
|
565
566
|
|
566
567
|
void WakeupAsync(WakeupMask) final {
|
567
|
-
|
568
|
+
GRPC_LATENT_SEE_SCOPE("PromiseActivity::WakeupAsync");
|
568
569
|
wakeup_flow_.Begin(GRPC_LATENT_SEE_METADATA("Activity::Wakeup"));
|
569
570
|
if (!wakeup_scheduled_.exchange(true, std::memory_order_acq_rel)) {
|
570
571
|
// Can't safely run, so ask to run later.
|
@@ -589,7 +590,7 @@ class PromiseActivity final
|
|
589
590
|
// In response to Wakeup, run the Promise state machine again until it
|
590
591
|
// settles. Then check for completion, and if we have completed, call on_done.
|
591
592
|
void Step() ABSL_LOCKS_EXCLUDED(mu()) {
|
592
|
-
|
593
|
+
GRPC_LATENT_SEE_SCOPE("PromiseActivity::Step");
|
593
594
|
wakeup_flow_.End();
|
594
595
|
// Poll the promise until things settle out under a lock.
|
595
596
|
mu()->Lock();
|