grpc 1.48.0 → 1.50.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +114 -150
- data/include/grpc/event_engine/endpoint_config.h +11 -5
- data/include/grpc/event_engine/event_engine.h +20 -17
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +19 -28
- data/include/grpc/impl/codegen/atm_gcc_sync.h +0 -2
- data/include/grpc/impl/codegen/atm_windows.h +0 -2
- data/include/grpc/impl/codegen/grpc_types.h +9 -8
- data/include/grpc/impl/codegen/port_platform.h +0 -8
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +6 -6
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +2 -2
- data/src/core/ext/filters/client_channel/backup_poller.cc +4 -6
- data/src/core/ext/filters/client_channel/client_channel.cc +154 -218
- data/src/core/ext/filters/client_channel/client_channel.h +16 -9
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +0 -29
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -10
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +0 -16
- data/src/core/ext/filters/client_channel/config_selector.h +12 -4
- data/src/core/ext/filters/client_channel/connector.h +4 -5
- data/src/core/ext/filters/client_channel/http_proxy.cc +55 -74
- data/src/core/ext/filters/client_channel/http_proxy.h +15 -11
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +20 -16
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +11 -10
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +0 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +181 -194
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +12 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +5 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +20 -11
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +250 -146
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +41 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +35 -32
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +195 -299
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +237 -250
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +12 -7
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +431 -498
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +31 -30
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +27 -27
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +108 -124
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +68 -76
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +131 -227
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +126 -121
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +325 -304
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +4 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +431 -145
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +172 -101
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +20 -7
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -16
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +7 -17
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +11 -0
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +51 -32
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +87 -41
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +16 -6
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -13
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +167 -168
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +40 -32
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +7 -10
- data/src/core/ext/filters/client_channel/retry_filter.cc +25 -36
- data/src/core/ext/filters/client_channel/retry_service_config.cc +30 -19
- data/src/core/ext/filters/client_channel/retry_service_config.h +6 -9
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +6 -7
- data/src/core/ext/filters/client_channel/subchannel.cc +86 -121
- data/src/core/ext/filters/client_channel/subchannel.h +20 -11
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +1 -1
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +6 -76
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -25
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +4 -6
- data/src/core/ext/filters/deadline/deadline_filter.cc +6 -6
- data/src/core/ext/filters/deadline/deadline_filter.h +2 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +24 -19
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +9 -1
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +17 -12
- data/src/core/ext/filters/fault_injection/service_config_parser.h +4 -5
- data/src/core/ext/filters/http/client/http_client_filter.cc +3 -5
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -2
- data/src/core/ext/filters/http/client_authority_filter.h +1 -1
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +2 -4
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -2
- data/src/core/ext/filters/http/server/http_server_filter.cc +3 -5
- data/src/core/ext/filters/http/server/http_server_filter.h +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +13 -7
- data/src/core/ext/filters/message_size/message_size_filter.h +3 -6
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +16 -12
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -6
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +5 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +3 -5
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +40 -63
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +86 -107
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +4 -6
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +155 -295
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -2
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +287 -0
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +1018 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +139 -42
- data/src/core/ext/transport/chttp2/transport/flow_control.h +12 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +7 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +27 -28
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +8 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +30 -38
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +1 -10
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +11 -6
- data/src/core/ext/transport/chttp2/transport/internal.h +4 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +44 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +3 -14
- data/src/core/ext/transport/inproc/inproc_transport.cc +41 -77
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +8 -327
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +83 -1723
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +6 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +33 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -3
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +14 -14
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +21 -19
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +124 -34
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +23 -22
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +153 -48
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +84 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +156 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +78 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +54 -18
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +21 -20
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +117 -44
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +36 -12
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -13
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +170 -15
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +36 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +48 -16
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +54 -18
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -9
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +100 -14
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -22
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +36 -77
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +121 -76
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +647 -163
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +34 -15
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +161 -22
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +11 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +58 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +177 -52
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +66 -14
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +131 -16
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +632 -12
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +6 -2
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +11 -11
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +66 -22
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +9 -9
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +72 -24
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +18 -6
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +1 -1
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +44 -43
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +177 -55
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +18 -6
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +6 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +54 -18
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +6 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +2 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +24 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +6 -2
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +60 -20
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +1 -1
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +6 -6
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +54 -18
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +42 -14
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -3
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -3
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -3
- data/src/core/ext/upb-generated/validate/validate.upb.c +22 -22
- data/src/core/ext/upb-generated/validate/validate.upb.h +139 -47
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +27 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +54 -18
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +6 -2
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +67 -274
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -85
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +107 -107
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +156 -154
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +186 -183
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +136 -134
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +162 -139
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +39 -31
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +12 -8
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +72 -75
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +713 -670
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +150 -139
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +46 -25
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +477 -466
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +21 -18
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +153 -84
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -113
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -28
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +92 -90
- data/src/core/ext/xds/certificate_provider_store.cc +63 -3
- data/src/core/ext/xds/certificate_provider_store.h +9 -1
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +5 -5
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/upb_utils.h +0 -21
- data/src/core/ext/xds/xds_api.cc +73 -102
- data/src/core/ext/xds/xds_api.h +26 -28
- data/src/core/ext/xds/xds_bootstrap.cc +5 -550
- data/src/core/ext/xds/xds_bootstrap.h +39 -91
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +370 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.h +169 -0
- data/src/core/ext/xds/xds_certificate_provider.h +9 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +6 -4
- data/src/core/ext/xds/xds_channel_stack_modifier.h +8 -0
- data/src/core/ext/xds/xds_client.cc +732 -1317
- data/src/core/ext/xds/xds_client.h +33 -59
- data/src/core/ext/xds/xds_client_grpc.cc +229 -0
- data/src/core/ext/xds/xds_client_grpc.h +79 -0
- data/src/core/ext/xds/xds_client_stats.cc +4 -4
- data/src/core/ext/xds/xds_cluster.cc +162 -165
- data/src/core/ext/xds/xds_cluster.h +8 -7
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +12 -14
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -0
- data/src/core/ext/xds/xds_common_types.cc +140 -108
- data/src/core/ext/xds/xds_common_types.h +6 -7
- data/src/core/ext/xds/xds_endpoint.cc +87 -85
- data/src/core/ext/xds/xds_endpoint.h +4 -5
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -11
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
- data/src/core/ext/xds/xds_http_filters.h +3 -3
- data/src/core/ext/xds/xds_http_rbac_filter.cc +39 -58
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
- data/src/core/ext/xds/xds_lb_policy_registry.cc +21 -22
- data/src/core/ext/xds/xds_lb_policy_registry.h +4 -4
- data/src/core/ext/xds/xds_listener.cc +348 -313
- data/src/core/ext/xds/xds_listener.h +4 -5
- data/src/core/ext/xds/xds_resource_type.h +23 -9
- data/src/core/ext/xds/xds_route_config.cc +193 -191
- data/src/core/ext/xds/xds_route_config.h +31 -17
- data/src/core/ext/xds/xds_routing.cc +3 -6
- data/src/core/ext/xds/xds_routing.h +7 -9
- data/src/core/ext/xds/xds_server_config_fetcher.cc +81 -84
- data/src/core/ext/xds/xds_transport.h +86 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +357 -0
- data/src/core/ext/xds/xds_transport_grpc.h +135 -0
- data/src/core/lib/address_utils/parse_address.cc +19 -17
- data/src/core/lib/address_utils/parse_address.h +8 -5
- data/src/core/lib/avl/avl.h +47 -25
- data/src/core/lib/backoff/backoff.cc +2 -4
- data/src/core/lib/channel/call_finalization.h +1 -3
- data/src/core/lib/channel/call_tracer.h +1 -1
- data/src/core/lib/channel/channel_args.cc +88 -19
- data/src/core/lib/channel/channel_args.h +218 -67
- data/src/core/lib/channel/channel_stack.cc +0 -1
- data/src/core/lib/channel/channel_stack_builder.cc +3 -3
- data/src/core/lib/channel/channel_stack_builder.h +2 -2
- data/src/core/lib/channel/channel_stack_builder_impl.cc +2 -4
- data/src/core/lib/channel/channel_trace.cc +3 -4
- data/src/core/lib/channel/channelz.cc +27 -37
- data/src/core/lib/channel/channelz.h +9 -0
- data/src/core/lib/channel/promise_based_filter.cc +18 -19
- data/src/core/lib/channel/promise_based_filter.h +0 -1
- data/src/core/lib/channel/status_util.cc +27 -0
- data/src/core/lib/channel/status_util.h +10 -0
- data/src/core/lib/config/core_configuration.cc +5 -1
- data/src/core/lib/config/core_configuration.h +81 -35
- data/src/core/lib/debug/stats.cc +39 -46
- data/src/core/lib/debug/stats.h +11 -13
- data/src/core/lib/debug/stats_data.cc +118 -614
- data/src/core/lib/debug/stats_data.h +67 -465
- data/src/core/lib/debug/trace.cc +0 -2
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +12 -20
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +13 -7
- data/src/core/lib/event_engine/{event_engine.cc → default_event_engine.cc} +9 -5
- data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine.h} +4 -8
- data/src/core/lib/event_engine/default_event_engine_factory.cc +20 -3
- data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
- data/src/core/lib/event_engine/executor/executor.h +38 -0
- data/src/core/lib/event_engine/executor/threaded_executor.cc +36 -0
- data/src/core/lib/event_engine/executor/threaded_executor.h +44 -0
- data/src/core/lib/event_engine/forkable.cc +101 -0
- data/src/core/lib/event_engine/forkable.h +61 -0
- data/src/core/lib/event_engine/poller.h +56 -0
- data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.cc → posix_engine/posix_engine.cc} +30 -47
- data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.h → posix_engine/posix_engine.h} +27 -28
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.cc +4 -5
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.h +8 -8
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.cc +4 -4
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.h +5 -5
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.cc +87 -30
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.h +40 -9
- data/src/core/lib/event_engine/socket_notifier.h +55 -0
- data/src/core/lib/event_engine/thread_pool.cc +195 -0
- data/src/core/lib/event_engine/thread_pool.h +114 -0
- data/src/core/lib/event_engine/time_util.cc +30 -0
- data/src/core/lib/event_engine/time_util.h +32 -0
- data/src/core/lib/event_engine/utils.cc +44 -0
- data/src/core/lib/event_engine/utils.h +36 -0
- data/src/core/lib/event_engine/windows/iocp.cc +155 -0
- data/src/core/lib/event_engine/windows/iocp.h +69 -0
- data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
- data/src/core/lib/event_engine/windows/win_socket.h +120 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +159 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +120 -0
- data/src/core/lib/experiments/config.cc +146 -0
- data/src/core/lib/experiments/config.h +43 -0
- data/src/core/lib/experiments/experiments.cc +75 -0
- data/src/core/lib/experiments/experiments.h +56 -0
- data/src/core/lib/gpr/alloc.cc +1 -9
- data/src/core/lib/gpr/log_windows.cc +0 -1
- data/src/core/lib/gpr/string_util_windows.cc +3 -30
- data/src/core/lib/gpr/sync_abseil.cc +0 -14
- data/src/core/lib/gpr/sync_posix.cc +0 -14
- data/src/core/lib/gpr/time.cc +11 -9
- data/src/core/lib/gpr/time_posix.cc +0 -6
- data/src/core/lib/gpr/time_precise.h +1 -1
- data/src/core/lib/gpr/tmpfile_windows.cc +5 -7
- data/src/core/lib/gpr/useful.h +40 -0
- data/src/core/lib/gprpp/bitset.h +3 -13
- data/src/core/lib/gprpp/debug_location.h +39 -7
- data/src/core/lib/{gpr → gprpp}/env.h +25 -12
- data/src/core/lib/{gpr → gprpp}/env_linux.cc +20 -15
- data/src/core/lib/{gpr → gprpp}/env_posix.cc +11 -10
- data/src/core/lib/gprpp/env_windows.cc +56 -0
- data/src/core/lib/gprpp/fork.cc +14 -22
- data/src/core/lib/gprpp/fork.h +0 -8
- data/src/core/lib/gprpp/global_config_env.cc +7 -6
- data/src/core/lib/gprpp/manual_constructor.h +0 -1
- data/src/core/lib/gprpp/no_destruct.h +94 -0
- data/src/core/lib/gprpp/notification.h +67 -0
- data/src/core/lib/gprpp/packed_table.h +40 -0
- data/src/core/lib/gprpp/ref_counted_ptr.h +20 -34
- data/src/core/lib/gprpp/sorted_pack.h +98 -0
- data/src/core/lib/gprpp/status_helper.cc +1 -0
- data/src/core/lib/gprpp/status_helper.h +6 -0
- data/src/core/lib/gprpp/table.h +9 -2
- data/src/core/lib/gprpp/tchar.cc +49 -0
- data/src/core/lib/gprpp/tchar.h +33 -0
- data/src/core/lib/gprpp/time.cc +21 -0
- data/src/core/lib/gprpp/time.h +55 -0
- data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.cc +3 -5
- data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.h +5 -7
- data/src/core/lib/gprpp/validation_errors.cc +61 -0
- data/src/core/lib/gprpp/validation_errors.h +110 -0
- data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
- data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
- data/src/core/{ext/filters/client_channel → lib/handshaker}/proxy_mapper.h +16 -17
- data/src/core/lib/handshaker/proxy_mapper_registry.cc +71 -0
- data/src/core/lib/handshaker/proxy_mapper_registry.h +75 -0
- data/src/core/lib/http/httpcli.cc +12 -24
- data/src/core/lib/http/httpcli_security_connector.cc +11 -11
- data/src/core/lib/iomgr/call_combiner.cc +0 -34
- data/src/core/lib/iomgr/closure.h +0 -10
- data/src/core/lib/iomgr/combiner.cc +0 -20
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +14 -9
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +2 -2
- data/src/core/lib/iomgr/error.cc +0 -773
- data/src/core/lib/iomgr/error.h +0 -145
- data/src/core/lib/iomgr/error_cfstream.cc +0 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +1 -38
- data/src/core/lib/iomgr/ev_poll_posix.cc +19 -26
- data/src/core/lib/iomgr/exec_ctx.cc +0 -22
- data/src/core/lib/iomgr/exec_ctx.h +7 -31
- data/src/core/lib/iomgr/executor.cc +0 -10
- data/src/core/lib/iomgr/executor.h +0 -3
- data/src/core/lib/iomgr/iocp_windows.cc +1 -2
- data/src/core/lib/iomgr/iomgr.cc +6 -8
- data/src/core/lib/iomgr/iomgr_fwd.h +1 -0
- data/src/core/lib/iomgr/lockfree_event.cc +0 -17
- data/src/core/lib/iomgr/pollset.h +1 -1
- data/src/core/lib/iomgr/pollset_set.h +0 -1
- data/src/core/lib/iomgr/port.h +3 -0
- data/src/core/lib/iomgr/resolve_address.h +30 -6
- data/src/core/lib/iomgr/resolve_address_impl.h +1 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +43 -8
- data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
- data/src/core/lib/iomgr/resolve_address_windows.cc +45 -10
- data/src/core/lib/iomgr/resolve_address_windows.h +19 -5
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +2 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +12 -34
- data/src/core/lib/iomgr/socket_utils_posix.cc +83 -1
- data/src/core/lib/iomgr/socket_utils_posix.h +98 -6
- data/src/core/lib/iomgr/socket_windows.h +0 -2
- data/src/core/lib/iomgr/tcp_client.cc +6 -7
- data/src/core/lib/iomgr/tcp_client.h +11 -11
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +6 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +33 -29
- data/src/core/lib/iomgr/tcp_client_posix.h +12 -9
- data/src/core/lib/iomgr/tcp_client_windows.cc +6 -6
- data/src/core/lib/iomgr/tcp_posix.cc +249 -120
- data/src/core/lib/iomgr/tcp_posix.h +3 -1
- data/src/core/lib/iomgr/tcp_server.cc +5 -4
- data/src/core/lib/iomgr/tcp_server.h +9 -6
- data/src/core/lib/iomgr/tcp_server_posix.cc +17 -28
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +2 -2
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +3 -3
- data/src/core/lib/iomgr/tcp_server_windows.cc +6 -7
- data/src/core/lib/iomgr/tcp_windows.cc +0 -1
- data/src/core/lib/iomgr/tcp_windows.h +0 -1
- data/src/core/lib/iomgr/timer_generic.cc +10 -12
- data/src/core/lib/iomgr/timer_manager.cc +1 -2
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +0 -2
- data/src/core/lib/json/json.h +19 -22
- data/src/core/lib/json/json_args.h +34 -0
- data/src/core/lib/json/json_object_loader.cc +202 -0
- data/src/core/lib/json/json_object_loader.h +598 -0
- data/src/core/lib/json/json_reader.cc +86 -62
- data/src/core/lib/json/json_util.cc +9 -36
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.cc +3 -44
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +20 -29
- data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +141 -0
- data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +6 -6
- data/src/core/lib/promise/activity.h +57 -10
- data/src/core/lib/promise/arena_promise.h +84 -81
- data/src/core/lib/promise/context.h +1 -2
- data/src/core/lib/promise/detail/basic_seq.h +43 -23
- data/src/core/lib/promise/detail/promise_factory.h +0 -1
- data/src/core/lib/promise/map.h +0 -1
- data/src/core/lib/promise/seq.h +25 -4
- data/src/core/lib/promise/sleep.cc +50 -42
- data/src/core/lib/promise/sleep.h +32 -23
- data/src/core/lib/promise/try_seq.h +26 -6
- data/src/core/lib/resolver/resolver.cc +0 -47
- data/src/core/lib/resolver/resolver.h +15 -15
- data/src/core/lib/resolver/resolver_factory.h +2 -3
- data/src/core/lib/resolver/resolver_registry.cc +1 -1
- data/src/core/lib/resolver/resolver_registry.h +2 -3
- data/src/core/lib/resolver/server_address.cc +11 -15
- data/src/core/lib/resolver/server_address.h +4 -8
- data/src/core/lib/resource_quota/api.cc +10 -1
- data/src/core/lib/resource_quota/api.h +6 -0
- data/src/core/lib/resource_quota/arena.cc +19 -1
- data/src/core/lib/resource_quota/arena.h +24 -2
- data/src/core/lib/resource_quota/memory_quota.cc +143 -19
- data/src/core/lib/resource_quota/memory_quota.h +85 -17
- data/src/core/lib/resource_quota/periodic_update.cc +78 -0
- data/src/core/lib/resource_quota/periodic_update.h +71 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +10 -7
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
- data/src/core/lib/security/authorization/matchers.cc +13 -10
- data/src/core/lib/security/authorization/rbac_policy.cc +0 -1
- data/src/core/{ext/xds → lib/security/certificate_provider}/certificate_provider_factory.h +3 -3
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +60 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +70 -0
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -3
- data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -4
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +1 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +3 -7
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -4
- data/src/core/lib/security/credentials/credentials.h +16 -12
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +33 -27
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +34 -24
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -6
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -12
- data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -4
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +5 -8
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +35 -32
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +3 -3
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -4
- data/src/core/lib/security/credentials/jwt/json_token.cc +12 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -8
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +14 -15
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
- data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
- data/src/core/lib/security/credentials/local/local_credentials.h +3 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -20
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -21
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +3 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +4 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +10 -2
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +13 -25
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -4
- data/src/core/lib/security/credentials/tls/tls_utils.cc +3 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +13 -30
- data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -18
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +26 -38
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +6 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +13 -11
- data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/security_connector.h +5 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +5 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +5 -5
- data/src/core/lib/security/transport/auth_filters.h +1 -1
- data/src/core/lib/security/transport/client_auth_filter.cc +15 -5
- data/src/core/lib/security/transport/secure_endpoint.cc +0 -4
- data/src/core/lib/security/transport/security_handshaker.cc +32 -44
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/service_config/service_config.h +11 -0
- data/src/core/lib/service_config/service_config_impl.cc +98 -97
- data/src/core/lib/service_config/service_config_impl.h +11 -13
- data/src/core/lib/service_config/service_config_parser.cc +26 -27
- data/src/core/lib/service_config/service_config_parser.h +10 -22
- data/src/core/lib/slice/percent_encoding.cc +4 -13
- data/src/core/lib/slice/slice.cc +10 -4
- data/src/core/lib/surface/call.cc +9 -13
- data/src/core/lib/surface/channel.cc +9 -8
- data/src/core/lib/surface/channel.h +1 -1
- data/src/core/lib/surface/completion_queue.cc +16 -30
- data/src/core/lib/surface/completion_queue.h +1 -4
- data/src/core/lib/surface/completion_queue_factory.cc +5 -0
- data/src/core/lib/surface/init.cc +17 -16
- data/src/core/lib/surface/init_internally.cc +24 -0
- data/src/core/lib/surface/init_internally.h +28 -0
- data/src/core/lib/surface/lame_client.cc +2 -3
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +8 -19
- data/src/core/lib/surface/server.h +11 -13
- data/src/core/lib/surface/validate_metadata.cc +4 -14
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +1 -3
- data/src/core/lib/transport/connectivity_state.cc +0 -1
- data/src/core/lib/transport/connectivity_state.h +1 -1
- data/src/core/lib/transport/error_utils.cc +0 -36
- data/src/core/lib/transport/handshaker.cc +7 -9
- data/src/core/lib/transport/handshaker.h +4 -5
- data/src/core/lib/transport/handshaker_factory.h +2 -3
- data/src/core/lib/transport/handshaker_registry.cc +2 -1
- data/src/core/lib/transport/handshaker_registry.h +2 -4
- data/src/core/lib/transport/http_connect_handshaker.cc +16 -16
- data/src/core/lib/transport/metadata_batch.cc +7 -3
- data/src/core/lib/transport/metadata_batch.h +61 -14
- data/src/core/lib/transport/parsed_metadata.h +4 -3
- data/src/core/lib/transport/status_conversion.cc +1 -3
- data/src/core/lib/transport/tcp_connect_handshaker.cc +20 -22
- data/src/core/lib/transport/transport.h +0 -8
- data/src/core/lib/transport/transport_impl.h +0 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +23 -46
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +13 -25
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +40 -21
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +14 -7
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +1 -1
- data/src/core/tsi/fake_transport_security.cc +53 -30
- data/src/core/tsi/local_transport_security.cc +9 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +10 -1
- data/src/core/tsi/ssl_transport_security.cc +47 -23
- data/src/core/tsi/transport_security.cc +18 -6
- data/src/core/tsi/transport_security.h +2 -1
- data/src/core/tsi/transport_security_interface.h +17 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_loader.c +6 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
- data/src/ruby/spec/channel_spec.rb +5 -0
- data/src/ruby/spec/generic/server_interceptors_spec.rb +1 -1
- data/src/ruby/spec/user_agent_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
- data/third_party/upb/upb/arena.c +277 -0
- data/third_party/upb/upb/arena.h +225 -0
- data/third_party/upb/upb/array.c +114 -0
- data/third_party/upb/upb/array.h +83 -0
- data/third_party/upb/upb/collections.h +36 -0
- data/third_party/upb/upb/decode.c +161 -65
- data/third_party/upb/upb/decode.h +1 -0
- data/third_party/upb/upb/decode_fast.c +1 -1
- data/third_party/upb/upb/def.c +10 -2
- data/third_party/upb/upb/def.h +8 -1
- data/third_party/upb/upb/def.hpp +7 -4
- data/third_party/upb/upb/encode.c +29 -20
- data/third_party/upb/upb/encode.h +16 -6
- data/third_party/upb/upb/extension_registry.c +93 -0
- data/third_party/upb/upb/extension_registry.h +84 -0
- data/third_party/upb/upb/{decode_internal.h → internal/decode.h} +5 -5
- data/third_party/upb/upb/internal/table.h +385 -0
- data/third_party/upb/upb/{upb_internal.h → internal/upb.h} +3 -3
- data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
- data/third_party/upb/upb/json_decode.c +1512 -0
- data/third_party/upb/upb/json_decode.h +47 -0
- data/third_party/upb/upb/json_encode.c +7 -3
- data/third_party/upb/upb/json_encode.h +6 -3
- data/third_party/upb/upb/map.c +108 -0
- data/third_party/upb/upb/map.h +117 -0
- data/third_party/upb/upb/message_value.h +66 -0
- data/third_party/upb/upb/mini_table.c +1147 -0
- data/third_party/upb/upb/mini_table.h +189 -0
- data/third_party/upb/upb/mini_table.hpp +112 -0
- data/third_party/upb/upb/msg.c +2 -62
- data/third_party/upb/upb/msg.h +2 -45
- data/third_party/upb/upb/msg_internal.h +28 -22
- data/third_party/upb/upb/port_def.inc +2 -1
- data/third_party/upb/upb/port_undef.inc +1 -0
- data/third_party/upb/upb/reflection.c +2 -159
- data/third_party/upb/upb/reflection.h +2 -112
- data/third_party/upb/upb/status.c +86 -0
- data/third_party/upb/upb/status.h +66 -0
- data/third_party/upb/upb/table.c +2 -2
- data/third_party/upb/upb/table_internal.h +3 -352
- data/third_party/upb/upb/text_encode.c +3 -2
- data/third_party/upb/upb/upb.c +4 -290
- data/third_party/upb/upb/upb.h +7 -196
- metadata +117 -51
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +0 -190
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +0 -70
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -90
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +0 -55
- data/src/core/ext/xds/certificate_provider_registry.cc +0 -103
- data/src/core/ext/xds/certificate_provider_registry.h +0 -59
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +0 -123
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +0 -70
- data/src/core/lib/event_engine/promise.h +0 -69
- data/src/core/lib/gpr/env_windows.cc +0 -74
- data/src/core/lib/gpr/string_windows.h +0 -32
- data/src/core/lib/iomgr/error_internal.h +0 -66
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
- data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
- data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
- data/src/core/lib/iomgr/executor/threadpool.h +0 -150
- data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
- data/src/core/lib/profiling/basic_timers.cc +0 -295
- data/src/core/lib/profiling/stap_timers.cc +0 -50
- data/src/core/lib/profiling/timers.h +0 -94
- data/src/core/lib/promise/detail/switch.h +0 -1455
data/src/core/lib/iomgr/error.h
CHANGED
@@ -40,17 +40,8 @@
|
|
40
40
|
/// See https://github.com/grpc/grpc/blob/master/doc/core/grpc-error.md for a
|
41
41
|
/// full write up of this object.
|
42
42
|
|
43
|
-
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
44
|
-
|
45
43
|
typedef absl::Status grpc_error_handle;
|
46
44
|
|
47
|
-
#else // GRPC_ERROR_IS_ABSEIL_STATUS
|
48
|
-
|
49
|
-
typedef struct grpc_error grpc_error;
|
50
|
-
typedef grpc_error* grpc_error_handle;
|
51
|
-
|
52
|
-
#endif // GRPC_ERROR_IS_ABSEIL_STATUS
|
53
|
-
|
54
45
|
typedef enum {
|
55
46
|
/// 'errno' from the operating system
|
56
47
|
GRPC_ERROR_INT_ERRNO =
|
@@ -152,8 +143,6 @@ std::string grpc_error_std_string(grpc_error_handle error);
|
|
152
143
|
void grpc_disable_error_creation();
|
153
144
|
void grpc_enable_error_creation();
|
154
145
|
|
155
|
-
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
156
|
-
|
157
146
|
#define GRPC_ERROR_NONE absl::OkStatus()
|
158
147
|
#define GRPC_ERROR_OOM absl::Status(absl::ResourceExhaustedError(""))
|
159
148
|
#define GRPC_ERROR_CANCELLED absl::CancelledError()
|
@@ -225,140 +214,6 @@ absl::Status grpc_wsa_error(const grpc_core::DebugLocation& location, int err,
|
|
225
214
|
#define GRPC_WSA_ERROR(err, call_name) \
|
226
215
|
grpc_wsa_error(DEBUG_LOCATION, err, call_name)
|
227
216
|
|
228
|
-
#else // GRPC_ERROR_IS_ABSEIL_STATUS
|
229
|
-
|
230
|
-
/// The following "special" errors can be propagated without allocating memory.
|
231
|
-
/// They are always even so that other code (particularly combiner locks,
|
232
|
-
/// polling engines) can safely use the lower bit for themselves.
|
233
|
-
|
234
|
-
#define GRPC_ERROR_NONE ((grpc_error_handle)NULL)
|
235
|
-
#define GRPC_ERROR_RESERVED_1 ((grpc_error_handle)1)
|
236
|
-
#define GRPC_ERROR_OOM ((grpc_error_handle)2)
|
237
|
-
#define GRPC_ERROR_RESERVED_2 ((grpc_error_handle)3)
|
238
|
-
#define GRPC_ERROR_CANCELLED ((grpc_error_handle)4)
|
239
|
-
#define GRPC_ERROR_SPECIAL_MAX GRPC_ERROR_CANCELLED
|
240
|
-
|
241
|
-
#define GRPC_ERROR_IS_NONE(err) ((err) == GRPC_ERROR_NONE)
|
242
|
-
|
243
|
-
inline bool grpc_error_is_special(grpc_error_handle err) {
|
244
|
-
return err <= GRPC_ERROR_SPECIAL_MAX;
|
245
|
-
}
|
246
|
-
|
247
|
-
#ifndef NDEBUG
|
248
|
-
grpc_error_handle grpc_error_do_ref(grpc_error_handle err, const char* file,
|
249
|
-
int line);
|
250
|
-
void grpc_error_do_unref(grpc_error_handle err, const char* file, int line);
|
251
|
-
inline grpc_error_handle grpc_error_ref(grpc_error_handle err, const char* file,
|
252
|
-
int line) {
|
253
|
-
if (grpc_error_is_special(err)) return err;
|
254
|
-
return grpc_error_do_ref(err, file, line);
|
255
|
-
}
|
256
|
-
inline void grpc_error_unref(grpc_error_handle err, const char* file,
|
257
|
-
int line) {
|
258
|
-
if (grpc_error_is_special(err)) return;
|
259
|
-
grpc_error_do_unref(err, file, line);
|
260
|
-
}
|
261
|
-
#define GRPC_ERROR_REF(err) grpc_error_ref(err, __FILE__, __LINE__)
|
262
|
-
#define GRPC_ERROR_UNREF(err) grpc_error_unref(err, __FILE__, __LINE__)
|
263
|
-
#else
|
264
|
-
grpc_error_handle grpc_error_do_ref(grpc_error_handle err);
|
265
|
-
void grpc_error_do_unref(grpc_error_handle err);
|
266
|
-
inline grpc_error_handle grpc_error_ref(grpc_error_handle err) {
|
267
|
-
if (grpc_error_is_special(err)) return err;
|
268
|
-
return grpc_error_do_ref(err);
|
269
|
-
}
|
270
|
-
inline void grpc_error_unref(grpc_error_handle err) {
|
271
|
-
if (grpc_error_is_special(err)) return;
|
272
|
-
grpc_error_do_unref(err);
|
273
|
-
}
|
274
|
-
#define GRPC_ERROR_REF(err) grpc_error_ref(err)
|
275
|
-
#define GRPC_ERROR_UNREF(err) grpc_error_unref(err)
|
276
|
-
#endif
|
277
|
-
|
278
|
-
/// Create an error - but use GRPC_ERROR_CREATE instead
|
279
|
-
grpc_error_handle grpc_error_create(const char* file, int line,
|
280
|
-
const grpc_slice& desc,
|
281
|
-
grpc_error_handle* referencing,
|
282
|
-
size_t num_referencing);
|
283
|
-
/// Create an error (this is the preferred way of generating an error that is
|
284
|
-
/// not due to a system call - for system calls, use GRPC_OS_ERROR or
|
285
|
-
/// GRPC_WSA_ERROR as appropriate)
|
286
|
-
/// \a referencing is an array of num_referencing elements indicating one or
|
287
|
-
/// more errors that are believed to have contributed to this one
|
288
|
-
/// err = grpc_error_create(x, y, z, r, nr) is equivalent to:
|
289
|
-
/// err = grpc_error_create(x, y, z, NULL, 0);
|
290
|
-
/// for (i=0; i<nr; i++) err = grpc_error_add_child(err, r[i]);
|
291
|
-
#define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc) \
|
292
|
-
grpc_error_create(__FILE__, __LINE__, grpc_slice_from_static_string(desc), \
|
293
|
-
NULL, 0)
|
294
|
-
#define GRPC_ERROR_CREATE_FROM_COPIED_STRING(desc) \
|
295
|
-
grpc_error_create(__FILE__, __LINE__, grpc_slice_from_copied_string(desc), \
|
296
|
-
NULL, 0)
|
297
|
-
#define GRPC_ERROR_CREATE_FROM_CPP_STRING(desc) \
|
298
|
-
grpc_error_create(__FILE__, __LINE__, grpc_slice_from_cpp_string(desc), \
|
299
|
-
NULL, 0)
|
300
|
-
#define GRPC_ERROR_CREATE_FROM_STRING_VIEW(desc) \
|
301
|
-
grpc_error_create( \
|
302
|
-
__FILE__, __LINE__, \
|
303
|
-
grpc_slice_from_copied_buffer((desc).data(), (desc).size()), NULL, 0)
|
304
|
-
|
305
|
-
// Create an error that references some other errors. This function adds a
|
306
|
-
// reference to each error in errs - it does not consume an existing reference
|
307
|
-
#define GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(desc, errs, count) \
|
308
|
-
grpc_error_create(__FILE__, __LINE__, grpc_slice_from_static_string(desc), \
|
309
|
-
errs, count)
|
310
|
-
#define GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(desc, errs, count) \
|
311
|
-
grpc_error_create(__FILE__, __LINE__, grpc_slice_from_copied_string(desc), \
|
312
|
-
errs, count)
|
313
|
-
|
314
|
-
#define GRPC_ERROR_CREATE_FROM_VECTOR(desc, error_list) \
|
315
|
-
grpc_error_create_from_vector( \
|
316
|
-
__FILE__, __LINE__, grpc_slice_from_static_string, desc, error_list)
|
317
|
-
#define GRPC_ERROR_CREATE_FROM_VECTOR_AND_CPP_STRING(desc, error_list) \
|
318
|
-
grpc_error_create_from_vector(__FILE__, __LINE__, \
|
319
|
-
grpc_slice_from_cpp_string, desc, error_list)
|
320
|
-
|
321
|
-
// Consumes all the errors in the vector and forms a referencing error from
|
322
|
-
// them. If the vector is empty, return GRPC_ERROR_NONE.
|
323
|
-
template <typename VectorType, typename StringType,
|
324
|
-
typename SliceFromStringFunction>
|
325
|
-
static grpc_error_handle grpc_error_create_from_vector(
|
326
|
-
const char* file, int line,
|
327
|
-
SliceFromStringFunction slice_from_string_function, StringType desc,
|
328
|
-
VectorType* error_list) {
|
329
|
-
grpc_error_handle error = GRPC_ERROR_NONE;
|
330
|
-
if (error_list->size() != 0) {
|
331
|
-
error = grpc_error_create(file, line,
|
332
|
-
slice_from_string_function(std::move(desc)),
|
333
|
-
error_list->data(), error_list->size());
|
334
|
-
// Remove refs to all errors in error_list.
|
335
|
-
for (size_t i = 0; i < error_list->size(); i++) {
|
336
|
-
GRPC_ERROR_UNREF((*error_list)[i]);
|
337
|
-
}
|
338
|
-
error_list->clear();
|
339
|
-
}
|
340
|
-
return error;
|
341
|
-
}
|
342
|
-
|
343
|
-
grpc_error_handle grpc_os_error(const char* file, int line, int err,
|
344
|
-
const char* call_name) GRPC_MUST_USE_RESULT;
|
345
|
-
|
346
|
-
inline grpc_error_handle grpc_assert_never_ok(grpc_error_handle error) {
|
347
|
-
GPR_ASSERT(!GRPC_ERROR_IS_NONE(error));
|
348
|
-
return error;
|
349
|
-
}
|
350
|
-
|
351
|
-
/// create an error associated with errno!=0 (an 'operating system' error)
|
352
|
-
#define GRPC_OS_ERROR(err, call_name) \
|
353
|
-
grpc_assert_never_ok(grpc_os_error(__FILE__, __LINE__, err, call_name))
|
354
|
-
grpc_error_handle grpc_wsa_error(const char* file, int line, int err,
|
355
|
-
const char* call_name) GRPC_MUST_USE_RESULT;
|
356
|
-
/// windows only: create an error associated with WSAGetLastError()!=0
|
357
|
-
#define GRPC_WSA_ERROR(err, call_name) \
|
358
|
-
grpc_wsa_error(__FILE__, __LINE__, err, call_name)
|
359
|
-
|
360
|
-
#endif // GRPC_ERROR_IS_ABSEIL_STATUS
|
361
|
-
|
362
217
|
grpc_error_handle grpc_error_set_int(grpc_error_handle src,
|
363
218
|
grpc_error_ints which,
|
364
219
|
intptr_t value) GRPC_MUST_USE_RESULT;
|
@@ -48,12 +48,7 @@ grpc_error_handle grpc_error_create_from_cferror(const char* file, int line,
|
|
48
48
|
absl::StrFormat("%s (error domain:%s, code:%ld, description:%s)",
|
49
49
|
custom_desc, buf_domain, code, buf_desc);
|
50
50
|
CFRelease(desc);
|
51
|
-
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
52
51
|
return StatusCreate(absl::StatusCode::kUnknown, error_msg,
|
53
52
|
grpc_core::DebugLocation(file, line), {});
|
54
|
-
#else
|
55
|
-
return grpc_error_create(
|
56
|
-
file, line, grpc_slice_from_copied_string(error_msg.c_str()), NULL, 0);
|
57
|
-
#endif
|
58
53
|
}
|
59
54
|
#endif /* GRPC_CFSTREAM */
|
@@ -57,7 +57,6 @@
|
|
57
57
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
58
58
|
#include "src/core/lib/iomgr/lockfree_event.h"
|
59
59
|
#include "src/core/lib/iomgr/wakeup_fd_posix.h"
|
60
|
-
#include "src/core/lib/profiling/timers.h"
|
61
60
|
|
62
61
|
static grpc_wakeup_fd global_wakeup_fd;
|
63
62
|
|
@@ -586,25 +585,20 @@ static void pollset_destroy(grpc_pollset* pollset) {
|
|
586
585
|
}
|
587
586
|
|
588
587
|
static grpc_error_handle pollset_kick_all(grpc_pollset* pollset) {
|
589
|
-
GPR_TIMER_SCOPE("pollset_kick_all", 0);
|
590
588
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
591
589
|
if (pollset->root_worker != nullptr) {
|
592
590
|
grpc_pollset_worker* worker = pollset->root_worker;
|
593
591
|
do {
|
594
|
-
GRPC_STATS_INC_POLLSET_KICK();
|
595
592
|
switch (worker->state) {
|
596
593
|
case KICKED:
|
597
|
-
GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
|
598
594
|
break;
|
599
595
|
case UNKICKED:
|
600
596
|
SET_KICK_STATE(worker, KICKED);
|
601
597
|
if (worker->initialized_cv) {
|
602
|
-
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
|
603
598
|
gpr_cv_signal(&worker->cv);
|
604
599
|
}
|
605
600
|
break;
|
606
601
|
case DESIGNATED_POLLER:
|
607
|
-
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
|
608
602
|
SET_KICK_STATE(worker, KICKED);
|
609
603
|
append_error(&error, grpc_wakeup_fd_wakeup(&global_wakeup_fd),
|
610
604
|
"pollset_kick_all");
|
@@ -622,7 +616,6 @@ static grpc_error_handle pollset_kick_all(grpc_pollset* pollset) {
|
|
622
616
|
static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
|
623
617
|
if (pollset->shutdown_closure != nullptr && pollset->root_worker == nullptr &&
|
624
618
|
pollset->begin_refs == 0) {
|
625
|
-
GPR_TIMER_MARK("pollset_finish_shutdown", 0);
|
626
619
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, pollset->shutdown_closure,
|
627
620
|
GRPC_ERROR_NONE);
|
628
621
|
pollset->shutdown_closure = nullptr;
|
@@ -630,7 +623,6 @@ static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
|
|
630
623
|
}
|
631
624
|
|
632
625
|
static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
|
633
|
-
GPR_TIMER_SCOPE("pollset_shutdown", 0);
|
634
626
|
GPR_ASSERT(pollset->shutdown_closure == nullptr);
|
635
627
|
GPR_ASSERT(!pollset->shutting_down);
|
636
628
|
pollset->shutdown_closure = closure;
|
@@ -641,7 +633,7 @@ static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
|
|
641
633
|
|
642
634
|
static int poll_deadline_to_millis_timeout(grpc_core::Timestamp millis) {
|
643
635
|
if (millis == grpc_core::Timestamp::InfFuture()) return -1;
|
644
|
-
int64_t delta = (millis - grpc_core::
|
636
|
+
int64_t delta = (millis - grpc_core::Timestamp::Now()).millis();
|
645
637
|
if (delta > INT_MAX) {
|
646
638
|
return INT_MAX;
|
647
639
|
} else if (delta < 0) {
|
@@ -660,8 +652,6 @@ static int poll_deadline_to_millis_timeout(grpc_core::Timestamp millis) {
|
|
660
652
|
called by g_active_poller thread. So there is no need for synchronization
|
661
653
|
when accessing fields in g_epoll_set */
|
662
654
|
static grpc_error_handle process_epoll_events(grpc_pollset* /*pollset*/) {
|
663
|
-
GPR_TIMER_SCOPE("process_epoll_events", 0);
|
664
|
-
|
665
655
|
static const char* err_desc = "process_events";
|
666
656
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
667
657
|
long num_events = gpr_atm_acq_load(&g_epoll_set.num_events);
|
@@ -713,15 +703,12 @@ static grpc_error_handle process_epoll_events(grpc_pollset* /*pollset*/) {
|
|
713
703
|
no need for any synchronization when accesing fields in g_epoll_set */
|
714
704
|
static grpc_error_handle do_epoll_wait(grpc_pollset* ps,
|
715
705
|
grpc_core::Timestamp deadline) {
|
716
|
-
GPR_TIMER_SCOPE("do_epoll_wait", 0);
|
717
|
-
|
718
706
|
int r;
|
719
707
|
int timeout = poll_deadline_to_millis_timeout(deadline);
|
720
708
|
if (timeout != 0) {
|
721
709
|
GRPC_SCHEDULING_START_BLOCKING_REGION;
|
722
710
|
}
|
723
711
|
do {
|
724
|
-
GRPC_STATS_INC_SYSCALL_POLL();
|
725
712
|
r = epoll_wait(g_epoll_set.epfd, g_epoll_set.events, MAX_EPOLL_EVENTS,
|
726
713
|
timeout);
|
727
714
|
} while (r < 0 && errno == EINTR);
|
@@ -731,8 +718,6 @@ static grpc_error_handle do_epoll_wait(grpc_pollset* ps,
|
|
731
718
|
|
732
719
|
if (r < 0) return GRPC_OS_ERROR(errno, "epoll_wait");
|
733
720
|
|
734
|
-
GRPC_STATS_INC_POLL_EVENTS_RETURNED(r);
|
735
|
-
|
736
721
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
737
722
|
gpr_log(GPR_INFO, "ps: %p poll got %d events", ps, r);
|
738
723
|
}
|
@@ -746,7 +731,6 @@ static grpc_error_handle do_epoll_wait(grpc_pollset* ps,
|
|
746
731
|
static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
747
732
|
grpc_pollset_worker** worker_hdl,
|
748
733
|
grpc_core::Timestamp deadline) {
|
749
|
-
GPR_TIMER_SCOPE("begin_worker", 0);
|
750
734
|
if (worker_hdl != nullptr) *worker_hdl = worker;
|
751
735
|
worker->initialized_cv = false;
|
752
736
|
SET_KICK_STATE(worker, UNKICKED);
|
@@ -869,7 +853,6 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|
869
853
|
|
870
854
|
static bool check_neighborhood_for_available_poller(
|
871
855
|
pollset_neighborhood* neighborhood) {
|
872
|
-
GPR_TIMER_SCOPE("check_neighborhood_for_available_poller", 0);
|
873
856
|
bool found_worker = false;
|
874
857
|
do {
|
875
858
|
grpc_pollset* inspect = neighborhood->active_root;
|
@@ -892,8 +875,6 @@ static bool check_neighborhood_for_available_poller(
|
|
892
875
|
}
|
893
876
|
SET_KICK_STATE(inspect_worker, DESIGNATED_POLLER);
|
894
877
|
if (inspect_worker->initialized_cv) {
|
895
|
-
GPR_TIMER_MARK("signal worker", 0);
|
896
|
-
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
|
897
878
|
gpr_cv_signal(&inspect_worker->cv);
|
898
879
|
}
|
899
880
|
} else {
|
@@ -934,7 +915,6 @@ static bool check_neighborhood_for_available_poller(
|
|
934
915
|
|
935
916
|
static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
936
917
|
grpc_pollset_worker** worker_hdl) {
|
937
|
-
GPR_TIMER_SCOPE("end_worker", 0);
|
938
918
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
939
919
|
gpr_log(GPR_INFO, "PS:%p END_WORKER:%p", pollset, worker);
|
940
920
|
}
|
@@ -952,7 +932,6 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|
952
932
|
GPR_ASSERT(worker->next->initialized_cv);
|
953
933
|
gpr_atm_no_barrier_store(&g_active_poller, (gpr_atm)worker->next);
|
954
934
|
SET_KICK_STATE(worker->next, DESIGNATED_POLLER);
|
955
|
-
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
|
956
935
|
gpr_cv_signal(&worker->next->cv);
|
957
936
|
if (grpc_core::ExecCtx::Get()->HasWork()) {
|
958
937
|
gpr_mu_unlock(&pollset->mu);
|
@@ -1014,7 +993,6 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|
1014
993
|
static grpc_error_handle pollset_work(grpc_pollset* ps,
|
1015
994
|
grpc_pollset_worker** worker_hdl,
|
1016
995
|
grpc_core::Timestamp deadline) {
|
1017
|
-
GPR_TIMER_SCOPE("pollset_work", 0);
|
1018
996
|
grpc_pollset_worker worker;
|
1019
997
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
1020
998
|
static const char* err_desc = "pollset_work";
|
@@ -1064,8 +1042,6 @@ static grpc_error_handle pollset_work(grpc_pollset* ps,
|
|
1064
1042
|
|
1065
1043
|
static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
1066
1044
|
grpc_pollset_worker* specific_worker) {
|
1067
|
-
GPR_TIMER_SCOPE("pollset_kick", 0);
|
1068
|
-
GRPC_STATS_INC_POLLSET_KICK();
|
1069
1045
|
grpc_error_handle ret_err = GRPC_ERROR_NONE;
|
1070
1046
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1071
1047
|
std::vector<std::string> log;
|
@@ -1091,7 +1067,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
|
1091
1067
|
if (g_current_thread_pollset != pollset) {
|
1092
1068
|
grpc_pollset_worker* root_worker = pollset->root_worker;
|
1093
1069
|
if (root_worker == nullptr) {
|
1094
|
-
GRPC_STATS_INC_POLLSET_KICKED_WITHOUT_POLLER();
|
1095
1070
|
pollset->kicked_without_poller = true;
|
1096
1071
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1097
1072
|
gpr_log(GPR_INFO, " .. kicked_without_poller");
|
@@ -1100,14 +1075,12 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
|
1100
1075
|
}
|
1101
1076
|
grpc_pollset_worker* next_worker = root_worker->next;
|
1102
1077
|
if (root_worker->state == KICKED) {
|
1103
|
-
GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
|
1104
1078
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1105
1079
|
gpr_log(GPR_INFO, " .. already kicked %p", root_worker);
|
1106
1080
|
}
|
1107
1081
|
SET_KICK_STATE(root_worker, KICKED);
|
1108
1082
|
goto done;
|
1109
1083
|
} else if (next_worker->state == KICKED) {
|
1110
|
-
GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
|
1111
1084
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1112
1085
|
gpr_log(GPR_INFO, " .. already kicked %p", next_worker);
|
1113
1086
|
}
|
@@ -1118,7 +1091,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
|
1118
1091
|
root_worker ==
|
1119
1092
|
reinterpret_cast<grpc_pollset_worker*>(
|
1120
1093
|
gpr_atm_no_barrier_load(&g_active_poller))) {
|
1121
|
-
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
|
1122
1094
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1123
1095
|
gpr_log(GPR_INFO, " .. kicked %p", root_worker);
|
1124
1096
|
}
|
@@ -1126,7 +1098,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
|
1126
1098
|
ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
|
1127
1099
|
goto done;
|
1128
1100
|
} else if (next_worker->state == UNKICKED) {
|
1129
|
-
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
|
1130
1101
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1131
1102
|
gpr_log(GPR_INFO, " .. kicked %p", next_worker);
|
1132
1103
|
}
|
@@ -1144,12 +1115,10 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
|
1144
1115
|
}
|
1145
1116
|
SET_KICK_STATE(root_worker, KICKED);
|
1146
1117
|
if (root_worker->initialized_cv) {
|
1147
|
-
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
|
1148
1118
|
gpr_cv_signal(&root_worker->cv);
|
1149
1119
|
}
|
1150
1120
|
goto done;
|
1151
1121
|
} else {
|
1152
|
-
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
|
1153
1122
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1154
1123
|
gpr_log(GPR_INFO, " .. non-root poller %p (root=%p)", next_worker,
|
1155
1124
|
root_worker);
|
@@ -1159,13 +1128,11 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
|
1159
1128
|
goto done;
|
1160
1129
|
}
|
1161
1130
|
} else {
|
1162
|
-
GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
|
1163
1131
|
GPR_ASSERT(next_worker->state == KICKED);
|
1164
1132
|
SET_KICK_STATE(next_worker, KICKED);
|
1165
1133
|
goto done;
|
1166
1134
|
}
|
1167
1135
|
} else {
|
1168
|
-
GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
|
1169
1136
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1170
1137
|
gpr_log(GPR_INFO, " .. kicked while waking up");
|
1171
1138
|
}
|
@@ -1181,7 +1148,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
|
1181
1148
|
}
|
1182
1149
|
goto done;
|
1183
1150
|
} else if (g_current_thread_worker == specific_worker) {
|
1184
|
-
GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
|
1185
1151
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1186
1152
|
gpr_log(GPR_INFO, " .. mark %p kicked", specific_worker);
|
1187
1153
|
}
|
@@ -1190,7 +1156,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
|
1190
1156
|
} else if (specific_worker ==
|
1191
1157
|
reinterpret_cast<grpc_pollset_worker*>(
|
1192
1158
|
gpr_atm_no_barrier_load(&g_active_poller))) {
|
1193
|
-
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
|
1194
1159
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1195
1160
|
gpr_log(GPR_INFO, " .. kick active poller");
|
1196
1161
|
}
|
@@ -1198,7 +1163,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
|
1198
1163
|
ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
|
1199
1164
|
goto done;
|
1200
1165
|
} else if (specific_worker->initialized_cv) {
|
1201
|
-
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
|
1202
1166
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1203
1167
|
gpr_log(GPR_INFO, " .. kick waiting worker");
|
1204
1168
|
}
|
@@ -1206,7 +1170,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
|
1206
1170
|
gpr_cv_signal(&specific_worker->cv);
|
1207
1171
|
goto done;
|
1208
1172
|
} else {
|
1209
|
-
GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
|
1210
1173
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1211
1174
|
gpr_log(GPR_INFO, " .. kick non-waiting worker");
|
1212
1175
|
}
|
@@ -18,6 +18,8 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
+
#include <grpc/support/sync.h>
|
22
|
+
|
21
23
|
#include "src/core/lib/iomgr/port.h"
|
22
24
|
|
23
25
|
#ifdef GRPC_POSIX_SOCKET_EV_POLL
|
@@ -46,7 +48,6 @@
|
|
46
48
|
#include "src/core/lib/iomgr/ev_poll_posix.h"
|
47
49
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
48
50
|
#include "src/core/lib/iomgr/wakeup_fd_posix.h"
|
49
|
-
#include "src/core/lib/profiling/timers.h"
|
50
51
|
|
51
52
|
#define GRPC_POLLSET_KICK_BROADCAST ((grpc_pollset_worker*)1)
|
52
53
|
|
@@ -360,9 +361,7 @@ static void unref_by(grpc_fd* fd, int n) {
|
|
360
361
|
if (fd->shutdown) {
|
361
362
|
GRPC_ERROR_UNREF(fd->shutdown_error);
|
362
363
|
}
|
363
|
-
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
364
364
|
fd->shutdown_error.~Status();
|
365
|
-
#endif
|
366
365
|
gpr_free(fd);
|
367
366
|
} else {
|
368
367
|
GPR_ASSERT(old > n);
|
@@ -377,9 +376,7 @@ static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
|
|
377
376
|
gpr_mu_init(&r->mu);
|
378
377
|
gpr_atm_rel_store(&r->refst, 1);
|
379
378
|
r->shutdown = 0;
|
380
|
-
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
381
379
|
new (&r->shutdown_error) absl::Status();
|
382
|
-
#endif
|
383
380
|
r->read_closure = CLOSURE_NOT_READY;
|
384
381
|
r->write_closure = CLOSURE_NOT_READY;
|
385
382
|
r->fd = fd;
|
@@ -619,7 +616,6 @@ static uint32_t fd_begin_poll(grpc_fd* fd, grpc_pollset* pollset,
|
|
619
616
|
|
620
617
|
/* if we are shutdown, then don't add to the watcher set */
|
621
618
|
if (fd->shutdown) {
|
622
|
-
watcher->fd = nullptr;
|
623
619
|
watcher->pollset = nullptr;
|
624
620
|
watcher->worker = nullptr;
|
625
621
|
gpr_mu_unlock(&fd->mu);
|
@@ -660,12 +656,17 @@ static void fd_end_poll(grpc_fd_watcher* watcher, int got_read, int got_write) {
|
|
660
656
|
int was_polling = 0;
|
661
657
|
int kick = 0;
|
662
658
|
grpc_fd* fd = watcher->fd;
|
663
|
-
|
664
659
|
if (fd == nullptr) {
|
665
660
|
return;
|
666
661
|
}
|
667
662
|
|
668
663
|
gpr_mu_lock(&fd->mu);
|
664
|
+
if (watcher->pollset == nullptr) {
|
665
|
+
watcher->fd = nullptr;
|
666
|
+
gpr_mu_unlock(&fd->mu);
|
667
|
+
GRPC_FD_UNREF(fd, "multipoller_start");
|
668
|
+
return;
|
669
|
+
}
|
669
670
|
|
670
671
|
if (watcher == fd->read_watcher) {
|
671
672
|
/* remove read watcher, kick if we still need a read */
|
@@ -767,14 +768,11 @@ static void kick_append_error(grpc_error_handle* composite,
|
|
767
768
|
static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
|
768
769
|
grpc_pollset_worker* specific_worker,
|
769
770
|
uint32_t flags) {
|
770
|
-
GPR_TIMER_SCOPE("pollset_kick_ext", 0);
|
771
771
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
772
|
-
GRPC_STATS_INC_POLLSET_KICK();
|
773
772
|
|
774
773
|
/* pollset->mu already held */
|
775
774
|
if (specific_worker != nullptr) {
|
776
775
|
if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
|
777
|
-
GPR_TIMER_SCOPE("pollset_kick_ext.broadcast", 0);
|
778
776
|
GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
|
779
777
|
for (specific_worker = p->root_worker.next;
|
780
778
|
specific_worker != &p->root_worker;
|
@@ -784,7 +782,6 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
|
|
784
782
|
}
|
785
783
|
p->kicked_without_pollers = true;
|
786
784
|
} else if (g_current_thread_worker != specific_worker) {
|
787
|
-
GPR_TIMER_MARK("different_thread_worker", 0);
|
788
785
|
if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
|
789
786
|
specific_worker->reevaluate_polling_on_wakeup = true;
|
790
787
|
}
|
@@ -792,7 +789,6 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
|
|
792
789
|
kick_append_error(&error,
|
793
790
|
grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd));
|
794
791
|
} else if ((flags & GRPC_POLLSET_CAN_KICK_SELF) != 0) {
|
795
|
-
GPR_TIMER_MARK("kick_yoself", 0);
|
796
792
|
if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
|
797
793
|
specific_worker->reevaluate_polling_on_wakeup = true;
|
798
794
|
}
|
@@ -802,11 +798,9 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
|
|
802
798
|
}
|
803
799
|
} else if (g_current_thread_poller != p) {
|
804
800
|
GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
|
805
|
-
GPR_TIMER_MARK("kick_anonymous", 0);
|
806
801
|
specific_worker = pop_front_worker(p);
|
807
802
|
if (specific_worker != nullptr) {
|
808
803
|
if (g_current_thread_worker == specific_worker) {
|
809
|
-
GPR_TIMER_MARK("kick_anonymous_not_self", 0);
|
810
804
|
push_back_worker(p, specific_worker);
|
811
805
|
specific_worker = pop_front_worker(p);
|
812
806
|
if ((flags & GRPC_POLLSET_CAN_KICK_SELF) == 0 &&
|
@@ -816,13 +810,11 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
|
|
816
810
|
}
|
817
811
|
}
|
818
812
|
if (specific_worker != nullptr) {
|
819
|
-
GPR_TIMER_MARK("finally_kick", 0);
|
820
813
|
push_back_worker(p, specific_worker);
|
821
814
|
kick_append_error(
|
822
815
|
&error, grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd));
|
823
816
|
}
|
824
817
|
} else {
|
825
|
-
GPR_TIMER_MARK("kicked_no_pollers", 0);
|
826
818
|
p->kicked_without_pollers = true;
|
827
819
|
}
|
828
820
|
}
|
@@ -912,7 +904,6 @@ static void work_combine_error(grpc_error_handle* composite,
|
|
912
904
|
static grpc_error_handle pollset_work(grpc_pollset* pollset,
|
913
905
|
grpc_pollset_worker** worker_hdl,
|
914
906
|
grpc_core::Timestamp deadline) {
|
915
|
-
GPR_TIMER_SCOPE("pollset_work", 0);
|
916
907
|
grpc_pollset_worker worker;
|
917
908
|
if (worker_hdl) *worker_hdl = &worker;
|
918
909
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
@@ -946,7 +937,6 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
|
|
946
937
|
worker.kicked_specifically = 0;
|
947
938
|
/* If we're shutting down then we don't execute any extended work */
|
948
939
|
if (pollset->shutting_down) {
|
949
|
-
GPR_TIMER_MARK("pollset_work.shutting_down", 0);
|
950
940
|
goto done;
|
951
941
|
}
|
952
942
|
/* Start polling, and keep doing so while we're being asked to
|
@@ -957,13 +947,12 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
|
|
957
947
|
while (keep_polling) {
|
958
948
|
keep_polling = 0;
|
959
949
|
if (!pollset->kicked_without_pollers ||
|
960
|
-
deadline <= grpc_core::
|
950
|
+
deadline <= grpc_core::Timestamp::Now()) {
|
961
951
|
if (!added_worker) {
|
962
952
|
push_front_worker(pollset, &worker);
|
963
953
|
added_worker = 1;
|
964
954
|
g_current_thread_worker = &worker;
|
965
955
|
}
|
966
|
-
GPR_TIMER_SCOPE("maybe_work_and_unlock", 0);
|
967
956
|
#define POLLOUT_CHECK (POLLOUT | POLLHUP | POLLERR)
|
968
957
|
#define POLLIN_CHECK (POLLIN | POLLHUP | POLLERR)
|
969
958
|
|
@@ -1014,13 +1003,14 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
|
|
1014
1003
|
grpc_fd* fd = watchers[i].fd;
|
1015
1004
|
pfds[i].events = static_cast<short>(
|
1016
1005
|
fd_begin_poll(fd, pollset, &worker, POLLIN, POLLOUT, &watchers[i]));
|
1017
|
-
|
1006
|
+
if (watchers[i].pollset != nullptr) {
|
1007
|
+
GRPC_FD_UNREF(fd, "multipoller_start");
|
1008
|
+
}
|
1018
1009
|
}
|
1019
1010
|
|
1020
1011
|
/* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
|
1021
1012
|
even going into the blocking annotation if possible */
|
1022
1013
|
GRPC_SCHEDULING_START_BLOCKING_REGION;
|
1023
|
-
GRPC_STATS_INC_SYSCALL_POLL();
|
1024
1014
|
r = grpc_poll_function(pfds, pfd_count, timeout);
|
1025
1015
|
GRPC_SCHEDULING_END_BLOCKING_REGION;
|
1026
1016
|
|
@@ -1034,7 +1024,7 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
|
|
1034
1024
|
}
|
1035
1025
|
|
1036
1026
|
for (i = 1; i < pfd_count; i++) {
|
1037
|
-
if (watchers[i].
|
1027
|
+
if (watchers[i].pollset == nullptr) {
|
1038
1028
|
fd_end_poll(&watchers[i], 0, 0);
|
1039
1029
|
} else {
|
1040
1030
|
// Wake up all the file descriptors, if we have an invalid one
|
@@ -1055,7 +1045,11 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
|
|
1055
1045
|
&error, grpc_wakeup_fd_consume_wakeup(&worker.wakeup_fd->fd));
|
1056
1046
|
}
|
1057
1047
|
for (i = 1; i < pfd_count; i++) {
|
1058
|
-
if (watchers[i].
|
1048
|
+
if (watchers[i].pollset == nullptr) {
|
1049
|
+
grpc_fd* fd = watchers[i].fd;
|
1050
|
+
if (pfds[i].revents & POLLHUP) {
|
1051
|
+
gpr_atm_no_barrier_store(&fd->pollhup, 1);
|
1052
|
+
}
|
1059
1053
|
fd_end_poll(&watchers[i], 0, 0);
|
1060
1054
|
} else {
|
1061
1055
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
@@ -1082,7 +1076,6 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
|
|
1082
1076
|
|
1083
1077
|
locked = 0;
|
1084
1078
|
} else {
|
1085
|
-
GPR_TIMER_MARK("pollset_work.kicked_without_pollers", 0);
|
1086
1079
|
pollset->kicked_without_pollers = 0;
|
1087
1080
|
}
|
1088
1081
|
/* Finished execution - start cleaning up.
|
@@ -1152,7 +1145,7 @@ static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
|
|
1152
1145
|
static int poll_deadline_to_millis_timeout(grpc_core::Timestamp deadline) {
|
1153
1146
|
if (deadline == grpc_core::Timestamp::InfFuture()) return -1;
|
1154
1147
|
if (deadline.is_process_epoch()) return 0;
|
1155
|
-
int64_t n = (deadline - grpc_core::
|
1148
|
+
int64_t n = (deadline - grpc_core::Timestamp::Now()).millis();
|
1156
1149
|
if (n < 0) return 0;
|
1157
1150
|
if (n > INT_MAX) return -1;
|
1158
1151
|
return static_cast<int>(n);
|
@@ -25,7 +25,6 @@
|
|
25
25
|
|
26
26
|
#include "src/core/lib/iomgr/combiner.h"
|
27
27
|
#include "src/core/lib/iomgr/error.h"
|
28
|
-
#include "src/core/lib/profiling/timers.h"
|
29
28
|
|
30
29
|
static void exec_ctx_run(grpc_closure* closure) {
|
31
30
|
#ifndef NDEBUG
|
@@ -37,18 +36,10 @@ static void exec_ctx_run(grpc_closure* closure) {
|
|
37
36
|
closure->line_initiated);
|
38
37
|
}
|
39
38
|
#endif
|
40
|
-
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
41
39
|
grpc_error_handle error =
|
42
40
|
grpc_core::internal::StatusMoveFromHeapPtr(closure->error_data.error);
|
43
41
|
closure->error_data.error = 0;
|
44
42
|
closure->cb(closure->cb_arg, std::move(error));
|
45
|
-
#else
|
46
|
-
grpc_error_handle error =
|
47
|
-
reinterpret_cast<grpc_error_handle>(closure->error_data.error);
|
48
|
-
closure->error_data.error = 0;
|
49
|
-
closure->cb(closure->cb_arg, error);
|
50
|
-
GRPC_ERROR_UNREF(error);
|
51
|
-
#endif
|
52
43
|
#ifndef NDEBUG
|
53
44
|
if (grpc_trace_closure.enabled()) {
|
54
45
|
gpr_log(GPR_DEBUG, "closure %p finished", closure);
|
@@ -68,7 +59,6 @@ ApplicationCallbackExecCtx::callback_exec_ctx_;
|
|
68
59
|
|
69
60
|
bool ExecCtx::Flush() {
|
70
61
|
bool did_something = false;
|
71
|
-
GPR_TIMER_SCOPE("grpc_exec_ctx_flush", 0);
|
72
62
|
for (;;) {
|
73
63
|
if (!grpc_closure_list_empty(closure_list_)) {
|
74
64
|
grpc_closure* c = closure_list_.head;
|
@@ -87,14 +77,6 @@ bool ExecCtx::Flush() {
|
|
87
77
|
return did_something;
|
88
78
|
}
|
89
79
|
|
90
|
-
Timestamp ExecCtx::Now() {
|
91
|
-
if (!now_is_valid_) {
|
92
|
-
now_ = Timestamp::FromTimespecRoundDown(gpr_now(GPR_CLOCK_MONOTONIC));
|
93
|
-
now_is_valid_ = true;
|
94
|
-
}
|
95
|
-
return now_;
|
96
|
-
}
|
97
|
-
|
98
80
|
void ExecCtx::Run(const DebugLocation& location, grpc_closure* closure,
|
99
81
|
grpc_error_handle error) {
|
100
82
|
(void)location;
|
@@ -118,11 +100,7 @@ void ExecCtx::Run(const DebugLocation& location, grpc_closure* closure,
|
|
118
100
|
closure->run = false;
|
119
101
|
GPR_ASSERT(closure->cb != nullptr);
|
120
102
|
#endif
|
121
|
-
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
122
103
|
closure->error_data.error = internal::StatusAllocHeapPtr(error);
|
123
|
-
#else
|
124
|
-
closure->error_data.error = reinterpret_cast<intptr_t>(error);
|
125
|
-
#endif
|
126
104
|
exec_ctx_sched(closure);
|
127
105
|
}
|
128
106
|
|