grpc 1.52.0 → 1.53.0.pre2
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 +50 -5
- data/include/grpc/event_engine/event_engine.h +24 -2
- data/include/grpc/event_engine/slice_buffer.h +13 -1
- data/include/grpc/impl/grpc_types.h +3 -0
- data/include/grpc/support/time.h +6 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +148 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +52 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +29 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +3 -3
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +3 -3
- data/src/core/ext/filters/client_channel/backend_metric.h +3 -3
- data/src/core/ext/filters/client_channel/backup_poller.h +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +1 -1
- data/src/core/ext/filters/client_channel/client_channel.cc +29 -33
- data/src/core/ext/filters/client_channel/client_channel.h +3 -3
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +3 -3
- data/src/core/ext/filters/client_channel/client_channel_factory.h +3 -3
- data/src/core/ext/filters/client_channel/client_channel_service_config.h +3 -3
- data/src/core/ext/filters/client_channel/config_selector.h +3 -3
- data/src/core/ext/filters/client_channel/connector.h +8 -4
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_proxy.h +3 -3
- data/src/core/ext/filters/client_channel/lb_call_state_internal.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +1 -78
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h +117 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +128 -0
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.h +71 -0
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +972 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +3 -6
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +12 -7
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +275 -107
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +10 -3
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +5 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +6 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +1 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +3 -3
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +3 -3
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +1 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +3 -3
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +3 -7
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +3 -3
- data/src/core/ext/filters/client_channel/retry_filter.cc +10 -13
- data/src/core/ext/filters/client_channel/retry_filter.h +3 -3
- data/src/core/ext/filters/client_channel/retry_service_config.h +3 -3
- data/src/core/ext/filters/client_channel/retry_throttle.h +3 -3
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +4 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +5 -1
- data/src/core/ext/filters/client_channel/subchannel.h +3 -3
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +3 -3
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +3 -3
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +3 -3
- data/src/core/ext/filters/deadline/deadline_filter.cc +40 -48
- data/src/core/ext/filters/deadline/deadline_filter.h +6 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +3 -3
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +26 -21
- data/src/core/ext/filters/http/client/http_client_filter.h +3 -3
- data/src/core/ext/filters/http/client_authority_filter.h +3 -3
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +109 -117
- data/src/core/ext/filters/http/message_compress/compression_filter.h +17 -10
- data/src/core/ext/filters/http/server/http_server_filter.cc +25 -24
- data/src/core/ext/filters/http/server/http_server_filter.h +3 -3
- data/src/core/ext/filters/message_size/message_size_filter.cc +2 -1
- data/src/core/ext/filters/message_size/message_size_filter.h +3 -3
- data/src/core/ext/filters/rbac/rbac_filter.cc +4 -3
- data/src/core/ext/filters/rbac/rbac_filter.h +3 -3
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +3 -3
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +3 -3
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +3 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +27 -37
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +5 -5
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.h +3 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +1 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +3 -3
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -3
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +3 -3
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +195 -111
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -3
- data/src/core/ext/transport/chttp2/transport/context_list.h +3 -3
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +3 -3
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +3 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +3 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +18 -407
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +3 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +3 -3
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +3 -3
- data/src/core/ext/transport/chttp2/transport/http_trace.h +3 -3
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +3 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +28 -23
- data/src/core/ext/transport/chttp2/transport/parsing.cc +111 -31
- data/src/core/ext/transport/chttp2/transport/stream_map.h +3 -3
- data/src/core/ext/transport/chttp2/transport/varint.h +3 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +9 -8
- data/src/core/ext/transport/inproc/inproc_transport.h +3 -3
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +9 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +38 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +185 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +7 -3
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +44 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +16 -25
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +48 -74
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +30 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +137 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +15 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +83 -51
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +17 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +61 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +11 -5
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +37 -6
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +24 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +22 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +6 -3
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +24 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +24 -5
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +50 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +57 -16
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +254 -17
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +9 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +9 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +7 -6
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +21 -12
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -3
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +23 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +10 -7
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +42 -12
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +188 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +111 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +444 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +7 -3
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +24 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +31 -9
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +24 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +113 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +114 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +3 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +54 -53
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +34 -13
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +195 -187
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +232 -224
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +95 -75
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +94 -93
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +81 -75
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +189 -187
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +7 -3
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +71 -66
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +137 -133
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +140 -133
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +81 -70
- 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 +771 -741
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +16 -14
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +14 -13
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +20 -18
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +53 -42
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +363 -356
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +149 -145
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +16 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +14 -14
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +10 -9
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +1 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +3 -3
- data/src/core/ext/xds/upb_utils.h +3 -3
- data/src/core/ext/xds/xds_api.h +3 -3
- data/src/core/ext/xds/xds_bootstrap.h +3 -3
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +1 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.h +3 -3
- data/src/core/ext/xds/xds_certificate_provider.h +3 -3
- data/src/core/ext/xds/xds_channel_args.h +3 -3
- data/src/core/ext/xds/xds_channel_stack_modifier.h +3 -3
- data/src/core/ext/xds/xds_client.cc +8 -3
- data/src/core/ext/xds/xds_client.h +3 -3
- data/src/core/ext/xds/xds_client_grpc.cc +0 -1
- data/src/core/ext/xds/xds_client_grpc.h +3 -3
- data/src/core/ext/xds/xds_client_stats.h +4 -3
- data/src/core/ext/xds/xds_cluster.cc +11 -7
- data/src/core/ext/xds/xds_cluster.h +6 -6
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +3 -3
- data/src/core/ext/xds/xds_common_types.cc +1 -0
- data/src/core/ext/xds/xds_common_types.h +3 -3
- data/src/core/ext/xds/xds_endpoint.cc +1 -1
- data/src/core/ext/xds/xds_endpoint.h +3 -3
- data/src/core/ext/xds/xds_health_status.h +30 -3
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
- data/src/core/ext/xds/xds_http_filters.cc +1 -1
- data/src/core/ext/xds/xds_http_filters.h +3 -3
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +3 -3
- data/src/core/ext/xds/xds_lb_policy_registry.cc +95 -0
- data/src/core/ext/xds/xds_lb_policy_registry.h +3 -3
- data/src/core/ext/xds/xds_listener.cc +1 -0
- data/src/core/ext/xds/xds_listener.h +3 -3
- data/src/core/ext/xds/xds_resource_type.h +3 -3
- data/src/core/ext/xds/xds_resource_type_impl.h +3 -3
- data/src/core/ext/xds/xds_route_config.cc +6 -0
- data/src/core/ext/xds/xds_route_config.h +3 -3
- data/src/core/ext/xds/xds_routing.h +3 -3
- data/src/core/ext/xds/xds_transport.h +3 -3
- data/src/core/ext/xds/xds_transport_grpc.h +3 -3
- data/src/core/lib/address_utils/parse_address.h +3 -3
- data/src/core/lib/address_utils/sockaddr_utils.cc +1 -0
- data/src/core/lib/address_utils/sockaddr_utils.h +3 -3
- data/src/core/lib/avl/avl.h +3 -3
- data/src/core/lib/backoff/backoff.h +3 -3
- data/src/core/lib/channel/call_finalization.h +3 -3
- data/src/core/lib/channel/call_tracer.h +3 -3
- data/src/core/lib/channel/channel_args.cc +1 -0
- data/src/core/lib/channel/channel_args.h +11 -5
- data/src/core/lib/channel/channel_args_preconditioning.h +3 -3
- data/src/core/lib/channel/channel_fwd.h +3 -3
- data/src/core/lib/channel/channel_stack.cc +1 -2
- data/src/core/lib/channel/channel_stack.h +4 -4
- data/src/core/lib/channel/channel_stack_builder.h +3 -3
- data/src/core/lib/channel/channel_stack_builder_impl.cc +14 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +3 -3
- data/src/core/lib/channel/channel_trace.h +3 -3
- data/src/core/lib/channel/channelz.h +3 -3
- data/src/core/lib/channel/channelz_registry.h +3 -3
- data/src/core/lib/channel/connected_channel.cc +883 -354
- data/src/core/lib/channel/connected_channel.h +3 -3
- data/src/core/lib/channel/context.h +7 -3
- data/src/core/lib/channel/promise_based_filter.cc +532 -260
- data/src/core/lib/channel/promise_based_filter.h +124 -44
- data/src/core/lib/channel/status_util.h +3 -3
- data/src/core/lib/compression/compression_internal.h +3 -3
- data/src/core/lib/compression/message_compress.h +3 -3
- data/src/core/lib/config/core_configuration.h +3 -3
- data/src/core/lib/debug/event_log.h +3 -3
- data/src/core/lib/debug/histogram_view.h +3 -3
- data/src/core/lib/debug/stats.h +3 -3
- data/src/core/lib/debug/stats_data.cc +66 -65
- data/src/core/lib/debug/stats_data.h +42 -33
- data/src/core/lib/debug/trace.h +4 -26
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +5 -0
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +3 -3
- data/src/core/lib/event_engine/common_closures.h +3 -3
- data/src/core/lib/event_engine/default_event_engine.cc +9 -4
- data/src/core/lib/event_engine/default_event_engine.h +30 -6
- data/src/core/lib/event_engine/default_event_engine_factory.h +3 -3
- data/src/core/lib/event_engine/event_engine.cc +25 -0
- data/src/core/lib/event_engine/executor/executor.h +3 -3
- data/src/core/lib/event_engine/forkable.cc +11 -6
- data/src/core/lib/event_engine/forkable.h +3 -3
- data/src/core/lib/event_engine/handle_containers.h +10 -3
- data/src/core/lib/event_engine/poller.h +3 -3
- data/src/core/lib/event_engine/posix.h +158 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +44 -16
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +14 -4
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +6 -7
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +3 -3
- data/src/core/lib/event_engine/posix_engine/event_poller.h +3 -3
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +3 -3
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +3 -3
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +3 -3
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +52 -55
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +46 -13
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +82 -12
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +23 -9
- data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +3 -3
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +60 -7
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +65 -14
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +0 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -6
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -3
- data/src/core/lib/event_engine/posix_engine/timer.h +3 -3
- data/src/core/lib/event_engine/posix_engine/timer_heap.h +3 -3
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +3 -3
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +3 -3
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +3 -3
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +3 -3
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +3 -3
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -3
- data/src/core/lib/event_engine/resolved_address.cc +19 -0
- data/src/core/lib/event_engine/resolved_address_internal.h +34 -0
- data/src/core/lib/event_engine/shim.cc +56 -0
- data/src/core/lib/event_engine/shim.h +33 -0
- data/src/core/lib/event_engine/slice.cc +1 -1
- data/src/core/lib/event_engine/tcp_socket_utils.cc +18 -2
- data/src/core/lib/event_engine/tcp_socket_utils.h +8 -3
- data/src/core/lib/event_engine/thread_local.cc +29 -0
- data/src/core/lib/event_engine/thread_local.h +32 -0
- data/src/core/lib/event_engine/thread_pool.cc +41 -65
- data/src/core/lib/event_engine/thread_pool.h +21 -17
- data/src/core/lib/event_engine/time_util.h +3 -3
- data/src/core/lib/event_engine/trace.cc +6 -0
- data/src/core/lib/event_engine/trace.h +16 -3
- data/src/core/lib/event_engine/utils.cc +2 -2
- data/src/core/lib/event_engine/utils.h +12 -4
- data/src/core/lib/event_engine/windows/iocp.cc +24 -40
- data/src/core/lib/event_engine/windows/iocp.h +3 -3
- data/src/core/lib/event_engine/windows/win_socket.cc +56 -33
- data/src/core/lib/event_engine/windows/win_socket.h +34 -25
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +331 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +103 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +243 -20
- data/src/core/lib/event_engine/windows/windows_engine.h +62 -23
- data/src/core/lib/experiments/config.cc +16 -1
- data/src/core/lib/experiments/config.h +13 -3
- data/src/core/lib/experiments/experiments.cc +14 -8
- data/src/core/lib/experiments/experiments.h +80 -21
- data/src/core/lib/gpr/alloc.h +3 -3
- data/src/core/lib/gpr/spinlock.h +3 -3
- data/src/core/lib/gpr/string.h +3 -3
- data/src/core/lib/gpr/sync_abseil.cc +15 -7
- data/src/core/lib/gpr/time_precise.h +3 -3
- data/src/core/lib/gpr/tmpfile.h +3 -3
- data/src/core/lib/gpr/useful.h +3 -3
- data/src/core/lib/gprpp/atomic_utils.h +3 -3
- data/src/core/lib/gprpp/bitset.h +3 -3
- data/src/core/lib/gprpp/chunked_vector.h +3 -3
- data/src/core/lib/gprpp/construct_destruct.h +3 -3
- data/src/core/lib/gprpp/cpp_impl_of.h +3 -3
- data/src/core/lib/gprpp/crash.h +3 -3
- data/src/core/lib/gprpp/debug_location.h +3 -6
- data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
- data/src/core/lib/gprpp/env.h +3 -3
- data/src/core/lib/gprpp/examine_stack.h +3 -3
- data/src/core/lib/gprpp/fork.cc +21 -4
- data/src/core/lib/gprpp/fork.h +7 -5
- data/src/core/lib/gprpp/global_config.h +3 -3
- data/src/core/lib/gprpp/global_config_custom.h +3 -3
- data/src/core/lib/gprpp/global_config_env.cc +1 -0
- data/src/core/lib/gprpp/global_config_env.h +3 -3
- data/src/core/lib/gprpp/global_config_generic.h +3 -3
- data/src/core/lib/gprpp/host_port.cc +2 -0
- data/src/core/lib/gprpp/host_port.h +3 -3
- data/src/core/lib/gprpp/load_file.h +3 -3
- data/src/core/lib/gprpp/manual_constructor.h +3 -3
- data/src/core/lib/gprpp/match.h +3 -3
- data/src/core/lib/gprpp/memory.h +3 -3
- data/src/core/lib/gprpp/mpscq.h +3 -3
- data/src/core/lib/gprpp/no_destruct.h +3 -3
- data/src/core/lib/gprpp/notification.h +3 -3
- data/src/core/lib/gprpp/orphanable.h +3 -3
- data/src/core/lib/gprpp/overload.h +3 -3
- data/src/core/lib/gprpp/packed_table.h +3 -3
- data/src/core/lib/gprpp/per_cpu.h +3 -3
- data/src/core/lib/gprpp/ref_counted.h +3 -3
- data/src/core/lib/gprpp/ref_counted_ptr.h +3 -3
- data/src/core/lib/gprpp/single_set_ptr.h +3 -3
- data/src/core/lib/gprpp/sorted_pack.h +3 -3
- data/src/core/lib/gprpp/stat.h +3 -3
- data/src/core/lib/gprpp/status_helper.h +3 -3
- data/src/core/lib/gprpp/strerror.cc +2 -0
- data/src/core/lib/gprpp/strerror.h +3 -3
- data/src/core/lib/gprpp/sync.h +3 -3
- data/src/core/lib/gprpp/table.h +3 -3
- data/src/core/lib/gprpp/tchar.h +3 -3
- data/src/core/lib/gprpp/thd.h +3 -3
- data/src/core/lib/gprpp/time.cc +1 -0
- data/src/core/lib/gprpp/time.h +3 -3
- data/src/core/lib/gprpp/time_averaged_stats.h +3 -3
- data/src/core/lib/gprpp/time_util.h +3 -3
- data/src/core/lib/gprpp/unique_type_name.h +3 -3
- data/src/core/lib/gprpp/validation_errors.h +3 -3
- data/src/core/lib/gprpp/work_serializer.h +3 -3
- data/src/core/lib/handshaker/proxy_mapper.h +3 -3
- data/src/core/lib/handshaker/proxy_mapper_registry.h +3 -3
- data/src/core/lib/http/format_request.cc +1 -0
- data/src/core/lib/http/format_request.h +3 -3
- data/src/core/lib/http/httpcli.cc +1 -0
- data/src/core/lib/http/httpcli.h +3 -3
- data/src/core/lib/http/httpcli_ssl_credentials.h +3 -3
- data/src/core/lib/http/parser.h +3 -3
- data/src/core/lib/iomgr/block_annotate.h +3 -3
- data/src/core/lib/iomgr/buffer_list.h +3 -3
- data/src/core/lib/iomgr/call_combiner.cc +4 -4
- data/src/core/lib/iomgr/call_combiner.h +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +3 -3
- data/src/core/lib/iomgr/closure.cc +27 -0
- data/src/core/lib/iomgr/closure.h +5 -3
- data/src/core/lib/iomgr/combiner.h +3 -3
- data/src/core/lib/iomgr/dynamic_annotations.h +3 -3
- data/src/core/lib/iomgr/endpoint.h +3 -3
- data/src/core/lib/iomgr/endpoint_cfstream.h +3 -3
- data/src/core/lib/iomgr/endpoint_pair.h +3 -3
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +10 -2
- data/src/core/lib/iomgr/error.h +3 -3
- data/src/core/lib/iomgr/error_cfstream.h +3 -3
- data/src/core/lib/iomgr/ev_apple.h +3 -3
- data/src/core/lib/iomgr/ev_epoll1_linux.h +3 -3
- data/src/core/lib/iomgr/ev_poll_posix.h +3 -3
- data/src/core/lib/iomgr/ev_posix.h +3 -3
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +62 -0
- data/src/core/lib/iomgr/event_engine_shims/closure.h +39 -0
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +430 -0
- data/src/core/lib/iomgr/event_engine_shims/endpoint.h +43 -0
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +91 -0
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +44 -0
- data/src/core/lib/iomgr/exec_ctx.h +3 -3
- data/src/core/lib/iomgr/executor.h +3 -3
- data/src/core/lib/iomgr/fork_posix.cc +5 -4
- data/src/core/lib/iomgr/gethostname.h +3 -3
- data/src/core/lib/iomgr/grpc_if_nametoindex.h +3 -3
- data/src/core/lib/iomgr/internal_errqueue.h +3 -3
- data/src/core/lib/iomgr/iocp_windows.h +3 -3
- data/src/core/lib/iomgr/iomgr.h +3 -3
- data/src/core/lib/iomgr/iomgr_fwd.h +3 -3
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/load_file.h +3 -3
- data/src/core/lib/iomgr/lockfree_event.h +3 -3
- data/src/core/lib/iomgr/nameser.h +3 -3
- data/src/core/lib/iomgr/polling_entity.h +3 -3
- data/src/core/lib/iomgr/pollset.h +3 -3
- data/src/core/lib/iomgr/pollset_set.h +3 -3
- data/src/core/lib/iomgr/pollset_set_windows.h +3 -3
- data/src/core/lib/iomgr/pollset_windows.cc +2 -2
- data/src/core/lib/iomgr/pollset_windows.h +3 -3
- data/src/core/lib/iomgr/port.h +3 -3
- data/src/core/lib/iomgr/python_util.h +3 -3
- data/src/core/lib/iomgr/resolve_address.h +3 -3
- data/src/core/lib/iomgr/resolve_address_impl.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.h +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.h +3 -3
- data/src/core/lib/iomgr/resolved_address.h +3 -3
- data/src/core/lib/iomgr/sockaddr.h +3 -3
- data/src/core/lib/iomgr/sockaddr_posix.h +3 -3
- data/src/core/lib/iomgr/sockaddr_windows.h +3 -3
- data/src/core/lib/iomgr/socket_factory_posix.h +3 -3
- data/src/core/lib/iomgr/socket_mutator.h +3 -3
- data/src/core/lib/iomgr/socket_utils.h +3 -3
- data/src/core/lib/iomgr/socket_utils_posix.h +3 -3
- data/src/core/lib/iomgr/socket_windows.h +3 -3
- data/src/core/lib/iomgr/systemd_utils.cc +19 -19
- data/src/core/lib/iomgr/systemd_utils.h +24 -24
- data/src/core/lib/iomgr/tcp_client.h +3 -3
- data/src/core/lib/iomgr/tcp_client_posix.cc +12 -0
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -3
- data/src/core/lib/iomgr/tcp_client_windows.cc +13 -1
- data/src/core/lib/iomgr/tcp_posix.cc +49 -65
- data/src/core/lib/iomgr/tcp_posix.h +3 -3
- data/src/core/lib/iomgr/tcp_server.h +3 -3
- data/src/core/lib/iomgr/tcp_server_posix.cc +219 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -3
- data/src/core/lib/iomgr/tcp_server_windows.cc +4 -6
- data/src/core/lib/iomgr/tcp_windows.h +3 -3
- data/src/core/lib/iomgr/timer.h +3 -3
- data/src/core/lib/iomgr/timer_generic.h +3 -3
- data/src/core/lib/iomgr/timer_heap.h +3 -3
- data/src/core/lib/iomgr/timer_manager.h +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +3 -3
- data/src/core/lib/json/json.h +3 -3
- data/src/core/lib/json/json_args.h +3 -3
- data/src/core/lib/json/json_channel_args.h +3 -3
- data/src/core/lib/json/json_object_loader.h +3 -3
- data/src/core/lib/json/json_reader.cc +1 -0
- data/src/core/lib/json/json_util.h +3 -3
- data/src/core/lib/load_balancing/lb_policy.cc +9 -0
- data/src/core/lib/load_balancing/lb_policy.h +9 -5
- data/src/core/lib/load_balancing/lb_policy_factory.h +3 -3
- data/src/core/lib/load_balancing/lb_policy_registry.cc +1 -0
- data/src/core/lib/load_balancing/lb_policy_registry.h +3 -3
- data/src/core/lib/load_balancing/subchannel_interface.h +8 -6
- data/src/core/lib/matchers/matchers.cc +1 -0
- data/src/core/lib/matchers/matchers.h +3 -3
- data/src/core/lib/promise/activity.cc +8 -6
- data/src/core/lib/promise/activity.h +52 -66
- data/src/core/lib/promise/arena_promise.h +3 -3
- data/src/core/lib/promise/context.h +3 -3
- data/src/core/lib/promise/detail/basic_join.h +197 -0
- data/src/core/lib/promise/detail/basic_seq.h +10 -16
- data/src/core/lib/promise/detail/promise_factory.h +3 -3
- data/src/core/lib/promise/detail/promise_like.h +3 -3
- data/src/core/lib/promise/detail/status.h +3 -3
- data/src/core/lib/promise/detail/switch.h +3 -3
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +3 -3
- data/src/core/lib/promise/if.h +195 -0
- data/src/core/lib/promise/interceptor_list.h +308 -0
- data/src/core/lib/promise/intra_activity_waiter.h +9 -3
- data/src/core/lib/promise/latch.h +99 -5
- data/src/core/lib/promise/loop.h +4 -4
- data/src/core/lib/promise/map.h +4 -6
- data/src/core/lib/promise/pipe.h +296 -193
- data/src/core/lib/promise/poll.h +113 -14
- data/src/core/lib/promise/promise.h +4 -5
- data/src/core/lib/promise/race.h +6 -9
- data/src/core/lib/promise/seq.h +3 -3
- data/src/core/lib/promise/sleep.h +3 -3
- data/src/core/lib/promise/{pipe.cc → trace.cc} +3 -2
- data/src/core/lib/promise/trace.h +24 -0
- data/src/core/lib/promise/try_join.h +82 -0
- data/src/core/lib/promise/try_seq.h +3 -3
- data/src/core/lib/resolver/resolver.h +3 -3
- data/src/core/lib/resolver/resolver_factory.h +4 -4
- data/src/core/lib/resolver/resolver_registry.cc +15 -0
- data/src/core/lib/resolver/resolver_registry.h +3 -3
- data/src/core/lib/resolver/server_address.cc +1 -0
- data/src/core/lib/resolver/server_address.h +3 -3
- data/src/core/lib/resource_quota/api.h +3 -3
- data/src/core/lib/resource_quota/arena.cc +36 -9
- data/src/core/lib/resource_quota/arena.h +84 -22
- data/src/core/lib/resource_quota/memory_quota.h +3 -3
- data/src/core/lib/resource_quota/periodic_update.h +3 -3
- data/src/core/lib/resource_quota/resource_quota.h +3 -3
- data/src/core/lib/resource_quota/thread_quota.h +3 -3
- data/src/core/lib/resource_quota/trace.h +3 -3
- data/src/core/lib/security/authorization/authorization_engine.h +3 -3
- data/src/core/lib/security/authorization/authorization_policy_provider.h +3 -3
- data/src/core/lib/security/authorization/evaluate_args.h +3 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +3 -3
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +3 -3
- data/src/core/lib/security/authorization/matchers.h +3 -3
- data/src/core/lib/security/authorization/rbac_policy.cc +1 -0
- data/src/core/lib/security/authorization/rbac_policy.h +3 -3
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +3 -3
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +3 -3
- data/src/core/lib/security/context/security_context.h +3 -3
- data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -3
- data/src/core/lib/security/credentials/alts/check_gcp_environment.h +3 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +3 -3
- data/src/core/lib/security/credentials/call_creds_util.h +3 -3
- data/src/core/lib/security/credentials/channel_creds_registry.h +3 -3
- data/src/core/lib/security/credentials/composite/composite_credentials.h +3 -3
- data/src/core/lib/security/credentials/credentials.h +3 -3
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +1 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.h +3 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.h +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +3 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +1 -0
- data/src/core/lib/security/credentials/iam/iam_credentials.h +3 -3
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -3
- data/src/core/lib/security/credentials/jwt/json_token.h +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -3
- data/src/core/lib/security/credentials/local/local_credentials.h +3 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -3
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +3 -3
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +3 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +3 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +3 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +3 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +3 -3
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -3
- data/src/core/lib/security/credentials/tls/tls_utils.h +3 -3
- data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +3 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +3 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +3 -3
- data/src/core/lib/security/security_connector/load_system_roots.h +3 -3
- data/src/core/lib/security/security_connector/load_system_roots_supported.h +3 -3
- data/src/core/lib/security/security_connector/local/local_security_connector.h +3 -3
- data/src/core/lib/security/security_connector/security_connector.h +3 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +3 -3
- data/src/core/lib/security/security_connector/ssl_utils.h +3 -3
- data/src/core/lib/security/security_connector/ssl_utils_config.h +3 -3
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +3 -3
- data/src/core/lib/security/transport/auth_filters.h +27 -5
- data/src/core/lib/security/transport/secure_endpoint.h +3 -3
- data/src/core/lib/security/transport/security_handshaker.cc +9 -0
- data/src/core/lib/security/transport/security_handshaker.h +3 -3
- data/src/core/lib/security/transport/server_auth_filter.cc +120 -251
- data/src/core/lib/security/transport/tsi_error.h +3 -3
- data/src/core/lib/security/util/json_util.h +3 -3
- data/src/core/lib/service_config/service_config.h +3 -3
- data/src/core/lib/service_config/service_config_call_data.h +3 -3
- data/src/core/lib/service_config/service_config_impl.h +3 -3
- data/src/core/lib/service_config/service_config_parser.h +3 -3
- data/src/core/lib/slice/b64.h +3 -3
- data/src/core/lib/slice/percent_encoding.h +3 -3
- data/src/core/lib/slice/slice.cc +3 -3
- data/src/core/lib/slice/slice.h +14 -21
- data/src/core/lib/slice/slice_buffer.h +10 -4
- data/src/core/lib/slice/slice_internal.h +3 -3
- data/src/core/lib/slice/slice_refcount.cc +20 -0
- data/src/core/lib/slice/slice_refcount.h +26 -6
- data/src/core/lib/slice/slice_string_helpers.h +3 -3
- data/src/core/lib/surface/api_trace.h +3 -3
- data/src/core/lib/surface/builtins.h +3 -3
- data/src/core/lib/surface/call.cc +866 -252
- data/src/core/lib/surface/call.h +31 -3
- data/src/core/lib/surface/call_log_batch.cc +1 -0
- data/src/core/lib/surface/call_test_only.h +3 -3
- data/src/core/lib/surface/call_trace.cc +21 -11
- data/src/core/lib/surface/call_trace.h +3 -3
- data/src/core/lib/surface/channel.h +3 -3
- data/src/core/lib/surface/channel_init.h +3 -3
- data/src/core/lib/surface/channel_stack_type.h +3 -3
- data/src/core/lib/surface/completion_queue.cc +1 -0
- data/src/core/lib/surface/completion_queue.h +3 -3
- data/src/core/lib/surface/completion_queue_factory.h +3 -3
- data/src/core/lib/surface/event_string.cc +1 -0
- data/src/core/lib/surface/event_string.h +3 -3
- data/src/core/lib/surface/init.cc +1 -1
- data/src/core/lib/surface/init.h +3 -3
- data/src/core/lib/surface/init_internally.h +3 -3
- data/src/core/lib/surface/lame_client.cc +3 -1
- data/src/core/lib/surface/lame_client.h +3 -3
- data/src/core/lib/surface/server.cc +273 -27
- data/src/core/lib/surface/server.h +6 -3
- data/src/core/lib/surface/validate_metadata.h +3 -3
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.h +3 -3
- data/src/core/lib/transport/connectivity_state.h +3 -3
- data/src/core/lib/transport/error_utils.h +3 -3
- data/src/core/lib/transport/handshaker.cc +11 -0
- data/src/core/lib/transport/handshaker.h +4 -4
- data/src/core/lib/transport/handshaker_factory.h +3 -3
- data/src/core/lib/transport/handshaker_registry.h +3 -3
- data/src/core/lib/transport/http2_errors.h +3 -3
- data/src/core/lib/transport/http_connect_handshaker.h +3 -3
- data/src/core/lib/transport/metadata_batch.cc +11 -0
- data/src/core/lib/transport/metadata_batch.h +24 -3
- data/src/core/lib/transport/parsed_metadata.h +3 -3
- data/src/core/lib/transport/pid_controller.h +3 -3
- data/src/core/lib/transport/status_conversion.h +3 -3
- data/src/core/lib/transport/tcp_connect_handshaker.cc +0 -1
- data/src/core/lib/transport/tcp_connect_handshaker.h +3 -3
- data/src/core/lib/transport/timeout_encoding.h +3 -3
- data/src/core/lib/transport/transport.cc +3 -8
- data/src/core/lib/transport/transport.h +16 -8
- data/src/core/lib/transport/transport_fwd.h +3 -3
- data/src/core/lib/transport/transport_impl.h +3 -3
- data/src/core/lib/transport/transport_op_string.cc +1 -0
- data/src/core/lib/uri/uri_parser.cc +1 -1
- data/src/core/lib/uri/uri_parser.h +3 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -0
- data/src/core/tsi/alts/crypt/gsec.h +3 -3
- data/src/core/tsi/alts/frame_protector/alts_counter.h +3 -3
- data/src/core/tsi/alts/frame_protector/alts_crypter.h +3 -3
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +3 -3
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +3 -3
- data/src/core/tsi/alts/frame_protector/frame_handler.h +3 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +3 -3
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +3 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +3 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +3 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +3 -3
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +3 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +3 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +3 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +3 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +3 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +3 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +3 -3
- data/src/core/tsi/fake_transport_security.h +3 -3
- data/src/core/tsi/local_transport_security.h +3 -3
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +1 -1
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +3 -3
- data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -3
- data/src/core/tsi/ssl_transport_security.cc +113 -24
- data/src/core/tsi/ssl_transport_security.h +5 -3
- data/src/core/tsi/ssl_transport_security_utils.h +3 -3
- data/src/core/tsi/ssl_types.h +3 -3
- data/src/core/tsi/transport_security.h +3 -3
- data/src/core/tsi/transport_security_grpc.h +3 -3
- data/src/core/tsi/transport_security_interface.h +3 -3
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +0 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +56 -57
- data/third_party/abseil-cpp/absl/base/attributes.h +39 -19
- data/third_party/abseil-cpp/absl/base/config.h +44 -3
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +3 -18
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +2 -1
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +3 -3
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +1 -1
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +10 -6
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +23 -24
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +2 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +4 -1
- data/third_party/abseil-cpp/absl/base/internal/strerror.cc +4 -4
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +14 -10
- data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +9 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -40
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
- data/third_party/abseil-cpp/absl/base/macros.h +4 -21
- data/third_party/abseil-cpp/absl/base/optimization.h +58 -6
- data/third_party/abseil-cpp/absl/base/options.h +1 -7
- data/third_party/abseil-cpp/absl/base/policy_checks.h +15 -13
- data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -5
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -7
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +66 -18
- data/third_party/abseil-cpp/absl/container/internal/common.h +3 -3
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +132 -0
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +13 -1
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +4 -55
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +50 -5
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +14 -46
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +110 -32
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +155 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +661 -341
- data/third_party/abseil-cpp/absl/crc/crc32c.cc +99 -0
- data/third_party/abseil-cpp/absl/crc/crc32c.h +183 -0
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +256 -0
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +57 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc.cc +468 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc.h +91 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +269 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc32c.h +39 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc32c_inline.h +72 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +130 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +159 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +179 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy.h +119 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +75 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +434 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +93 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +725 -0
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +79 -0
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +180 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +67 -38
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -13
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -9
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +40 -85
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +5 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +33 -8
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +118 -94
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +7 -6
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +5 -2
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +47 -26
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +10 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +18 -4
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +3 -14
- data/third_party/abseil-cpp/absl/memory/memory.h +26 -447
- data/third_party/abseil-cpp/absl/meta/type_traits.h +104 -12
- data/third_party/abseil-cpp/absl/numeric/bits.h +2 -3
- data/third_party/abseil-cpp/absl/numeric/int128.cc +10 -8
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +14 -6
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +2 -23
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +9 -9
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +2 -2
- data/third_party/abseil-cpp/absl/random/random.h +6 -6
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +1 -0
- data/third_party/abseil-cpp/absl/status/status.cc +19 -12
- data/third_party/abseil-cpp/absl/status/status.h +2 -2
- data/third_party/abseil-cpp/absl/strings/ascii.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/charconv.cc +534 -96
- data/third_party/abseil-cpp/absl/strings/cord.cc +92 -40
- data/third_party/abseil-cpp/absl/strings/cord.h +71 -80
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +8 -5
- data/third_party/abseil-cpp/absl/strings/escaping.cc +73 -62
- data/third_party/abseil-cpp/absl/strings/escaping.h +24 -19
- data/third_party/abseil-cpp/absl/strings/internal/char_map.h +14 -12
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +326 -70
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +8 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +26 -14
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +9 -7
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +5 -4
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +7 -15
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +8 -5
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +7 -7
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +93 -0
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +34 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +12 -10
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +7 -9
- data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +55 -0
- data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +14 -7
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +35 -10
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +113 -46
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +126 -29
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +4 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +49 -287
- data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +351 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +215 -181
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +10 -209
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +10 -101
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc +28 -0
- data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +57 -0
- data/third_party/abseil-cpp/absl/strings/numbers.cc +34 -31
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +9 -6
- data/third_party/abseil-cpp/absl/strings/str_cat.h +50 -3
- data/third_party/abseil-cpp/absl/strings/str_format.h +71 -9
- data/third_party/abseil-cpp/absl/strings/string_view.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/string_view.h +3 -10
- data/third_party/abseil-cpp/absl/strings/substitute.cc +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.h +46 -20
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +20 -17
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +37 -31
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +22 -8
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +104 -55
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +85 -46
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +0 -1
- data/third_party/abseil-cpp/absl/synchronization/notification.h +0 -1
- data/third_party/abseil-cpp/absl/time/civil_time.cc +26 -0
- data/third_party/abseil-cpp/absl/time/civil_time.h +25 -0
- data/third_party/abseil-cpp/absl/time/clock.cc +17 -11
- data/third_party/abseil-cpp/absl/time/duration.cc +7 -7
- data/third_party/abseil-cpp/absl/time/format.cc +2 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +26 -5
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +7 -6
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +36 -35
- data/third_party/abseil-cpp/absl/time/time.cc +2 -2
- data/third_party/abseil-cpp/absl/time/time.h +253 -158
- data/third_party/abseil-cpp/absl/types/internal/span.h +30 -19
- data/third_party/abseil-cpp/absl/types/internal/variant.h +28 -40
- data/third_party/abseil-cpp/absl/types/span.h +29 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +1 -2
- metadata +75 -10
- data/src/core/lib/event_engine/socket_notifier.h +0 -55
- data/src/core/lib/promise/for_each.h +0 -155
- data/src/core/lib/promise/map_pipe.h +0 -88
- data/src/core/lib/promise/try_concurrently.h +0 -342
@@ -77,9 +77,8 @@ using ContainerIterPairType =
|
|
77
77
|
decltype(std::make_pair(ContainerIter<C1>(), ContainerIter<C2>()));
|
78
78
|
|
79
79
|
template <typename C>
|
80
|
-
using ContainerDifferenceType =
|
81
|
-
|
82
|
-
std::declval<ContainerIter<C>>()));
|
80
|
+
using ContainerDifferenceType = decltype(std::distance(
|
81
|
+
std::declval<ContainerIter<C>>(), std::declval<ContainerIter<C>>()));
|
83
82
|
|
84
83
|
template <typename C>
|
85
84
|
using ContainerPointerType =
|
@@ -97,10 +96,14 @@ using ContainerPointerType =
|
|
97
96
|
// These are meant for internal use only.
|
98
97
|
|
99
98
|
template <typename C>
|
100
|
-
ContainerIter<C> c_begin(C& c) {
|
99
|
+
ContainerIter<C> c_begin(C& c) {
|
100
|
+
return begin(c);
|
101
|
+
}
|
101
102
|
|
102
103
|
template <typename C>
|
103
|
-
ContainerIter<C> c_end(C& c) {
|
104
|
+
ContainerIter<C> c_end(C& c) {
|
105
|
+
return end(c);
|
106
|
+
}
|
104
107
|
|
105
108
|
template <typename T>
|
106
109
|
struct IsUnorderedContainer : std::false_type {};
|
@@ -343,8 +346,8 @@ container_algorithm_internal::ContainerDifferenceType<const C> c_count_if(
|
|
343
346
|
// return the first element where two ordered containers differ. Applies `==` to
|
344
347
|
// the first N elements of `c1` and `c2`, where N = min(size(c1), size(c2)).
|
345
348
|
template <typename C1, typename C2>
|
346
|
-
container_algorithm_internal::ContainerIterPairType<C1, C2>
|
347
|
-
|
349
|
+
container_algorithm_internal::ContainerIterPairType<C1, C2> c_mismatch(C1& c1,
|
350
|
+
C2& c2) {
|
348
351
|
auto first1 = container_algorithm_internal::c_begin(c1);
|
349
352
|
auto last1 = container_algorithm_internal::c_end(c1);
|
350
353
|
auto first2 = container_algorithm_internal::c_begin(c2);
|
@@ -365,8 +368,8 @@ c_mismatch(C1& c1, C2& c2) {
|
|
365
368
|
// the function's test condition. Applies `pred`to the first N elements of `c1`
|
366
369
|
// and `c2`, where N = min(size(c1), size(c2)).
|
367
370
|
template <typename C1, typename C2, typename BinaryPredicate>
|
368
|
-
container_algorithm_internal::ContainerIterPairType<C1, C2>
|
369
|
-
|
371
|
+
container_algorithm_internal::ContainerIterPairType<C1, C2> c_mismatch(
|
372
|
+
C1& c1, C2& c2, BinaryPredicate pred) {
|
370
373
|
auto first1 = container_algorithm_internal::c_begin(c1);
|
371
374
|
auto last1 = container_algorithm_internal::c_end(c1);
|
372
375
|
auto first2 = container_algorithm_internal::c_begin(c2);
|
@@ -655,11 +658,10 @@ OutputIterator c_replace_copy(const C& c, OutputIterator result, T&& old_value,
|
|
655
658
|
// some condition, and return the results within an iterator.
|
656
659
|
template <typename C, typename OutputIterator, typename Pred, typename T>
|
657
660
|
OutputIterator c_replace_copy_if(const C& c, OutputIterator result, Pred&& pred,
|
658
|
-
T
|
661
|
+
const T& new_value) {
|
659
662
|
return std::replace_copy_if(container_algorithm_internal::c_begin(c),
|
660
663
|
container_algorithm_internal::c_end(c), result,
|
661
|
-
std::forward<Pred>(pred),
|
662
|
-
std::forward<T>(new_value));
|
664
|
+
std::forward<Pred>(pred), new_value);
|
663
665
|
}
|
664
666
|
|
665
667
|
// c_fill()
|
@@ -667,9 +669,9 @@ OutputIterator c_replace_copy_if(const C& c, OutputIterator result, Pred&& pred,
|
|
667
669
|
// Container-based version of the <algorithm> `std::fill()` function to fill a
|
668
670
|
// container with some value.
|
669
671
|
template <typename C, typename T>
|
670
|
-
void c_fill(C& c, T
|
672
|
+
void c_fill(C& c, const T& value) {
|
671
673
|
std::fill(container_algorithm_internal::c_begin(c),
|
672
|
-
container_algorithm_internal::c_end(c),
|
674
|
+
container_algorithm_internal::c_end(c), value);
|
673
675
|
}
|
674
676
|
|
675
677
|
// c_fill_n()
|
@@ -677,9 +679,8 @@ void c_fill(C& c, T&& value) {
|
|
677
679
|
// Container-based version of the <algorithm> `std::fill_n()` function to fill
|
678
680
|
// the first N elements in a container with some value.
|
679
681
|
template <typename C, typename Size, typename T>
|
680
|
-
void c_fill_n(C& c, Size n, T
|
681
|
-
std::fill_n(container_algorithm_internal::c_begin(c), n,
|
682
|
-
std::forward<T>(value));
|
682
|
+
void c_fill_n(C& c, Size n, const T& value) {
|
683
|
+
std::fill_n(container_algorithm_internal::c_begin(c), n, value);
|
683
684
|
}
|
684
685
|
|
685
686
|
// c_generate()
|
@@ -716,10 +717,11 @@ container_algorithm_internal::ContainerIter<C> c_generate_n(C& c, Size n,
|
|
716
717
|
// copy a container's elements while removing any elements matching the given
|
717
718
|
// `value`.
|
718
719
|
template <typename C, typename OutputIterator, typename T>
|
719
|
-
OutputIterator c_remove_copy(const C& c, OutputIterator result,
|
720
|
+
OutputIterator c_remove_copy(const C& c, OutputIterator result,
|
721
|
+
const T& value) {
|
720
722
|
return std::remove_copy(container_algorithm_internal::c_begin(c),
|
721
723
|
container_algorithm_internal::c_end(c), result,
|
722
|
-
|
724
|
+
value);
|
723
725
|
}
|
724
726
|
|
725
727
|
// c_remove_copy_if()
|
@@ -1064,20 +1066,19 @@ void c_nth_element(
|
|
1064
1066
|
// which does not compare less than `value`.
|
1065
1067
|
template <typename Sequence, typename T>
|
1066
1068
|
container_algorithm_internal::ContainerIter<Sequence> c_lower_bound(
|
1067
|
-
Sequence& sequence, T
|
1069
|
+
Sequence& sequence, const T& value) {
|
1068
1070
|
return std::lower_bound(container_algorithm_internal::c_begin(sequence),
|
1069
|
-
container_algorithm_internal::c_end(sequence),
|
1070
|
-
std::forward<T>(value));
|
1071
|
+
container_algorithm_internal::c_end(sequence), value);
|
1071
1072
|
}
|
1072
1073
|
|
1073
1074
|
// Overload of c_lower_bound() for performing a `comp` comparison other than
|
1074
1075
|
// the default `operator<`.
|
1075
1076
|
template <typename Sequence, typename T, typename LessThan>
|
1076
1077
|
container_algorithm_internal::ContainerIter<Sequence> c_lower_bound(
|
1077
|
-
Sequence& sequence, T
|
1078
|
+
Sequence& sequence, const T& value, LessThan&& comp) {
|
1078
1079
|
return std::lower_bound(container_algorithm_internal::c_begin(sequence),
|
1079
|
-
container_algorithm_internal::c_end(sequence),
|
1080
|
-
std::forward<
|
1080
|
+
container_algorithm_internal::c_end(sequence), value,
|
1081
|
+
std::forward<LessThan>(comp));
|
1081
1082
|
}
|
1082
1083
|
|
1083
1084
|
// c_upper_bound()
|
@@ -1087,20 +1088,19 @@ container_algorithm_internal::ContainerIter<Sequence> c_lower_bound(
|
|
1087
1088
|
// which is greater than `value`.
|
1088
1089
|
template <typename Sequence, typename T>
|
1089
1090
|
container_algorithm_internal::ContainerIter<Sequence> c_upper_bound(
|
1090
|
-
Sequence& sequence, T
|
1091
|
+
Sequence& sequence, const T& value) {
|
1091
1092
|
return std::upper_bound(container_algorithm_internal::c_begin(sequence),
|
1092
|
-
container_algorithm_internal::c_end(sequence),
|
1093
|
-
std::forward<T>(value));
|
1093
|
+
container_algorithm_internal::c_end(sequence), value);
|
1094
1094
|
}
|
1095
1095
|
|
1096
1096
|
// Overload of c_upper_bound() for performing a `comp` comparison other than
|
1097
1097
|
// the default `operator<`.
|
1098
1098
|
template <typename Sequence, typename T, typename LessThan>
|
1099
1099
|
container_algorithm_internal::ContainerIter<Sequence> c_upper_bound(
|
1100
|
-
Sequence& sequence, T
|
1100
|
+
Sequence& sequence, const T& value, LessThan&& comp) {
|
1101
1101
|
return std::upper_bound(container_algorithm_internal::c_begin(sequence),
|
1102
|
-
container_algorithm_internal::c_end(sequence),
|
1103
|
-
std::forward<
|
1102
|
+
container_algorithm_internal::c_end(sequence), value,
|
1103
|
+
std::forward<LessThan>(comp));
|
1104
1104
|
}
|
1105
1105
|
|
1106
1106
|
// c_equal_range()
|
@@ -1110,20 +1110,19 @@ container_algorithm_internal::ContainerIter<Sequence> c_upper_bound(
|
|
1110
1110
|
// sorted container which compare equal to `value`.
|
1111
1111
|
template <typename Sequence, typename T>
|
1112
1112
|
container_algorithm_internal::ContainerIterPairType<Sequence, Sequence>
|
1113
|
-
c_equal_range(Sequence& sequence, T
|
1113
|
+
c_equal_range(Sequence& sequence, const T& value) {
|
1114
1114
|
return std::equal_range(container_algorithm_internal::c_begin(sequence),
|
1115
|
-
container_algorithm_internal::c_end(sequence),
|
1116
|
-
std::forward<T>(value));
|
1115
|
+
container_algorithm_internal::c_end(sequence), value);
|
1117
1116
|
}
|
1118
1117
|
|
1119
1118
|
// Overload of c_equal_range() for performing a `comp` comparison other than
|
1120
1119
|
// the default `operator<`.
|
1121
1120
|
template <typename Sequence, typename T, typename LessThan>
|
1122
1121
|
container_algorithm_internal::ContainerIterPairType<Sequence, Sequence>
|
1123
|
-
c_equal_range(Sequence& sequence, T
|
1122
|
+
c_equal_range(Sequence& sequence, const T& value, LessThan&& comp) {
|
1124
1123
|
return std::equal_range(container_algorithm_internal::c_begin(sequence),
|
1125
|
-
container_algorithm_internal::c_end(sequence),
|
1126
|
-
std::forward<
|
1124
|
+
container_algorithm_internal::c_end(sequence), value,
|
1125
|
+
std::forward<LessThan>(comp));
|
1127
1126
|
}
|
1128
1127
|
|
1129
1128
|
// c_binary_search()
|
@@ -1132,20 +1131,19 @@ c_equal_range(Sequence& sequence, T&& value, LessThan&& comp) {
|
|
1132
1131
|
// to test if any element in the sorted container contains a value equivalent to
|
1133
1132
|
// 'value'.
|
1134
1133
|
template <typename Sequence, typename T>
|
1135
|
-
bool c_binary_search(Sequence&& sequence, T
|
1134
|
+
bool c_binary_search(Sequence&& sequence, const T& value) {
|
1136
1135
|
return std::binary_search(container_algorithm_internal::c_begin(sequence),
|
1137
1136
|
container_algorithm_internal::c_end(sequence),
|
1138
|
-
|
1137
|
+
value);
|
1139
1138
|
}
|
1140
1139
|
|
1141
1140
|
// Overload of c_binary_search() for performing a `comp` comparison other than
|
1142
1141
|
// the default `operator<`.
|
1143
1142
|
template <typename Sequence, typename T, typename LessThan>
|
1144
|
-
bool c_binary_search(Sequence&& sequence, T
|
1143
|
+
bool c_binary_search(Sequence&& sequence, const T& value, LessThan&& comp) {
|
1145
1144
|
return std::binary_search(container_algorithm_internal::c_begin(sequence),
|
1146
1145
|
container_algorithm_internal::c_end(sequence),
|
1147
|
-
std::forward<
|
1148
|
-
std::forward<LessThan>(comp));
|
1146
|
+
value, std::forward<LessThan>(comp));
|
1149
1147
|
}
|
1150
1148
|
|
1151
1149
|
//------------------------------------------------------------------------------
|
@@ -1560,8 +1558,8 @@ container_algorithm_internal::ContainerIter<Sequence> c_max_element(
|
|
1560
1558
|
// smallest and largest values, respectively, using `operator<` to make the
|
1561
1559
|
// comparisons.
|
1562
1560
|
template <typename C>
|
1563
|
-
container_algorithm_internal::ContainerIterPairType<C, C>
|
1564
|
-
|
1561
|
+
container_algorithm_internal::ContainerIterPairType<C, C> c_minmax_element(
|
1562
|
+
C& c) {
|
1565
1563
|
return std::minmax_element(container_algorithm_internal::c_begin(c),
|
1566
1564
|
container_algorithm_internal::c_end(c));
|
1567
1565
|
}
|
@@ -1569,8 +1567,8 @@ c_minmax_element(C& c) {
|
|
1569
1567
|
// Overload of c_minmax_element() for performing `comp` comparisons other than
|
1570
1568
|
// `operator<`.
|
1571
1569
|
template <typename C, typename LessThan>
|
1572
|
-
container_algorithm_internal::ContainerIterPairType<C, C>
|
1573
|
-
|
1570
|
+
container_algorithm_internal::ContainerIterPairType<C, C> c_minmax_element(
|
1571
|
+
C& c, LessThan&& comp) {
|
1574
1572
|
return std::minmax_element(container_algorithm_internal::c_begin(c),
|
1575
1573
|
container_algorithm_internal::c_end(c),
|
1576
1574
|
std::forward<LessThan>(comp));
|
@@ -1588,7 +1586,8 @@ c_minmax_element(C& c, LessThan&& comp) {
|
|
1588
1586
|
// that capital letters ("A-Z") have ASCII values less than lowercase letters
|
1589
1587
|
// ("a-z").
|
1590
1588
|
template <typename Sequence1, typename Sequence2>
|
1591
|
-
bool c_lexicographical_compare(Sequence1
|
1589
|
+
bool c_lexicographical_compare(const Sequence1& sequence1,
|
1590
|
+
const Sequence2& sequence2) {
|
1592
1591
|
return std::lexicographical_compare(
|
1593
1592
|
container_algorithm_internal::c_begin(sequence1),
|
1594
1593
|
container_algorithm_internal::c_end(sequence1),
|
@@ -1599,8 +1598,8 @@ bool c_lexicographical_compare(Sequence1&& sequence1, Sequence2&& sequence2) {
|
|
1599
1598
|
// Overload of c_lexicographical_compare() for performing a lexicographical
|
1600
1599
|
// comparison using a `comp` operator instead of `operator<`.
|
1601
1600
|
template <typename Sequence1, typename Sequence2, typename LessThan>
|
1602
|
-
bool c_lexicographical_compare(Sequence1
|
1603
|
-
LessThan&& comp) {
|
1601
|
+
bool c_lexicographical_compare(const Sequence1& sequence1,
|
1602
|
+
const Sequence2& sequence2, LessThan&& comp) {
|
1604
1603
|
return std::lexicographical_compare(
|
1605
1604
|
container_algorithm_internal::c_begin(sequence1),
|
1606
1605
|
container_algorithm_internal::c_end(sequence1),
|
@@ -1655,18 +1654,18 @@ bool c_prev_permutation(C& c, LessThan&& comp) {
|
|
1655
1654
|
|
1656
1655
|
// c_iota()
|
1657
1656
|
//
|
1658
|
-
// Container-based version of the <
|
1657
|
+
// Container-based version of the <numeric> `std::iota()` function
|
1659
1658
|
// to compute successive values of `value`, as if incremented with `++value`
|
1660
1659
|
// after each element is written. and write them to the container.
|
1661
1660
|
template <typename Sequence, typename T>
|
1662
|
-
void c_iota(Sequence& sequence, T
|
1661
|
+
void c_iota(Sequence& sequence, const T& value) {
|
1663
1662
|
std::iota(container_algorithm_internal::c_begin(sequence),
|
1664
|
-
container_algorithm_internal::c_end(sequence),
|
1665
|
-
std::forward<T>(value));
|
1663
|
+
container_algorithm_internal::c_end(sequence), value);
|
1666
1664
|
}
|
1665
|
+
|
1667
1666
|
// c_accumulate()
|
1668
1667
|
//
|
1669
|
-
// Container-based version of the <
|
1668
|
+
// Container-based version of the <numeric> `std::accumulate()` function
|
1670
1669
|
// to accumulate the element values of a container to `init` and return that
|
1671
1670
|
// accumulation by value.
|
1672
1671
|
//
|
@@ -1693,7 +1692,7 @@ decay_t<T> c_accumulate(const Sequence& sequence, T&& init,
|
|
1693
1692
|
|
1694
1693
|
// c_inner_product()
|
1695
1694
|
//
|
1696
|
-
// Container-based version of the <
|
1695
|
+
// Container-based version of the <numeric> `std::inner_product()` function
|
1697
1696
|
// to compute the cumulative inner product of container element pairs.
|
1698
1697
|
//
|
1699
1698
|
// Note: Due to a language technicality this function has return type
|
@@ -1724,7 +1723,7 @@ decay_t<T> c_inner_product(const Sequence1& factors1, const Sequence2& factors2,
|
|
1724
1723
|
|
1725
1724
|
// c_adjacent_difference()
|
1726
1725
|
//
|
1727
|
-
// Container-based version of the <
|
1726
|
+
// Container-based version of the <numeric> `std::adjacent_difference()`
|
1728
1727
|
// function to compute the difference between each element and the one preceding
|
1729
1728
|
// it and write it to an iterator.
|
1730
1729
|
template <typename InputSequence, typename OutputIt>
|
@@ -1747,7 +1746,7 @@ OutputIt c_adjacent_difference(const InputSequence& input,
|
|
1747
1746
|
|
1748
1747
|
// c_partial_sum()
|
1749
1748
|
//
|
1750
|
-
// Container-based version of the <
|
1749
|
+
// Container-based version of the <numeric> `std::partial_sum()` function
|
1751
1750
|
// to compute the partial sum of the elements in a sequence and write them
|
1752
1751
|
// to an iterator. The partial sum is the sum of all element values so far in
|
1753
1752
|
// the sequence.
|
@@ -716,26 +716,9 @@
|
|
716
716
|
#define ABSL_CONST_INIT
|
717
717
|
#endif
|
718
718
|
|
719
|
-
//
|
720
|
-
//
|
721
|
-
// ABSL_ATTRIBUTE_PURE_FUNCTION is used to annotate declarations of "pure"
|
722
|
-
// functions. A function is pure if its return value is only a function of its
|
723
|
-
// arguments. The pure attribute prohibits a function from modifying the state
|
724
|
-
// of the program that is observable by means other than inspecting the
|
725
|
-
// function's return value. Declaring such functions with the pure attribute
|
726
|
-
// allows the compiler to avoid emitting some calls in repeated invocations of
|
727
|
-
// the function with the same argument values.
|
728
|
-
//
|
729
|
-
// Example:
|
730
|
-
//
|
731
|
-
// ABSL_ATTRIBUTE_PURE_FUNCTION int64_t ToInt64Milliseconds(Duration d);
|
732
|
-
#if ABSL_HAVE_CPP_ATTRIBUTE(gnu::pure)
|
733
|
-
#define ABSL_ATTRIBUTE_PURE_FUNCTION [[gnu::pure]]
|
734
|
-
#elif ABSL_HAVE_ATTRIBUTE(pure)
|
735
|
-
#define ABSL_ATTRIBUTE_PURE_FUNCTION __attribute__((pure))
|
736
|
-
#else
|
719
|
+
// These annotations are not available yet due to fear of breaking code.
|
737
720
|
#define ABSL_ATTRIBUTE_PURE_FUNCTION
|
738
|
-
#
|
721
|
+
#define ABSL_ATTRIBUTE_CONST_FUNCTION
|
739
722
|
|
740
723
|
// ABSL_ATTRIBUTE_LIFETIME_BOUND indicates that a resource owned by a function
|
741
724
|
// parameter or implicit object parameter is retained by the return value of the
|
@@ -759,4 +742,41 @@
|
|
759
742
|
#define ABSL_ATTRIBUTE_LIFETIME_BOUND
|
760
743
|
#endif
|
761
744
|
|
745
|
+
// ABSL_ATTRIBUTE_TRIVIAL_ABI
|
746
|
+
// Indicates that a type is "trivially relocatable" -- meaning it can be
|
747
|
+
// relocated without invoking the constructor/destructor, using a form of move
|
748
|
+
// elision.
|
749
|
+
//
|
750
|
+
// From a memory safety point of view, putting aside destructor ordering, it's
|
751
|
+
// safe to apply ABSL_ATTRIBUTE_TRIVIAL_ABI if an object's location
|
752
|
+
// can change over the course of its lifetime: if a constructor can be run one
|
753
|
+
// place, and then the object magically teleports to another place where some
|
754
|
+
// methods are run, and then the object teleports to yet another place where it
|
755
|
+
// is destroyed. This is notably not true for self-referential types, where the
|
756
|
+
// move-constructor must keep the self-reference up to date. If the type changed
|
757
|
+
// location without invoking the move constructor, it would have a dangling
|
758
|
+
// self-reference.
|
759
|
+
//
|
760
|
+
// The use of this teleporting machinery means that the number of paired
|
761
|
+
// move/destroy operations can change, and so it is a bad idea to apply this to
|
762
|
+
// a type meant to count the number of moves.
|
763
|
+
//
|
764
|
+
// Warning: applying this can, rarely, break callers. Objects passed by value
|
765
|
+
// will be destroyed at the end of the call, instead of the end of the
|
766
|
+
// full-expression containing the call. In addition, it changes the ABI
|
767
|
+
// of functions accepting this type by value (e.g. to pass in registers).
|
768
|
+
//
|
769
|
+
// See also the upstream documentation:
|
770
|
+
// https://clang.llvm.org/docs/AttributeReference.html#trivial-abi
|
771
|
+
//
|
772
|
+
#if ABSL_HAVE_CPP_ATTRIBUTE(clang::trivial_abi)
|
773
|
+
#define ABSL_ATTRIBUTE_TRIVIAL_ABI [[clang::trivial_abi]]
|
774
|
+
#define ABSL_HAVE_ATTRIBUTE_TRIVIAL_ABI 1
|
775
|
+
#elif ABSL_HAVE_ATTRIBUTE(trivial_abi)
|
776
|
+
#define ABSL_ATTRIBUTE_TRIVIAL_ABI __attribute__((trivial_abi))
|
777
|
+
#define ABSL_HAVE_ATTRIBUTE_TRIVIAL_ABI 1
|
778
|
+
#else
|
779
|
+
#define ABSL_ATTRIBUTE_TRIVIAL_ABI
|
780
|
+
#endif
|
781
|
+
|
762
782
|
#endif // ABSL_BASE_ATTRIBUTES_H_
|
@@ -111,7 +111,7 @@
|
|
111
111
|
//
|
112
112
|
// LTS releases can be obtained from
|
113
113
|
// https://github.com/abseil/abseil-cpp/releases.
|
114
|
-
#define ABSL_LTS_RELEASE_VERSION
|
114
|
+
#define ABSL_LTS_RELEASE_VERSION 20230125
|
115
115
|
#define ABSL_LTS_RELEASE_PATCH_LEVEL 0
|
116
116
|
|
117
117
|
// Helper macro to convert a CPP variable to a string literal.
|
@@ -243,6 +243,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
243
243
|
#ifdef ABSL_HAVE_STD_IS_TRIVIALLY_DESTRUCTIBLE
|
244
244
|
#error ABSL_HAVE_STD_IS_TRIVIALLY_DESTRUCTIBLE cannot be directly set
|
245
245
|
#elif defined(_LIBCPP_VERSION) || defined(_MSC_VER) || \
|
246
|
+
(defined(__clang__) && __clang_major__ >= 15) || \
|
246
247
|
(!defined(__clang__) && defined(__GLIBCXX__) && \
|
247
248
|
ABSL_INTERNAL_HAVE_MIN_GNUC_VERSION(4, 8))
|
248
249
|
#define ABSL_HAVE_STD_IS_TRIVIALLY_DESTRUCTIBLE 1
|
@@ -264,15 +265,27 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
264
265
|
#elif defined(ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE)
|
265
266
|
#error ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE cannot directly set
|
266
267
|
#elif (defined(__clang__) && defined(_LIBCPP_VERSION)) || \
|
268
|
+
(defined(__clang__) && __clang_major__ >= 15) || \
|
267
269
|
(!defined(__clang__) && \
|
268
270
|
((ABSL_INTERNAL_HAVE_MIN_GNUC_VERSION(7, 4) && defined(__GLIBCXX__)) || \
|
269
271
|
(ABSL_INTERNAL_HAVE_MIN_GNUC_VERSION(8, 2) && \
|
270
272
|
defined(_LIBCPP_VERSION)))) || \
|
271
|
-
(defined(_MSC_VER) && !defined(__NVCC__))
|
273
|
+
(defined(_MSC_VER) && !defined(__NVCC__) && !defined(__clang__))
|
272
274
|
#define ABSL_HAVE_STD_IS_TRIVIALLY_CONSTRUCTIBLE 1
|
273
275
|
#define ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE 1
|
274
276
|
#endif
|
275
277
|
|
278
|
+
// ABSL_HAVE_STD_IS_TRIVIALLY_COPYABLE
|
279
|
+
//
|
280
|
+
// Checks whether `std::is_trivially_copyable<T>` is supported.
|
281
|
+
//
|
282
|
+
// Notes: Clang 15+ with libc++ supports these features, GCC hasn't been tested.
|
283
|
+
#if defined(ABSL_HAVE_STD_IS_TRIVIALLY_COPYABLE)
|
284
|
+
#error ABSL_HAVE_STD_IS_TRIVIALLY_COPYABLE cannot be directly set
|
285
|
+
#elif defined(__clang__) && (__clang_major__ >= 15)
|
286
|
+
#define ABSL_HAVE_STD_IS_TRIVIALLY_COPYABLE 1
|
287
|
+
#endif
|
288
|
+
|
276
289
|
// ABSL_HAVE_THREAD_LOCAL
|
277
290
|
//
|
278
291
|
// Checks whether C++11's `thread_local` storage duration specifier is
|
@@ -746,6 +759,18 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
746
759
|
#define ABSL_DLL
|
747
760
|
#endif // defined(_MSC_VER)
|
748
761
|
|
762
|
+
#if defined(_MSC_VER)
|
763
|
+
#if defined(ABSL_BUILD_TEST_DLL)
|
764
|
+
#define ABSL_TEST_DLL __declspec(dllexport)
|
765
|
+
#elif defined(ABSL_CONSUME_TEST_DLL)
|
766
|
+
#define ABSL_TEST_DLL __declspec(dllimport)
|
767
|
+
#else
|
768
|
+
#define ABSL_TEST_DLL
|
769
|
+
#endif
|
770
|
+
#else
|
771
|
+
#define ABSL_TEST_DLL
|
772
|
+
#endif // defined(_MSC_VER)
|
773
|
+
|
749
774
|
// ABSL_HAVE_MEMORY_SANITIZER
|
750
775
|
//
|
751
776
|
// MemorySanitizer (MSan) is a detector of uninitialized reads. It consists of
|
@@ -904,10 +929,26 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
904
929
|
|
905
930
|
// ABSL_INTERNAL_HAVE_ARM_NEON is used for compile-time detection of NEON (ARM
|
906
931
|
// SIMD).
|
932
|
+
//
|
933
|
+
// If __CUDA_ARCH__ is defined, then we are compiling CUDA code in device mode.
|
934
|
+
// In device mode, NEON intrinsics are not available, regardless of host
|
935
|
+
// platform.
|
936
|
+
// https://llvm.org/docs/CompileCudaWithLLVM.html#detecting-clang-vs-nvcc-from-code
|
907
937
|
#ifdef ABSL_INTERNAL_HAVE_ARM_NEON
|
908
938
|
#error ABSL_INTERNAL_HAVE_ARM_NEON cannot be directly set
|
909
|
-
#elif defined(__ARM_NEON)
|
939
|
+
#elif defined(__ARM_NEON) && !defined(__CUDA_ARCH__)
|
910
940
|
#define ABSL_INTERNAL_HAVE_ARM_NEON 1
|
911
941
|
#endif
|
912
942
|
|
943
|
+
// ABSL_HAVE_CONSTANT_EVALUATED is used for compile-time detection of
|
944
|
+
// constant evaluation support through `absl::is_constant_evaluated`.
|
945
|
+
#ifdef ABSL_HAVE_CONSTANT_EVALUATED
|
946
|
+
#error ABSL_HAVE_CONSTANT_EVALUATED cannot be directly set
|
947
|
+
#endif
|
948
|
+
#ifdef __cpp_lib_is_constant_evaluated
|
949
|
+
#define ABSL_HAVE_CONSTANT_EVALUATED 1
|
950
|
+
#elif ABSL_HAVE_BUILTIN(__builtin_is_constant_evaluated)
|
951
|
+
#define ABSL_HAVE_CONSTANT_EVALUATED 1
|
952
|
+
#endif
|
953
|
+
|
913
954
|
#endif // ABSL_BASE_CONFIG_H_
|
@@ -47,6 +47,7 @@
|
|
47
47
|
|
48
48
|
#include "absl/base/attributes.h"
|
49
49
|
#include "absl/base/config.h"
|
50
|
+
#include "absl/base/internal/cycleclock_config.h"
|
50
51
|
#include "absl/base/internal/unscaledcycleclock.h"
|
51
52
|
|
52
53
|
namespace absl {
|
@@ -76,25 +77,9 @@ class CycleClock {
|
|
76
77
|
#if ABSL_USE_UNSCALED_CYCLECLOCK
|
77
78
|
static CycleClockSourceFunc LoadCycleClockSource();
|
78
79
|
|
79
|
-
|
80
|
-
|
81
|
-
// Not debug mode and the UnscaledCycleClock frequency is the CPU
|
82
|
-
// frequency. Scale the CycleClock to prevent overflow if someone
|
83
|
-
// tries to represent the time as cycles since the Unix epoch.
|
84
|
-
static constexpr int32_t kShift = 1;
|
85
|
-
#else
|
86
|
-
// Not debug mode and the UnscaledCycleClock isn't operating at the
|
87
|
-
// raw CPU frequency. There is no need to do any scaling, so don't
|
88
|
-
// needlessly sacrifice precision.
|
89
|
-
static constexpr int32_t kShift = 0;
|
90
|
-
#endif
|
91
|
-
#else // NDEBUG
|
92
|
-
// In debug mode use a different shift to discourage depending on a
|
93
|
-
// particular shift value.
|
94
|
-
static constexpr int32_t kShift = 2;
|
95
|
-
#endif // NDEBUG
|
80
|
+
static constexpr int32_t kShift = kCycleClockShift;
|
81
|
+
static constexpr double kFrequencyScale = kCycleClockFrequencyScale;
|
96
82
|
|
97
|
-
static constexpr double kFrequencyScale = 1.0 / (1 << kShift);
|
98
83
|
ABSL_CONST_INIT static std::atomic<CycleClockSourceFunc> cycle_clock_source_;
|
99
84
|
#endif // ABSL_USE_UNSCALED_CYCLECLOC
|
100
85
|
|
@@ -0,0 +1,55 @@
|
|
1
|
+
// Copyright 2022 The Abseil Authors
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef ABSL_BASE_INTERNAL_CYCLECLOCK_CONFIG_H_
|
16
|
+
#define ABSL_BASE_INTERNAL_CYCLECLOCK_CONFIG_H_
|
17
|
+
|
18
|
+
#include <cstdint>
|
19
|
+
|
20
|
+
#include "absl/base/config.h"
|
21
|
+
#include "absl/base/internal/inline_variable.h"
|
22
|
+
#include "absl/base/internal/unscaledcycleclock_config.h"
|
23
|
+
|
24
|
+
namespace absl {
|
25
|
+
ABSL_NAMESPACE_BEGIN
|
26
|
+
namespace base_internal {
|
27
|
+
|
28
|
+
#if ABSL_USE_UNSCALED_CYCLECLOCK
|
29
|
+
#ifdef NDEBUG
|
30
|
+
#ifdef ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY
|
31
|
+
// Not debug mode and the UnscaledCycleClock frequency is the CPU
|
32
|
+
// frequency. Scale the CycleClock to prevent overflow if someone
|
33
|
+
// tries to represent the time as cycles since the Unix epoch.
|
34
|
+
ABSL_INTERNAL_INLINE_CONSTEXPR(int32_t, kCycleClockShift, 1);
|
35
|
+
#else
|
36
|
+
// Not debug mode and the UnscaledCycleClock isn't operating at the
|
37
|
+
// raw CPU frequency. There is no need to do any scaling, so don't
|
38
|
+
// needlessly sacrifice precision.
|
39
|
+
ABSL_INTERNAL_INLINE_CONSTEXPR(int32_t, kCycleClockShift, 0);
|
40
|
+
#endif
|
41
|
+
#else // NDEBUG
|
42
|
+
// In debug mode use a different shift to discourage depending on a
|
43
|
+
// particular shift value.
|
44
|
+
ABSL_INTERNAL_INLINE_CONSTEXPR(int32_t, kCycleClockShift, 2);
|
45
|
+
#endif // NDEBUG
|
46
|
+
|
47
|
+
ABSL_INTERNAL_INLINE_CONSTEXPR(double, kCycleClockFrequencyScale,
|
48
|
+
1.0 / (1 << kCycleClockShift));
|
49
|
+
#endif // ABSL_USE_UNSCALED_CYCLECLOC
|
50
|
+
|
51
|
+
} // namespace base_internal
|
52
|
+
ABSL_NAMESPACE_END
|
53
|
+
} // namespace absl
|
54
|
+
|
55
|
+
#endif // ABSL_BASE_INTERNAL_CYCLECLOCK_CONFIG_H_
|
@@ -97,7 +97,8 @@ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
|
|
97
97
|
#ifdef __BIONIC__
|
98
98
|
// SYS_mmap2 has problems on Android API level <= 16.
|
99
99
|
// Workaround by invoking __mmap2() instead.
|
100
|
-
return __mmap2(start, length, prot, flags, fd,
|
100
|
+
return __mmap2(start, length, prot, flags, fd,
|
101
|
+
static_cast<size_t>(offset / pagesize));
|
101
102
|
#else
|
102
103
|
return reinterpret_cast<void*>(
|
103
104
|
syscall(SYS_mmap2, start, length, prot, flags, fd,
|
@@ -12,8 +12,8 @@
|
|
12
12
|
// See the License for the specific language governing permissions and
|
13
13
|
// limitations under the License.
|
14
14
|
|
15
|
-
#ifndef
|
16
|
-
#define
|
15
|
+
#ifndef ABSL_BASE_INTERNAL_INLINE_VARIABLE_H_
|
16
|
+
#define ABSL_BASE_INTERNAL_INLINE_VARIABLE_H_
|
17
17
|
|
18
18
|
#include <type_traits>
|
19
19
|
|
@@ -104,4 +104,4 @@
|
|
104
104
|
|
105
105
|
#endif // __cpp_inline_variables
|
106
106
|
|
107
|
-
#endif //
|
107
|
+
#endif // ABSL_BASE_INTERNAL_INLINE_VARIABLE_H_
|
@@ -332,7 +332,7 @@ size_t GetPageSize() {
|
|
332
332
|
#elif defined(__wasm__) || defined(__asmjs__)
|
333
333
|
return getpagesize();
|
334
334
|
#else
|
335
|
-
return sysconf(_SC_PAGESIZE);
|
335
|
+
return static_cast<size_t>(sysconf(_SC_PAGESIZE));
|
336
336
|
#endif
|
337
337
|
}
|
338
338
|
|
@@ -364,7 +364,7 @@ LowLevelAlloc::Arena::Arena(uint32_t flags_value)
|
|
364
364
|
}
|
365
365
|
|
366
366
|
// L < meta_data_arena->mu
|
367
|
-
LowLevelAlloc::Arena *LowLevelAlloc::NewArena(
|
367
|
+
LowLevelAlloc::Arena *LowLevelAlloc::NewArena(uint32_t flags) {
|
368
368
|
Arena *meta_data_arena = DefaultArena();
|
369
369
|
#ifndef ABSL_LOW_LEVEL_ALLOC_ASYNC_SIGNAL_SAFE_MISSING
|
370
370
|
if ((flags & LowLevelAlloc::kAsyncSignalSafe) != 0) {
|
@@ -103,7 +103,7 @@ class LowLevelAlloc {
|
|
103
103
|
// the provided flags. For example, the call NewArena(kAsyncSignalSafe)
|
104
104
|
// is itself async-signal-safe, as well as generatating an arena that provides
|
105
105
|
// async-signal-safe Alloc/Free.
|
106
|
-
static Arena *NewArena(
|
106
|
+
static Arena *NewArena(uint32_t flags);
|
107
107
|
|
108
108
|
// Destroys an arena allocated by NewArena and returns true,
|
109
109
|
// provided no allocated blocks remain in the arena.
|
@@ -72,7 +72,7 @@
|
|
72
72
|
|
73
73
|
namespace absl {
|
74
74
|
ABSL_NAMESPACE_BEGIN
|
75
|
-
namespace
|
75
|
+
namespace raw_log_internal {
|
76
76
|
namespace {
|
77
77
|
|
78
78
|
// TODO(gfalcon): We want raw-logging to work on as many platforms as possible.
|
@@ -89,12 +89,14 @@ constexpr char kTruncated[] = " ... (message truncated)\n";
|
|
89
89
|
bool VADoRawLog(char** buf, int* size, const char* format, va_list ap)
|
90
90
|
ABSL_PRINTF_ATTRIBUTE(3, 0);
|
91
91
|
bool VADoRawLog(char** buf, int* size, const char* format, va_list ap) {
|
92
|
-
|
92
|
+
if (*size < 0)
|
93
|
+
return false;
|
94
|
+
int n = vsnprintf(*buf, static_cast<size_t>(*size), format, ap);
|
93
95
|
bool result = true;
|
94
96
|
if (n < 0 || n > *size) {
|
95
97
|
result = false;
|
96
98
|
if (static_cast<size_t>(*size) > sizeof(kTruncated)) {
|
97
|
-
n = *size - sizeof(kTruncated);
|
99
|
+
n = *size - static_cast<int>(sizeof(kTruncated));
|
98
100
|
} else {
|
99
101
|
n = 0; // no room for truncation message
|
100
102
|
}
|
@@ -116,9 +118,11 @@ constexpr int kLogBufSize = 3000;
|
|
116
118
|
bool DoRawLog(char** buf, int* size, const char* format, ...)
|
117
119
|
ABSL_PRINTF_ATTRIBUTE(3, 4);
|
118
120
|
bool DoRawLog(char** buf, int* size, const char* format, ...) {
|
121
|
+
if (*size < 0)
|
122
|
+
return false;
|
119
123
|
va_list ap;
|
120
124
|
va_start(ap, format);
|
121
|
-
int n = vsnprintf(*buf, *size, format, ap);
|
125
|
+
int n = vsnprintf(*buf, static_cast<size_t>(*size), format, ap);
|
122
126
|
va_end(ap);
|
123
127
|
if (n < 0 || n > *size) return false;
|
124
128
|
*size -= n;
|
@@ -206,7 +210,7 @@ void AsyncSignalSafeWriteToStderr(const char* s, size_t len) {
|
|
206
210
|
#elif defined(ABSL_HAVE_POSIX_WRITE)
|
207
211
|
write(STDERR_FILENO, s, len);
|
208
212
|
#elif defined(ABSL_HAVE_RAW_IO)
|
209
|
-
_write(/* stderr */ 2, s, len);
|
213
|
+
_write(/* stderr */ 2, s, static_cast<unsigned>(len));
|
210
214
|
#else
|
211
215
|
// stderr logging unsupported on this platform
|
212
216
|
(void) s;
|
@@ -244,6 +248,6 @@ void RegisterInternalLogFunction(InternalLogFunction func) {
|
|
244
248
|
internal_log_function.Store(func);
|
245
249
|
}
|
246
250
|
|
247
|
-
} // namespace
|
251
|
+
} // namespace raw_log_internal
|
248
252
|
ABSL_NAMESPACE_END
|
249
253
|
} // namespace absl
|