grpc 1.39.0.pre1 → 1.41.0.pre2
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.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +45 -38
- data/include/grpc/byte_buffer.h +1 -1
- data/include/grpc/byte_buffer_reader.h +1 -1
- data/include/grpc/event_engine/endpoint_config.h +6 -11
- data/include/grpc/event_engine/event_engine.h +73 -72
- data/include/grpc/event_engine/port.h +1 -3
- data/include/grpc/event_engine/slice_allocator.h +14 -34
- data/include/grpc/fork.h +1 -1
- data/include/grpc/grpc.h +10 -4
- data/include/grpc/grpc_posix.h +5 -2
- data/include/grpc/impl/codegen/atm.h +5 -3
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
- data/include/grpc/impl/codegen/atm_windows.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
- data/include/grpc/impl/codegen/compression_types.h +2 -0
- data/include/grpc/impl/codegen/connectivity_state.h +2 -0
- data/include/grpc/impl/codegen/fork.h +2 -0
- data/include/grpc/impl/codegen/gpr_slice.h +2 -0
- data/include/grpc/impl/codegen/gpr_types.h +2 -0
- data/include/grpc/impl/codegen/grpc_types.h +22 -13
- data/include/grpc/impl/codegen/log.h +2 -0
- data/include/grpc/impl/codegen/port_platform.h +50 -22
- data/include/grpc/impl/codegen/propagation_bits.h +2 -0
- data/include/grpc/impl/codegen/slice.h +2 -0
- data/include/grpc/impl/codegen/status.h +2 -0
- data/include/grpc/impl/codegen/sync.h +8 -5
- data/include/grpc/impl/codegen/sync_abseil.h +2 -0
- data/include/grpc/impl/codegen/sync_custom.h +2 -0
- data/include/grpc/impl/codegen/sync_generic.h +3 -0
- data/include/grpc/impl/codegen/sync_posix.h +4 -2
- data/include/grpc/impl/codegen/sync_windows.h +2 -0
- data/include/grpc/slice.h +1 -1
- data/include/grpc/status.h +1 -1
- data/include/grpc/support/atm.h +1 -1
- data/include/grpc/support/atm_gcc_atomic.h +1 -1
- data/include/grpc/support/atm_gcc_sync.h +1 -1
- data/include/grpc/support/atm_windows.h +1 -1
- data/include/grpc/support/log.h +1 -1
- data/include/grpc/support/port_platform.h +1 -1
- data/include/grpc/support/sync.h +1 -1
- data/include/grpc/support/sync_abseil.h +1 -1
- data/include/grpc/support/sync_custom.h +1 -1
- data/include/grpc/support/sync_generic.h +1 -1
- data/include/grpc/support/sync_posix.h +1 -1
- data/include/grpc/support/sync_windows.h +1 -1
- data/include/grpc/support/time.h +2 -2
- data/src/core/ext/filters/census/grpc_context.cc +1 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +0 -1
- data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +1 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +437 -299
- data/src/core/ext/filters/client_channel/client_channel.h +45 -21
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +1 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +8 -1
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
- data/src/core/ext/filters/client_channel/config_selector.h +19 -6
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -6
- data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +8 -7
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +9 -16
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +12 -21
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +17 -28
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +18 -38
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +8 -15
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +5 -14
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +23 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +24 -29
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +4 -17
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +7 -11
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -15
- data/src/core/ext/filters/client_channel/lb_policy.h +81 -90
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +2 -10
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +6 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +14 -19
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -0
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +106 -81
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +2 -3
- data/src/core/ext/filters/client_channel/retry_filter.cc +408 -246
- data/src/core/ext/filters/client_channel/retry_service_config.cc +36 -26
- data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
- data/src/core/ext/filters/client_channel/service_config_call_data.h +45 -5
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +36 -30
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +8 -12
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +6 -13
- data/src/core/ext/filters/http/client/http_client_filter.cc +8 -4
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -1
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +2 -1
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +7 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +5 -3
- data/src/core/ext/filters/message_size/message_size_filter.cc +9 -13
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +29 -12
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -0
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -3
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +10 -6
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +2 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +65 -38
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -6
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +4 -2
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +67 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +26 -36
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -1
- data/src/core/ext/transport/chttp2/transport/context_list.h +1 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +39 -23
- data/src/core/ext/transport/chttp2/transport/flow_control.h +10 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +11 -11
- data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +12 -11
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +41 -10
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +12 -7
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -0
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +272 -666
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +236 -70
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +107 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +69 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +821 -1195
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +76 -76
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +159 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +130 -0
- data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +46 -0
- data/src/core/ext/transport/chttp2/transport/hpack_utils.h +30 -0
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +3 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +89 -83
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +60 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/varint.cc +13 -7
- data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
- data/src/core/ext/transport/chttp2/transport/writing.cc +32 -28
- data/src/core/ext/transport/inproc/inproc_transport.cc +6 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +96 -96
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +221 -89
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +48 -48
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +151 -61
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +117 -96
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +347 -141
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +133 -126
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +326 -149
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +23 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +28 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +71 -29
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +114 -78
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +268 -88
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +24 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +62 -62
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +131 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +51 -51
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +81 -33
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +110 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +356 -45
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +133 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +9 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +96 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +57 -22
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +174 -17
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +45 -37
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +177 -94
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +42 -40
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +86 -29
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +177 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +48 -28
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +30 -30
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +81 -33
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +41 -29
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +141 -43
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +47 -43
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +88 -29
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +34 -17
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +84 -9
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +293 -277
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +633 -240
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +24 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +35 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +10 -9
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +26 -16
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +147 -106
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +457 -160
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +48 -31
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +135 -34
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +44 -42
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +108 -55
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +42 -42
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +61 -25
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +48 -20
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +162 -17
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +205 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +9 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +11 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +10 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +71 -29
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +19 -19
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +51 -21
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +21 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +31 -13
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +11 -5
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +1 -1
- 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 +58 -58
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +111 -45
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +68 -68
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +121 -49
- data/src/core/ext/upb-generated/google/api/http.upb.c +18 -18
- data/src/core/ext/upb-generated/google/api/http.upb.h +31 -13
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +153 -153
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +271 -109
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +2 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +31 -13
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +11 -5
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +19 -19
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +91 -37
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +5 -5
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +11 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +60 -60
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +101 -41
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -9
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +21 -9
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +91 -37
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +8 -8
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +31 -13
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +13 -13
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +11 -5
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +11 -5
- data/src/core/ext/upb-generated/validate/validate.upb.c +240 -224
- data/src/core/ext/upb-generated/validate/validate.upb.h +451 -217
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +8 -8
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +21 -9
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +11 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +11 -11
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +21 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +438 -409
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +94 -63
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +135 -125
- 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/listener_components.upbdefs.c +131 -123
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +30 -19
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -55
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +796 -765
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +436 -374
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +140 -114
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +178 -173
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +112 -79
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +14 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +103 -103
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
- data/src/core/ext/xds/certificate_provider_registry.cc +2 -2
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/xds_api.cc +1116 -1054
- data/src/core/ext/xds/xds_api.h +47 -35
- data/src/core/ext/xds/xds_bootstrap.cc +29 -51
- data/src/core/ext/xds/xds_client.cc +130 -68
- data/src/core/ext/xds/xds_client.h +0 -4
- data/src/core/ext/xds/xds_client_stats.cc +16 -15
- data/src/core/ext/xds/xds_client_stats.h +6 -6
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -3
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -2
- data/src/core/ext/xds/xds_http_filters.cc +4 -2
- data/src/core/ext/xds/xds_http_filters.h +3 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +10 -10
- data/src/core/lib/address_utils/parse_address.cc +4 -8
- data/src/core/lib/address_utils/sockaddr_utils.cc +2 -2
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_args.cc +2 -1
- data/src/core/lib/channel/channel_stack.cc +5 -3
- data/src/core/lib/channel/channel_stack.h +1 -1
- data/src/core/lib/channel/channel_stack_builder.cc +1 -11
- data/src/core/lib/channel/channel_stack_builder.h +0 -8
- data/src/core/lib/channel/channel_trace.cc +4 -3
- data/src/core/lib/channel/channel_trace.h +1 -0
- data/src/core/lib/channel/channelz.cc +40 -36
- data/src/core/lib/channel/channelz.h +27 -27
- data/src/core/lib/channel/channelz_registry.cc +7 -6
- data/src/core/lib/channel/connected_channel.cc +1 -0
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/handshaker.cc +2 -1
- data/src/core/lib/channel/handshaker.h +1 -2
- data/src/core/lib/channel/handshaker_factory.h +10 -2
- data/src/core/lib/channel/handshaker_registry.cc +15 -70
- data/src/core/lib/channel/handshaker_registry.h +29 -12
- data/src/core/lib/channel/status_util.h +6 -2
- data/src/core/lib/compression/algorithm_metadata.h +1 -0
- data/src/core/lib/compression/compression_args.cc +2 -1
- data/src/core/lib/compression/compression_internal.cc +2 -4
- data/src/core/lib/compression/message_compress.cc +2 -2
- data/src/core/lib/compression/stream_compression.cc +2 -1
- data/src/core/lib/compression/stream_compression.h +3 -2
- data/src/core/lib/compression/stream_compression_gzip.cc +2 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.cc +2 -1
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/config/core_configuration.cc +54 -0
- data/src/core/lib/config/core_configuration.h +108 -0
- data/src/core/lib/debug/stats.h +2 -1
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/stats_data.h +1 -0
- data/src/core/lib/debug/trace.cc +1 -0
- data/src/core/lib/debug/trace.h +2 -1
- data/src/core/lib/event_engine/endpoint_config.cc +0 -1
- data/src/core/lib/event_engine/event_engine.cc +3 -3
- data/src/core/lib/event_engine/sockaddr.cc +3 -3
- data/src/core/lib/gpr/alloc.cc +4 -3
- data/src/core/lib/gpr/env_linux.cc +1 -2
- data/src/core/lib/gpr/env_posix.cc +2 -3
- data/src/core/lib/gpr/log.cc +3 -3
- data/src/core/lib/gpr/log_android.cc +3 -2
- data/src/core/lib/gpr/log_linux.cc +7 -4
- data/src/core/lib/gpr/log_posix.cc +6 -3
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/string.h +2 -2
- data/src/core/lib/gpr/sync.cc +2 -2
- data/src/core/lib/gpr/sync_abseil.cc +7 -6
- data/src/core/lib/gpr/sync_posix.cc +3 -3
- data/src/core/lib/gpr/time.cc +3 -2
- data/src/core/lib/gpr/time_windows.cc +3 -2
- data/src/core/lib/gpr/tls.h +120 -41
- data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
- data/src/core/lib/gprpp/arena.cc +2 -1
- data/src/core/lib/gprpp/arena.h +5 -5
- data/src/core/lib/gprpp/atomic_utils.h +47 -0
- data/src/core/lib/gprpp/bitset.h +166 -0
- data/src/core/lib/gprpp/construct_destruct.h +39 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +25 -26
- data/src/core/lib/gprpp/fork.cc +14 -12
- data/src/core/lib/gprpp/fork.h +4 -4
- data/src/core/lib/gprpp/global_config.h +1 -2
- data/src/core/lib/gprpp/global_config_env.cc +7 -7
- data/src/core/lib/gprpp/global_config_generic.h +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +9 -6
- data/src/core/lib/gprpp/match.h +73 -0
- data/src/core/lib/gprpp/memory.h +3 -3
- data/src/core/lib/gprpp/mpscq.cc +7 -7
- data/src/core/lib/gprpp/mpscq.h +6 -5
- data/src/core/lib/gprpp/orphanable.h +6 -6
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +18 -18
- data/src/core/lib/gprpp/status_helper.cc +4 -4
- data/src/core/lib/gprpp/sync.h +5 -31
- data/src/core/lib/gprpp/thd_posix.cc +5 -5
- data/src/core/lib/gprpp/thd_windows.cc +4 -11
- data/src/core/lib/gprpp/time_util.cc +2 -2
- data/src/core/lib/gprpp/time_util.h +2 -2
- data/src/core/lib/http/format_request.cc +1 -0
- data/src/core/lib/http/format_request.h +1 -0
- data/src/core/lib/http/httpcli.cc +9 -9
- data/src/core/lib/http/httpcli.h +3 -0
- data/src/core/lib/http/httpcli_security_connector.cc +5 -8
- data/src/core/lib/http/parser.h +1 -0
- data/src/core/lib/iomgr/buffer_list.cc +3 -2
- data/src/core/lib/iomgr/buffer_list.h +1 -2
- data/src/core/lib/iomgr/call_combiner.cc +1 -0
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/combiner.cc +3 -2
- data/src/core/lib/iomgr/combiner.h +1 -0
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +1 -0
- data/src/core/lib/iomgr/endpoint.cc +0 -4
- data/src/core/lib/iomgr/endpoint.h +1 -3
- data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -20
- data/src/core/lib/iomgr/endpoint_cfstream.h +1 -1
- data/src/core/lib/iomgr/endpoint_pair.h +1 -0
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +1 -2
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +15 -11
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +17 -9
- data/src/core/lib/iomgr/error.h +23 -9
- data/src/core/lib/iomgr/error_cfstream.cc +2 -2
- data/src/core/lib/iomgr/error_internal.h +1 -0
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +14 -22
- data/src/core/lib/iomgr/ev_epollex_linux.cc +15 -22
- data/src/core/lib/iomgr/ev_poll_posix.cc +13 -25
- data/src/core/lib/iomgr/ev_posix.cc +1 -2
- data/src/core/lib/iomgr/event_engine/endpoint.cc +9 -30
- data/src/core/lib/iomgr/event_engine/endpoint.h +1 -2
- data/src/core/lib/iomgr/event_engine/iomgr.cc +17 -18
- data/src/core/lib/iomgr/event_engine/iomgr.h +20 -2
- data/src/core/lib/iomgr/event_engine/resolver.cc +2 -1
- data/src/core/lib/iomgr/event_engine/tcp.cc +68 -19
- data/src/core/lib/iomgr/exec_ctx.cc +3 -4
- data/src/core/lib/iomgr/exec_ctx.h +11 -19
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +10 -9
- data/src/core/lib/iomgr/executor/mpmcqueue.h +4 -3
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -2
- data/src/core/lib/iomgr/executor/threadpool.h +2 -1
- data/src/core/lib/iomgr/executor.cc +5 -6
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
- data/src/core/lib/iomgr/internal_errqueue.cc +3 -2
- data/src/core/lib/iomgr/iocp_windows.cc +1 -0
- data/src/core/lib/iomgr/iomgr.h +2 -2
- data/src/core/lib/iomgr/iomgr_custom.cc +2 -2
- data/src/core/lib/iomgr/iomgr_custom.h +2 -2
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -1
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -2
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +4 -4
- data/src/core/lib/iomgr/polling_entity.cc +2 -2
- data/src/core/lib/iomgr/pollset_custom.cc +3 -4
- data/src/core/lib/iomgr/pollset_custom.h +2 -2
- data/src/core/lib/iomgr/pollset_set_custom.cc +1 -2
- data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
- data/src/core/lib/iomgr/port.h +0 -5
- data/src/core/lib/iomgr/python_util.h +2 -1
- data/src/core/lib/iomgr/resolve_address.cc +2 -1
- data/src/core/lib/iomgr/resolve_address.h +0 -4
- data/src/core/lib/iomgr/resolve_address_custom.cc +4 -4
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +2 -4
- data/src/core/lib/iomgr/resolve_address_windows.cc +6 -8
- data/src/core/lib/iomgr/resource_quota.cc +127 -40
- data/src/core/lib/iomgr/resource_quota.h +66 -17
- data/src/core/lib/iomgr/sockaddr.h +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +3 -3
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.h +2 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -3
- data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
- data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_utils_posix.h +2 -2
- data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
- data/src/core/lib/iomgr/tcp_client.cc +4 -2
- data/src/core/lib/iomgr/tcp_client.h +4 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +9 -19
- data/src/core/lib/iomgr/tcp_client_custom.cc +9 -17
- data/src/core/lib/iomgr/tcp_client_posix.cc +24 -9
- data/src/core/lib/iomgr/tcp_client_posix.h +5 -2
- data/src/core/lib/iomgr/tcp_client_windows.cc +16 -6
- data/src/core/lib/iomgr/tcp_custom.cc +11 -23
- data/src/core/lib/iomgr/tcp_custom.h +2 -1
- data/src/core/lib/iomgr/tcp_posix.cc +29 -59
- data/src/core/lib/iomgr/tcp_posix.h +11 -12
- data/src/core/lib/iomgr/tcp_server.cc +6 -4
- data/src/core/lib/iomgr/tcp_server.h +12 -9
- data/src/core/lib/iomgr/tcp_server_custom.cc +15 -33
- data/src/core/lib/iomgr/tcp_server_posix.cc +21 -13
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -2
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +3 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +13 -9
- data/src/core/lib/iomgr/tcp_windows.cc +6 -25
- data/src/core/lib/iomgr/tcp_windows.h +2 -1
- data/src/core/lib/iomgr/timer.cc +1 -0
- data/src/core/lib/iomgr/timer.h +1 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -2
- data/src/core/lib/iomgr/timer_generic.cc +8 -38
- data/src/core/lib/iomgr/timer_generic.h +1 -0
- data/src/core/lib/iomgr/timer_heap.cc +1 -2
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- data/src/core/lib/iomgr/udp_server.cc +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -5
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +1 -0
- data/src/core/lib/iomgr/work_serializer.cc +4 -4
- data/src/core/lib/iomgr/work_serializer.h +1 -1
- data/src/core/lib/json/json_reader.cc +10 -19
- data/src/core/lib/json/json_util.h +18 -26
- data/src/core/lib/matchers/matchers.cc +8 -20
- data/src/core/lib/matchers/matchers.h +2 -2
- data/src/core/lib/profiling/basic_timers.cc +8 -6
- data/src/core/lib/profiling/stap_timers.cc +2 -2
- data/src/core/lib/security/authorization/authorization_policy_provider.h +5 -4
- data/src/core/lib/security/authorization/evaluate_args.cc +2 -0
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +159 -0
- data/src/core/lib/security/authorization/sdk_server_authz_filter.h +67 -0
- data/src/core/lib/security/context/security_context.cc +7 -6
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -3
- data/src/core/lib/security/credentials/credentials.cc +6 -6
- data/src/core/lib/security/credentials/credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -3
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +13 -26
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -2
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +3 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +13 -22
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -4
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +55 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -1
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +31 -14
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +0 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +3 -7
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +4 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +3 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +10 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +50 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +14 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +2 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +4 -6
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -3
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +15 -32
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +4 -6
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -14
- data/src/core/lib/security/transport/secure_endpoint.h +1 -0
- data/src/core/lib/security/transport/security_handshaker.cc +17 -8
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +0 -7
- data/src/core/lib/security/util/json_util.cc +6 -8
- data/src/core/lib/slice/percent_encoding.cc +73 -30
- data/src/core/lib/slice/percent_encoding.h +29 -28
- data/src/core/lib/slice/slice.cc +14 -5
- data/src/core/lib/slice/slice_buffer.cc +1 -2
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +3 -2
- data/src/core/lib/surface/api_trace.cc +2 -1
- data/src/core/lib/surface/api_trace.h +1 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +1 -1
- data/src/core/lib/surface/call.cc +14 -14
- data/src/core/lib/surface/call.h +3 -3
- data/src/core/lib/surface/call_details.cc +2 -2
- data/src/core/lib/surface/call_log_batch.cc +2 -2
- data/src/core/lib/surface/channel.cc +22 -9
- data/src/core/lib/surface/channel.h +14 -2
- data/src/core/lib/surface/channel_ping.cc +1 -2
- data/src/core/lib/surface/channel_stack_type.cc +2 -1
- data/src/core/lib/surface/completion_queue.cc +54 -64
- data/src/core/lib/surface/completion_queue_factory.cc +2 -1
- data/src/core/lib/surface/completion_queue_factory.h +1 -0
- data/src/core/lib/surface/event_string.cc +1 -0
- data/src/core/lib/surface/init.cc +4 -9
- data/src/core/lib/surface/init.h +0 -1
- data/src/core/lib/surface/init_secure.cc +23 -4
- data/src/core/lib/surface/lame_client.cc +6 -5
- data/src/core/lib/surface/metadata_array.cc +2 -2
- data/src/core/lib/surface/server.cc +20 -34
- data/src/core/lib/surface/server.h +14 -16
- data/src/core/lib/surface/validate_metadata.cc +44 -16
- data/src/core/lib/surface/version.cc +2 -4
- data/src/core/lib/transport/byte_stream.h +1 -0
- data/src/core/lib/transport/connectivity_state.cc +8 -5
- data/src/core/lib/transport/connectivity_state.h +2 -2
- data/src/core/lib/transport/error_utils.cc +1 -0
- data/src/core/lib/transport/metadata.cc +10 -10
- data/src/core/lib/transport/metadata.h +13 -11
- data/src/core/lib/transport/metadata_batch.cc +13 -2
- data/src/core/lib/transport/metadata_batch.h +15 -0
- data/src/core/lib/transport/transport_op_string.cc +2 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +14 -0
- data/src/core/tsi/alts/crypt/aes_gcm.cc +3 -2
- data/src/core/tsi/alts/crypt/gsec.h +2 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
- data/src/core/tsi/ssl_transport_security.cc +11 -9
- data/src/core/tsi/ssl_transport_security.h +3 -1
- data/src/core/tsi/transport_security.cc +3 -3
- data/src/core/tsi/transport_security_grpc.h +1 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
- data/src/ruby/ext/grpc/rb_call.c +5 -5
- data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
- data/src/ruby/ext/grpc/rb_channel.c +10 -8
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
- data/src/ruby/ext/grpc/rb_channel_credentials.c +4 -4
- data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
- data/src/ruby/ext/grpc/rb_compression_options.c +5 -4
- data/src/ruby/ext/grpc/rb_event_thread.c +4 -4
- data/src/ruby/ext/grpc/rb_grpc.c +5 -4
- data/src/ruby/ext/grpc/rb_grpc.h +1 -0
- data/src/ruby/ext/grpc/rb_server.c +6 -5
- data/src/ruby/ext/grpc/rb_server_credentials.c +3 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +8 -5
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +3 -1
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +6 -5
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +3 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/err_data.c +294 -292
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +52 -47
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_locl.h → internal.h} +20 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +5 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
- data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +23 -2
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +45 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +6 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +9 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +160 -74
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +25 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +5 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +58 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +184 -55
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +0 -5
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +9 -16
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +44 -2
- data/third_party/boringssl-with-bazel/src/ssl/{t1_lib.cc → extensions.cc} +24 -11
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +9 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +75 -68
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +17 -9
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +25 -6
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +1 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +11 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +0 -49
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +121 -65
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +14 -6
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +9 -11
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +2 -2
- data/third_party/upb/upb/decode.c +129 -60
- data/third_party/upb/upb/decode.h +32 -4
- data/third_party/upb/upb/decode_fast.c +513 -500
- data/third_party/upb/upb/decode_fast.h +27 -0
- data/third_party/upb/upb/{decode.int.h → decode_internal.h} +38 -8
- data/third_party/upb/upb/def.c +171 -181
- data/third_party/upb/upb/def.h +41 -19
- data/third_party/upb/upb/def.hpp +29 -0
- data/third_party/upb/upb/encode.c +49 -16
- data/third_party/upb/upb/encode.h +29 -2
- data/third_party/upb/upb/msg.c +169 -28
- data/third_party/upb/upb/msg.h +75 -580
- data/third_party/upb/upb/msg_internal.h +687 -0
- data/third_party/upb/upb/port_def.inc +85 -24
- data/third_party/upb/upb/port_undef.inc +38 -1
- data/third_party/upb/upb/reflection.c +29 -37
- data/third_party/upb/upb/reflection.h +36 -8
- data/third_party/upb/upb/reflection.hpp +37 -0
- data/third_party/upb/upb/table.c +211 -86
- data/third_party/upb/upb/{table.int.h → table_internal.h} +56 -180
- data/third_party/upb/upb/text_encode.c +32 -4
- data/third_party/upb/upb/text_encode.h +26 -0
- data/third_party/upb/upb/upb.c +59 -8
- data/third_party/upb/upb/upb.h +36 -6
- data/third_party/upb/upb/upb.hpp +24 -0
- data/third_party/upb/upb/upb_internal.h +58 -0
- data/third_party/xxhash/xxhash.h +77 -195
- metadata +80 -61
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -243
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
- data/src/core/lib/event_engine/slice_allocator.cc +0 -89
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/gpr/tls_gcc.h +0 -52
- data/src/core/lib/gpr/tls_msvc.h +0 -54
- data/src/core/lib/gpr/tls_pthread.cc +0 -30
- data/src/core/lib/gpr/tls_pthread.h +0 -56
- data/src/core/lib/gpr/tls_stdcpp.h +0 -48
- data/src/core/lib/gprpp/atomic.h +0 -104
- data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
- data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
- data/src/core/lib/iomgr/pollset_uv.cc +0 -95
- data/src/core/lib/iomgr/pollset_uv.h +0 -36
- data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
- data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
- data/src/core/lib/iomgr/tcp_uv.cc +0 -421
- data/src/core/lib/iomgr/timer_uv.cc +0 -66
- data/third_party/upb/third_party/wyhash/wyhash.h +0 -145
- data/third_party/upb/upb/upb.int.h +0 -29
@@ -58,12 +58,12 @@ static void destroy_channel(void* arg, grpc_error_handle error);
|
|
58
58
|
|
59
59
|
grpc_channel* grpc_channel_create_with_builder(
|
60
60
|
grpc_channel_stack_builder* builder,
|
61
|
-
grpc_channel_stack_type channel_stack_type,
|
61
|
+
grpc_channel_stack_type channel_stack_type,
|
62
|
+
grpc_resource_user* resource_user, size_t preallocated_bytes,
|
63
|
+
grpc_error_handle* error) {
|
62
64
|
char* target = gpr_strdup(grpc_channel_stack_builder_get_target(builder));
|
63
65
|
grpc_channel_args* args = grpc_channel_args_copy(
|
64
66
|
grpc_channel_stack_builder_get_channel_arguments(builder));
|
65
|
-
grpc_resource_user* resource_user =
|
66
|
-
grpc_channel_stack_builder_get_resource_user(builder);
|
67
67
|
grpc_channel* channel;
|
68
68
|
if (channel_stack_type == GRPC_SERVER_CHANNEL) {
|
69
69
|
GRPC_STATS_INC_SERVER_CHANNELS_CREATED();
|
@@ -84,10 +84,17 @@ grpc_channel* grpc_channel_create_with_builder(
|
|
84
84
|
}
|
85
85
|
gpr_free(target);
|
86
86
|
grpc_channel_args_destroy(args);
|
87
|
+
if (resource_user != nullptr) {
|
88
|
+
if (preallocated_bytes > 0) {
|
89
|
+
grpc_resource_user_free(resource_user, preallocated_bytes);
|
90
|
+
}
|
91
|
+
grpc_resource_user_unref(resource_user);
|
92
|
+
}
|
87
93
|
return nullptr;
|
88
94
|
}
|
89
95
|
channel->target = target;
|
90
96
|
channel->resource_user = resource_user;
|
97
|
+
channel->preallocated_bytes = preallocated_bytes;
|
91
98
|
channel->is_client = grpc_channel_stack_type_is_client(channel_stack_type);
|
92
99
|
channel->registration_table.Init();
|
93
100
|
|
@@ -225,6 +232,7 @@ grpc_channel* grpc_channel_create(const char* target,
|
|
225
232
|
grpc_channel_stack_type channel_stack_type,
|
226
233
|
grpc_transport* optional_transport,
|
227
234
|
grpc_resource_user* resource_user,
|
235
|
+
size_t preallocated_bytes,
|
228
236
|
grpc_error_handle* error) {
|
229
237
|
// We need to make sure that grpc_shutdown() does not shut things down
|
230
238
|
// until after the channel is destroyed. However, the channel may not
|
@@ -259,11 +267,13 @@ grpc_channel* grpc_channel_create(const char* target,
|
|
259
267
|
grpc_channel_args_destroy(args);
|
260
268
|
grpc_channel_stack_builder_set_target(builder, target);
|
261
269
|
grpc_channel_stack_builder_set_transport(builder, optional_transport);
|
262
|
-
grpc_channel_stack_builder_set_resource_user(builder, resource_user);
|
263
270
|
if (!grpc_channel_init_create_stack(builder, channel_stack_type)) {
|
264
271
|
grpc_channel_stack_builder_destroy(builder);
|
265
272
|
if (resource_user != nullptr) {
|
266
|
-
|
273
|
+
if (preallocated_bytes > 0) {
|
274
|
+
grpc_resource_user_free(resource_user, preallocated_bytes);
|
275
|
+
}
|
276
|
+
grpc_resource_user_unref(resource_user);
|
267
277
|
}
|
268
278
|
grpc_shutdown(); // Since we won't call destroy_channel().
|
269
279
|
return nullptr;
|
@@ -273,8 +283,8 @@ grpc_channel* grpc_channel_create(const char* target,
|
|
273
283
|
if (grpc_channel_stack_type_is_client(channel_stack_type)) {
|
274
284
|
CreateChannelzNode(builder);
|
275
285
|
}
|
276
|
-
grpc_channel* channel =
|
277
|
-
|
286
|
+
grpc_channel* channel = grpc_channel_create_with_builder(
|
287
|
+
builder, channel_stack_type, resource_user, preallocated_bytes, error);
|
278
288
|
if (channel == nullptr) {
|
279
289
|
grpc_shutdown(); // Since we won't call destroy_channel().
|
280
290
|
}
|
@@ -508,8 +518,11 @@ static void destroy_channel(void* arg, grpc_error_handle /*error*/) {
|
|
508
518
|
grpc_channel_stack_destroy(CHANNEL_STACK_FROM_CHANNEL(channel));
|
509
519
|
channel->registration_table.Destroy();
|
510
520
|
if (channel->resource_user != nullptr) {
|
511
|
-
|
512
|
-
|
521
|
+
if (channel->preallocated_bytes > 0) {
|
522
|
+
grpc_resource_user_free(channel->resource_user,
|
523
|
+
channel->preallocated_bytes);
|
524
|
+
}
|
525
|
+
grpc_resource_user_unref(channel->resource_user);
|
513
526
|
}
|
514
527
|
gpr_free(channel->target);
|
515
528
|
gpr_free(channel);
|
@@ -30,20 +30,31 @@
|
|
30
30
|
#include "src/core/lib/surface/channel_stack_type.h"
|
31
31
|
#include "src/core/lib/transport/metadata.h"
|
32
32
|
|
33
|
+
/// Creates a grpc_channel.
|
34
|
+
///
|
35
|
+
/// If the \a resource_user is not null, \a preallocated_bytes may have been
|
36
|
+
/// allocated on that resource_user for use by the channel. These bytes will be
|
37
|
+
/// freed from the resource_user upon channel destruction.
|
38
|
+
///
|
39
|
+
/// Takes ownership of a \a resource_user ref.
|
33
40
|
grpc_channel* grpc_channel_create(const char* target,
|
34
41
|
const grpc_channel_args* args,
|
35
42
|
grpc_channel_stack_type channel_stack_type,
|
36
43
|
grpc_transport* optional_transport,
|
37
|
-
grpc_resource_user* resource_user
|
38
|
-
|
44
|
+
grpc_resource_user* resource_user,
|
45
|
+
size_t preallocated_bytes,
|
46
|
+
grpc_error_handle* error);
|
39
47
|
|
40
48
|
/** The same as grpc_channel_destroy, but doesn't create an ExecCtx, and so
|
41
49
|
* is safe to use from within core. */
|
42
50
|
void grpc_channel_destroy_internal(grpc_channel* channel);
|
43
51
|
|
52
|
+
/// Creates a grpc_channel with a builder. See the description of
|
53
|
+
/// \a grpc_channel_create for variable definitions.
|
44
54
|
grpc_channel* grpc_channel_create_with_builder(
|
45
55
|
grpc_channel_stack_builder* builder,
|
46
56
|
grpc_channel_stack_type channel_stack_type,
|
57
|
+
grpc_resource_user* resource_user, size_t preallocated_bytes,
|
47
58
|
grpc_error_handle* error = nullptr);
|
48
59
|
|
49
60
|
/** Create a call given a grpc_channel, in order to call \a method.
|
@@ -108,6 +119,7 @@ struct grpc_channel {
|
|
108
119
|
|
109
120
|
gpr_atm call_size_estimate;
|
110
121
|
grpc_resource_user* resource_user;
|
122
|
+
size_t preallocated_bytes;
|
111
123
|
|
112
124
|
// TODO(vjpai): Once the grpc_channel is allocated via new rather than malloc,
|
113
125
|
// expand the members of the CallRegistrationTable directly into
|
@@ -18,14 +18,13 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include "src/core/lib/surface/channel.h"
|
22
|
-
|
23
21
|
#include <string.h>
|
24
22
|
|
25
23
|
#include <grpc/support/alloc.h>
|
26
24
|
#include <grpc/support/log.h>
|
27
25
|
|
28
26
|
#include "src/core/lib/surface/api_trace.h"
|
27
|
+
#include "src/core/lib/surface/channel.h"
|
29
28
|
#include "src/core/lib/surface/completion_queue.h"
|
30
29
|
|
31
30
|
struct ping_result {
|
@@ -18,9 +18,10 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include <grpc/support/log.h>
|
22
21
|
#include "src/core/lib/surface/channel_stack_type.h"
|
23
22
|
|
23
|
+
#include <grpc/support/log.h>
|
24
|
+
|
24
25
|
bool grpc_channel_stack_type_is_client(grpc_channel_stack_type type) {
|
25
26
|
switch (type) {
|
26
27
|
case GRPC_CLIENT_CHANNEL:
|
@@ -23,6 +23,7 @@
|
|
23
23
|
#include <stdio.h>
|
24
24
|
#include <string.h>
|
25
25
|
|
26
|
+
#include <atomic>
|
26
27
|
#include <vector>
|
27
28
|
|
28
29
|
#include "absl/strings/str_format.h"
|
@@ -38,7 +39,6 @@
|
|
38
39
|
#include "src/core/lib/gpr/spinlock.h"
|
39
40
|
#include "src/core/lib/gpr/string.h"
|
40
41
|
#include "src/core/lib/gpr/tls.h"
|
41
|
-
#include "src/core/lib/gprpp/atomic.h"
|
42
42
|
#include "src/core/lib/iomgr/executor.h"
|
43
43
|
#include "src/core/lib/iomgr/pollset.h"
|
44
44
|
#include "src/core/lib/iomgr/timer.h"
|
@@ -58,8 +58,8 @@ namespace {
|
|
58
58
|
// with a cq cache will go into that cache, and
|
59
59
|
// will only be returned on the thread that initialized the cache.
|
60
60
|
// NOTE: Only one event will ever be cached.
|
61
|
-
|
62
|
-
|
61
|
+
static GPR_THREAD_LOCAL(grpc_cq_completion*) g_cached_event;
|
62
|
+
static GPR_THREAD_LOCAL(grpc_completion_queue*) g_cached_cq;
|
63
63
|
|
64
64
|
struct plucker {
|
65
65
|
grpc_pollset_worker** worker;
|
@@ -224,7 +224,7 @@ class CqEventQueue {
|
|
224
224
|
/* Note: The counter is not incremented/decremented atomically with push/pop.
|
225
225
|
* The count is only eventually consistent */
|
226
226
|
intptr_t num_items() const {
|
227
|
-
return num_queue_items_.
|
227
|
+
return num_queue_items_.load(std::memory_order_relaxed);
|
228
228
|
}
|
229
229
|
|
230
230
|
bool Push(grpc_cq_completion* c);
|
@@ -239,14 +239,14 @@ class CqEventQueue {
|
|
239
239
|
/* A lazy counter of number of items in the queue. This is NOT atomically
|
240
240
|
incremented/decremented along with push/pop operations and hence is only
|
241
241
|
eventually consistent */
|
242
|
-
|
242
|
+
std::atomic<intptr_t> num_queue_items_{0};
|
243
243
|
};
|
244
244
|
|
245
245
|
struct cq_next_data {
|
246
246
|
~cq_next_data() {
|
247
247
|
GPR_ASSERT(queue.num_items() == 0);
|
248
248
|
#ifndef NDEBUG
|
249
|
-
if (pending_events.
|
249
|
+
if (pending_events.load(std::memory_order_acquire) != 0) {
|
250
250
|
gpr_log(GPR_ERROR, "Destroying CQ without draining it fully.");
|
251
251
|
}
|
252
252
|
#endif
|
@@ -257,11 +257,11 @@ struct cq_next_data {
|
|
257
257
|
|
258
258
|
/** Counter of how many things have ever been queued on this completion queue
|
259
259
|
useful for avoiding locks to check the queue */
|
260
|
-
|
260
|
+
std::atomic<intptr_t> things_queued_ever{0};
|
261
261
|
|
262
262
|
/** Number of outstanding events (+1 if not shut down)
|
263
263
|
Initial count is dropped by grpc_completion_queue_shutdown */
|
264
|
-
|
264
|
+
std::atomic<intptr_t> pending_events{1};
|
265
265
|
|
266
266
|
/** 0 initially. 1 once we initiated shutdown */
|
267
267
|
bool shutdown_called = false;
|
@@ -277,7 +277,7 @@ struct cq_pluck_data {
|
|
277
277
|
GPR_ASSERT(completed_head.next ==
|
278
278
|
reinterpret_cast<uintptr_t>(&completed_head));
|
279
279
|
#ifndef NDEBUG
|
280
|
-
if (pending_events.
|
280
|
+
if (pending_events.load(std::memory_order_acquire) != 0) {
|
281
281
|
gpr_log(GPR_ERROR, "Destroying CQ without draining it fully.");
|
282
282
|
}
|
283
283
|
#endif
|
@@ -289,17 +289,17 @@ struct cq_pluck_data {
|
|
289
289
|
|
290
290
|
/** Number of pending events (+1 if we're not shutdown).
|
291
291
|
Initial count is dropped by grpc_completion_queue_shutdown. */
|
292
|
-
|
292
|
+
std::atomic<intptr_t> pending_events{1};
|
293
293
|
|
294
294
|
/** Counter of how many things have ever been queued on this completion queue
|
295
295
|
useful for avoiding locks to check the queue */
|
296
|
-
|
296
|
+
std::atomic<intptr_t> things_queued_ever{0};
|
297
297
|
|
298
298
|
/** 0 initially. 1 once we completed shutting */
|
299
299
|
/* TODO: (sreek) This is not needed since (shutdown == 1) if and only if
|
300
300
|
* (pending_events == 0). So consider removing this in future and use
|
301
301
|
* pending_events */
|
302
|
-
|
302
|
+
std::atomic<bool> shutdown{false};
|
303
303
|
|
304
304
|
/** 0 initially. 1 once we initiated shutdown */
|
305
305
|
bool shutdown_called = false;
|
@@ -314,7 +314,7 @@ struct cq_callback_data {
|
|
314
314
|
|
315
315
|
~cq_callback_data() {
|
316
316
|
#ifndef NDEBUG
|
317
|
-
if (pending_events.
|
317
|
+
if (pending_events.load(std::memory_order_acquire) != 0) {
|
318
318
|
gpr_log(GPR_ERROR, "Destroying CQ without draining it fully.");
|
319
319
|
}
|
320
320
|
#endif
|
@@ -324,7 +324,7 @@ struct cq_callback_data {
|
|
324
324
|
|
325
325
|
/** Number of pending events (+1 if we're not shutdown).
|
326
326
|
Initial count is dropped by grpc_completion_queue_shutdown. */
|
327
|
-
|
327
|
+
std::atomic<intptr_t> pending_events{1};
|
328
328
|
|
329
329
|
/** 0 initially. 1 once we initiated shutdown */
|
330
330
|
bool shutdown_called = false;
|
@@ -439,33 +439,27 @@ grpc_core::TraceFlag grpc_cq_pluck_trace(false, "queue_pluck");
|
|
439
439
|
|
440
440
|
static void on_pollset_shutdown_done(void* arg, grpc_error_handle error);
|
441
441
|
|
442
|
-
void grpc_cq_global_init() {
|
443
|
-
gpr_tls_init(&g_cached_event);
|
444
|
-
gpr_tls_init(&g_cached_cq);
|
445
|
-
}
|
442
|
+
void grpc_cq_global_init() {}
|
446
443
|
|
447
444
|
void grpc_completion_queue_thread_local_cache_init(grpc_completion_queue* cq) {
|
448
|
-
if (
|
449
|
-
|
450
|
-
|
451
|
-
gpr_tls_set(&g_cached_cq, (intptr_t)cq);
|
445
|
+
if (g_cached_cq == nullptr) {
|
446
|
+
g_cached_event = nullptr;
|
447
|
+
g_cached_cq = cq;
|
452
448
|
}
|
453
449
|
}
|
454
450
|
|
455
451
|
int grpc_completion_queue_thread_local_cache_flush(grpc_completion_queue* cq,
|
456
452
|
void** tag, int* ok) {
|
457
|
-
grpc_cq_completion* storage =
|
458
|
-
reinterpret_cast<grpc_cq_completion*>(gpr_tls_get(&g_cached_event));
|
453
|
+
grpc_cq_completion* storage = g_cached_event;
|
459
454
|
int ret = 0;
|
460
|
-
if (storage != nullptr &&
|
461
|
-
gpr_tls_get(&g_cached_cq)) == cq) {
|
455
|
+
if (storage != nullptr && g_cached_cq == cq) {
|
462
456
|
*tag = storage->tag;
|
463
457
|
grpc_core::ExecCtx exec_ctx;
|
464
458
|
*ok = (storage->next & static_cast<uintptr_t>(1)) == 1;
|
465
459
|
storage->done(storage->done_arg, storage);
|
466
460
|
ret = 1;
|
467
461
|
cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
|
468
|
-
if (cqd->pending_events.
|
462
|
+
if (cqd->pending_events.fetch_sub(1, std::memory_order_acq_rel) == 1) {
|
469
463
|
GRPC_CQ_INTERNAL_REF(cq, "shutting_down");
|
470
464
|
gpr_mu_lock(cq->mu);
|
471
465
|
cq_finish_shutdown_next(cq);
|
@@ -473,8 +467,8 @@ int grpc_completion_queue_thread_local_cache_flush(grpc_completion_queue* cq,
|
|
473
467
|
GRPC_CQ_INTERNAL_UNREF(cq, "shutting_down");
|
474
468
|
}
|
475
469
|
}
|
476
|
-
|
477
|
-
|
470
|
+
g_cached_event = nullptr;
|
471
|
+
g_cached_cq = nullptr;
|
478
472
|
|
479
473
|
return ret;
|
480
474
|
}
|
@@ -482,7 +476,7 @@ int grpc_completion_queue_thread_local_cache_flush(grpc_completion_queue* cq,
|
|
482
476
|
bool CqEventQueue::Push(grpc_cq_completion* c) {
|
483
477
|
queue_.Push(
|
484
478
|
reinterpret_cast<grpc_core::MultiProducerSingleConsumerQueue::Node*>(c));
|
485
|
-
return num_queue_items_.
|
479
|
+
return num_queue_items_.fetch_add(1, std::memory_order_relaxed) == 0;
|
486
480
|
}
|
487
481
|
|
488
482
|
grpc_cq_completion* CqEventQueue::Pop() {
|
@@ -503,7 +497,7 @@ grpc_cq_completion* CqEventQueue::Pop() {
|
|
503
497
|
}
|
504
498
|
|
505
499
|
if (c) {
|
506
|
-
num_queue_items_.
|
500
|
+
num_queue_items_.fetch_sub(1, std::memory_order_relaxed);
|
507
501
|
}
|
508
502
|
|
509
503
|
return c;
|
@@ -654,17 +648,17 @@ static void cq_check_tag(grpc_completion_queue* /*cq*/, void* /*tag*/,
|
|
654
648
|
|
655
649
|
static bool cq_begin_op_for_next(grpc_completion_queue* cq, void* /*tag*/) {
|
656
650
|
cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
|
657
|
-
return cqd->pending_events
|
651
|
+
return grpc_core::IncrementIfNonzero(&cqd->pending_events);
|
658
652
|
}
|
659
653
|
|
660
654
|
static bool cq_begin_op_for_pluck(grpc_completion_queue* cq, void* /*tag*/) {
|
661
655
|
cq_pluck_data* cqd = static_cast<cq_pluck_data*> DATA_FROM_CQ(cq);
|
662
|
-
return cqd->pending_events
|
656
|
+
return grpc_core::IncrementIfNonzero(&cqd->pending_events);
|
663
657
|
}
|
664
658
|
|
665
659
|
static bool cq_begin_op_for_callback(grpc_completion_queue* cq, void* /*tag*/) {
|
666
660
|
cq_callback_data* cqd = static_cast<cq_callback_data*> DATA_FROM_CQ(cq);
|
667
|
-
return cqd->pending_events
|
661
|
+
return grpc_core::IncrementIfNonzero(&cqd->pending_events);
|
668
662
|
}
|
669
663
|
|
670
664
|
bool grpc_cq_begin_op(grpc_completion_queue* cq, void* tag) {
|
@@ -715,21 +709,18 @@ static void cq_end_op_for_next(
|
|
715
709
|
|
716
710
|
cq_check_tag(cq, tag, true); /* Used in debug builds only */
|
717
711
|
|
718
|
-
if (
|
719
|
-
|
720
|
-
reinterpret_cast<grpc_cq_completion*>(gpr_tls_get(&g_cached_event)) ==
|
721
|
-
nullptr) {
|
722
|
-
gpr_tls_set(&g_cached_event, (intptr_t)storage);
|
712
|
+
if (g_cached_cq == cq && g_cached_event == nullptr) {
|
713
|
+
g_cached_event = storage;
|
723
714
|
} else {
|
724
715
|
/* Add the completion to the queue */
|
725
716
|
bool is_first = cqd->queue.Push(storage);
|
726
|
-
cqd->things_queued_ever.
|
717
|
+
cqd->things_queued_ever.fetch_add(1, std::memory_order_relaxed);
|
727
718
|
/* Since we do not hold the cq lock here, it is important to do an 'acquire'
|
728
719
|
load here (instead of a 'no_barrier' load) to match with the release
|
729
720
|
store
|
730
|
-
(done via pending_events.
|
721
|
+
(done via pending_events.fetch_sub(1, ACQ_REL)) in cq_shutdown_next
|
731
722
|
*/
|
732
|
-
if (cqd->pending_events.
|
723
|
+
if (cqd->pending_events.load(std::memory_order_acquire) != 1) {
|
733
724
|
/* Only kick if this is the first item queued */
|
734
725
|
if (is_first) {
|
735
726
|
gpr_mu_lock(cq->mu);
|
@@ -743,8 +734,7 @@ static void cq_end_op_for_next(
|
|
743
734
|
GRPC_ERROR_UNREF(kick_error);
|
744
735
|
}
|
745
736
|
}
|
746
|
-
if (cqd->pending_events.
|
747
|
-
1) {
|
737
|
+
if (cqd->pending_events.fetch_sub(1, std::memory_order_acq_rel) == 1) {
|
748
738
|
GRPC_CQ_INTERNAL_REF(cq, "shutting_down");
|
749
739
|
gpr_mu_lock(cq->mu);
|
750
740
|
cq_finish_shutdown_next(cq);
|
@@ -753,7 +743,7 @@ static void cq_end_op_for_next(
|
|
753
743
|
}
|
754
744
|
} else {
|
755
745
|
GRPC_CQ_INTERNAL_REF(cq, "shutting_down");
|
756
|
-
cqd->pending_events.
|
746
|
+
cqd->pending_events.store(0, std::memory_order_release);
|
757
747
|
gpr_mu_lock(cq->mu);
|
758
748
|
cq_finish_shutdown_next(cq);
|
759
749
|
gpr_mu_unlock(cq->mu);
|
@@ -801,12 +791,12 @@ static void cq_end_op_for_pluck(
|
|
801
791
|
cq_check_tag(cq, tag, false); /* Used in debug builds only */
|
802
792
|
|
803
793
|
/* Add to the list of completions */
|
804
|
-
cqd->things_queued_ever.
|
794
|
+
cqd->things_queued_ever.fetch_add(1, std::memory_order_relaxed);
|
805
795
|
cqd->completed_tail->next =
|
806
796
|
reinterpret_cast<uintptr_t>(storage) | (1u & cqd->completed_tail->next);
|
807
797
|
cqd->completed_tail = storage;
|
808
798
|
|
809
|
-
if (cqd->pending_events.
|
799
|
+
if (cqd->pending_events.fetch_sub(1, std::memory_order_acq_rel) == 1) {
|
810
800
|
cq_finish_shutdown_pluck(cq);
|
811
801
|
gpr_mu_unlock(cq->mu);
|
812
802
|
} else {
|
@@ -866,7 +856,7 @@ static void cq_end_op_for_callback(
|
|
866
856
|
|
867
857
|
cq_check_tag(cq, tag, true); /* Used in debug builds only */
|
868
858
|
|
869
|
-
if (cqd->pending_events.
|
859
|
+
if (cqd->pending_events.fetch_sub(1, std::memory_order_acq_rel) == 1) {
|
870
860
|
cq_finish_shutdown_callback(cq);
|
871
861
|
}
|
872
862
|
|
@@ -921,12 +911,12 @@ class ExecCtxNext : public grpc_core::ExecCtx {
|
|
921
911
|
GPR_ASSERT(a->stolen_completion == nullptr);
|
922
912
|
|
923
913
|
intptr_t current_last_seen_things_queued_ever =
|
924
|
-
cqd->things_queued_ever.
|
914
|
+
cqd->things_queued_ever.load(std::memory_order_relaxed);
|
925
915
|
|
926
916
|
if (current_last_seen_things_queued_ever !=
|
927
917
|
a->last_seen_things_queued_ever) {
|
928
918
|
a->last_seen_things_queued_ever =
|
929
|
-
cqd->things_queued_ever.
|
919
|
+
cqd->things_queued_ever.load(std::memory_order_relaxed);
|
930
920
|
|
931
921
|
/* Pop a cq_completion from the queue. Returns NULL if the queue is empty
|
932
922
|
* might return NULL in some cases even if the queue is not empty; but
|
@@ -985,7 +975,7 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
|
985
975
|
|
986
976
|
grpc_millis deadline_millis = grpc_timespec_to_millis_round_up(deadline);
|
987
977
|
cq_is_finished_arg is_finished_arg = {
|
988
|
-
cqd->things_queued_ever.
|
978
|
+
cqd->things_queued_ever.load(std::memory_order_relaxed),
|
989
979
|
cq,
|
990
980
|
deadline_millis,
|
991
981
|
nullptr,
|
@@ -1024,7 +1014,7 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
|
1024
1014
|
}
|
1025
1015
|
}
|
1026
1016
|
|
1027
|
-
if (cqd->pending_events.
|
1017
|
+
if (cqd->pending_events.load(std::memory_order_acquire) == 0) {
|
1028
1018
|
/* Before returning, check if the queue has any items left over (since
|
1029
1019
|
MultiProducerSingleConsumerQueue::Pop() can sometimes return NULL
|
1030
1020
|
even if the queue is not empty. If so, keep retrying but do not
|
@@ -1074,7 +1064,7 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
|
1074
1064
|
}
|
1075
1065
|
|
1076
1066
|
if (cqd->queue.num_items() > 0 &&
|
1077
|
-
cqd->pending_events.
|
1067
|
+
cqd->pending_events.load(std::memory_order_acquire) > 0) {
|
1078
1068
|
gpr_mu_lock(cq->mu);
|
1079
1069
|
cq->poller_vtable->kick(POLLSET_FROM_CQ(cq), nullptr);
|
1080
1070
|
gpr_mu_unlock(cq->mu);
|
@@ -1098,7 +1088,7 @@ static void cq_finish_shutdown_next(grpc_completion_queue* cq) {
|
|
1098
1088
|
cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
|
1099
1089
|
|
1100
1090
|
GPR_ASSERT(cqd->shutdown_called);
|
1101
|
-
GPR_ASSERT(cqd->pending_events.
|
1091
|
+
GPR_ASSERT(cqd->pending_events.load(std::memory_order_relaxed) == 0);
|
1102
1092
|
|
1103
1093
|
cq->poller_vtable->shutdown(POLLSET_FROM_CQ(cq), &cq->pollset_shutdown_done);
|
1104
1094
|
}
|
@@ -1120,10 +1110,10 @@ static void cq_shutdown_next(grpc_completion_queue* cq) {
|
|
1120
1110
|
return;
|
1121
1111
|
}
|
1122
1112
|
cqd->shutdown_called = true;
|
1123
|
-
/* Doing acq/release
|
1113
|
+
/* Doing acq/release fetch_sub here to match with
|
1124
1114
|
* cq_begin_op_for_next and cq_end_op_for_next functions which read/write
|
1125
1115
|
* on this counter without necessarily holding a lock on cq */
|
1126
|
-
if (cqd->pending_events.
|
1116
|
+
if (cqd->pending_events.fetch_sub(1, std::memory_order_acq_rel) == 1) {
|
1127
1117
|
cq_finish_shutdown_next(cq);
|
1128
1118
|
}
|
1129
1119
|
gpr_mu_unlock(cq->mu);
|
@@ -1173,12 +1163,12 @@ class ExecCtxPluck : public grpc_core::ExecCtx {
|
|
1173
1163
|
|
1174
1164
|
GPR_ASSERT(a->stolen_completion == nullptr);
|
1175
1165
|
gpr_atm current_last_seen_things_queued_ever =
|
1176
|
-
cqd->things_queued_ever.
|
1166
|
+
cqd->things_queued_ever.load(std::memory_order_relaxed);
|
1177
1167
|
if (current_last_seen_things_queued_ever !=
|
1178
1168
|
a->last_seen_things_queued_ever) {
|
1179
1169
|
gpr_mu_lock(cq->mu);
|
1180
1170
|
a->last_seen_things_queued_ever =
|
1181
|
-
cqd->things_queued_ever.
|
1171
|
+
cqd->things_queued_ever.load(std::memory_order_relaxed);
|
1182
1172
|
grpc_cq_completion* c;
|
1183
1173
|
grpc_cq_completion* prev = &cqd->completed_head;
|
1184
1174
|
while ((c = reinterpret_cast<grpc_cq_completion*>(
|
@@ -1234,7 +1224,7 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1234
1224
|
gpr_mu_lock(cq->mu);
|
1235
1225
|
grpc_millis deadline_millis = grpc_timespec_to_millis_round_up(deadline);
|
1236
1226
|
cq_is_finished_arg is_finished_arg = {
|
1237
|
-
cqd->things_queued_ever.
|
1227
|
+
cqd->things_queued_ever.load(std::memory_order_relaxed),
|
1238
1228
|
cq,
|
1239
1229
|
deadline_millis,
|
1240
1230
|
nullptr,
|
@@ -1271,7 +1261,7 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1271
1261
|
}
|
1272
1262
|
prev = c;
|
1273
1263
|
}
|
1274
|
-
if (cqd->shutdown.
|
1264
|
+
if (cqd->shutdown.load(std::memory_order_relaxed)) {
|
1275
1265
|
gpr_mu_unlock(cq->mu);
|
1276
1266
|
ret.type = GRPC_QUEUE_SHUTDOWN;
|
1277
1267
|
ret.success = 0;
|
@@ -1333,8 +1323,8 @@ static void cq_finish_shutdown_pluck(grpc_completion_queue* cq) {
|
|
1333
1323
|
cq_pluck_data* cqd = static_cast<cq_pluck_data*> DATA_FROM_CQ(cq);
|
1334
1324
|
|
1335
1325
|
GPR_ASSERT(cqd->shutdown_called);
|
1336
|
-
GPR_ASSERT(!cqd->shutdown.
|
1337
|
-
cqd->shutdown.
|
1326
|
+
GPR_ASSERT(!cqd->shutdown.load(std::memory_order_relaxed));
|
1327
|
+
cqd->shutdown.store(true, std::memory_order_relaxed);
|
1338
1328
|
|
1339
1329
|
cq->poller_vtable->shutdown(POLLSET_FROM_CQ(cq), &cq->pollset_shutdown_done);
|
1340
1330
|
}
|
@@ -1358,7 +1348,7 @@ static void cq_shutdown_pluck(grpc_completion_queue* cq) {
|
|
1358
1348
|
return;
|
1359
1349
|
}
|
1360
1350
|
cqd->shutdown_called = true;
|
1361
|
-
if (cqd->pending_events.
|
1351
|
+
if (cqd->pending_events.fetch_sub(1, std::memory_order_acq_rel) == 1) {
|
1362
1352
|
cq_finish_shutdown_pluck(cq);
|
1363
1353
|
}
|
1364
1354
|
gpr_mu_unlock(cq->mu);
|
@@ -1401,7 +1391,7 @@ static void cq_shutdown_callback(grpc_completion_queue* cq) {
|
|
1401
1391
|
return;
|
1402
1392
|
}
|
1403
1393
|
cqd->shutdown_called = true;
|
1404
|
-
if (cqd->pending_events.
|
1394
|
+
if (cqd->pending_events.fetch_sub(1, std::memory_order_acq_rel) == 1) {
|
1405
1395
|
gpr_mu_unlock(cq->mu);
|
1406
1396
|
cq_finish_shutdown_callback(cq);
|
1407
1397
|
} else {
|
@@ -18,11 +18,12 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include "src/core/lib/surface/completion_queue.h"
|
22
21
|
#include "src/core/lib/surface/completion_queue_factory.h"
|
23
22
|
|
24
23
|
#include <grpc/support/log.h>
|
25
24
|
|
25
|
+
#include "src/core/lib/surface/completion_queue.h"
|
26
|
+
|
26
27
|
/*
|
27
28
|
* == Default completion queue factory implementation ==
|
28
29
|
*/
|
@@ -32,7 +32,6 @@
|
|
32
32
|
#include "src/core/lib/channel/channel_stack.h"
|
33
33
|
#include "src/core/lib/channel/channelz_registry.h"
|
34
34
|
#include "src/core/lib/channel/connected_channel.h"
|
35
|
-
#include "src/core/lib/channel/handshaker_registry.h"
|
36
35
|
#include "src/core/lib/debug/stats.h"
|
37
36
|
#include "src/core/lib/debug/trace.h"
|
38
37
|
#include "src/core/lib/gprpp/fork.h"
|
@@ -64,20 +63,18 @@ extern void grpc_register_built_in_plugins(void);
|
|
64
63
|
|
65
64
|
static gpr_once g_basic_init = GPR_ONCE_INIT;
|
66
65
|
static grpc_core::Mutex* g_init_mu;
|
67
|
-
static int g_initializations;
|
66
|
+
static int g_initializations ABSL_GUARDED_BY(g_init_mu) = 0;
|
68
67
|
static grpc_core::CondVar* g_shutting_down_cv;
|
69
|
-
static bool g_shutting_down;
|
68
|
+
static bool g_shutting_down ABSL_GUARDED_BY(g_init_mu) = false;
|
70
69
|
|
71
70
|
static void do_basic_init(void) {
|
72
71
|
gpr_log_verbosity_init();
|
73
72
|
g_init_mu = new grpc_core::Mutex();
|
74
73
|
g_shutting_down_cv = new grpc_core::CondVar();
|
75
|
-
g_shutting_down = false;
|
76
74
|
grpc_register_built_in_plugins();
|
77
75
|
grpc_cq_global_init();
|
78
76
|
grpc_core::grpc_executor_global_init();
|
79
77
|
gpr_time_init();
|
80
|
-
g_initializations = 0;
|
81
78
|
}
|
82
79
|
|
83
80
|
static bool append_filter(grpc_channel_stack_builder* builder, void* arg) {
|
@@ -147,8 +144,6 @@ void grpc_init(void) {
|
|
147
144
|
grpc_core::ExecCtx::GlobalInit();
|
148
145
|
grpc_iomgr_init();
|
149
146
|
gpr_timers_global_init();
|
150
|
-
grpc_core::HandshakerRegistry::Init();
|
151
|
-
grpc_security_init();
|
152
147
|
for (int i = 0; i < g_number_of_plugins; i++) {
|
153
148
|
if (g_all_of_the_plugins[i].init != nullptr) {
|
154
149
|
g_all_of_the_plugins[i].init();
|
@@ -167,7 +162,8 @@ void grpc_init(void) {
|
|
167
162
|
GRPC_API_TRACE("grpc_init(void)", 0, ());
|
168
163
|
}
|
169
164
|
|
170
|
-
void grpc_shutdown_internal_locked(void)
|
165
|
+
void grpc_shutdown_internal_locked(void)
|
166
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(g_init_mu) {
|
171
167
|
int i;
|
172
168
|
{
|
173
169
|
grpc_core::ExecCtx exec_ctx(0);
|
@@ -184,7 +180,6 @@ void grpc_shutdown_internal_locked(void) {
|
|
184
180
|
gpr_timers_global_destroy();
|
185
181
|
grpc_tracer_shutdown();
|
186
182
|
grpc_mdctx_global_shutdown();
|
187
|
-
grpc_core::HandshakerRegistry::Shutdown();
|
188
183
|
grpc_slice_intern_shutdown();
|
189
184
|
grpc_core::channelz::ChannelzRegistry::Shutdown();
|
190
185
|
grpc_stats_shutdown();
|
data/src/core/lib/surface/init.h
CHANGED