grpc 1.52.0 → 1.53.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +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/weighted_target/weighted_target.cc +2 -2
- 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 +73 -8
- 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
@@ -43,12 +43,11 @@
|
|
43
43
|
|
44
44
|
#define ABSL_RAW_LOG(severity, ...) \
|
45
45
|
do { \
|
46
|
-
constexpr const char*
|
47
|
-
::absl::
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
__LINE__, __VA_ARGS__); \
|
46
|
+
constexpr const char* absl_raw_log_internal_basename = \
|
47
|
+
::absl::raw_log_internal::Basename(__FILE__, sizeof(__FILE__) - 1); \
|
48
|
+
::absl::raw_log_internal::RawLog(ABSL_RAW_LOG_INTERNAL_##severity, \
|
49
|
+
absl_raw_log_internal_basename, __LINE__, \
|
50
|
+
__VA_ARGS__); \
|
52
51
|
} while (0)
|
53
52
|
|
54
53
|
// Similar to CHECK(condition) << message, but for low-level modules:
|
@@ -72,14 +71,14 @@
|
|
72
71
|
//
|
73
72
|
// The API is a subset of the above: each macro only takes two arguments. Use
|
74
73
|
// StrCat if you need to build a richer message.
|
75
|
-
#define ABSL_INTERNAL_LOG(severity, message)
|
76
|
-
do {
|
77
|
-
constexpr const char*
|
78
|
-
::absl::
|
79
|
-
|
80
|
-
|
81
|
-
if (
|
82
|
-
|
74
|
+
#define ABSL_INTERNAL_LOG(severity, message) \
|
75
|
+
do { \
|
76
|
+
constexpr const char* absl_raw_log_internal_filename = __FILE__; \
|
77
|
+
::absl::raw_log_internal::internal_log_function( \
|
78
|
+
ABSL_RAW_LOG_INTERNAL_##severity, absl_raw_log_internal_filename, \
|
79
|
+
__LINE__, message); \
|
80
|
+
if (ABSL_RAW_LOG_INTERNAL_##severity == ::absl::LogSeverity::kFatal) \
|
81
|
+
ABSL_UNREACHABLE(); \
|
83
82
|
} while (0)
|
84
83
|
|
85
84
|
#define ABSL_INTERNAL_CHECK(condition, message) \
|
@@ -91,16 +90,16 @@
|
|
91
90
|
} \
|
92
91
|
} while (0)
|
93
92
|
|
94
|
-
#define
|
95
|
-
#define
|
96
|
-
#define
|
97
|
-
#define
|
98
|
-
#define
|
93
|
+
#define ABSL_RAW_LOG_INTERNAL_INFO ::absl::LogSeverity::kInfo
|
94
|
+
#define ABSL_RAW_LOG_INTERNAL_WARNING ::absl::LogSeverity::kWarning
|
95
|
+
#define ABSL_RAW_LOG_INTERNAL_ERROR ::absl::LogSeverity::kError
|
96
|
+
#define ABSL_RAW_LOG_INTERNAL_FATAL ::absl::LogSeverity::kFatal
|
97
|
+
#define ABSL_RAW_LOG_INTERNAL_LEVEL(severity) \
|
99
98
|
::absl::NormalizeLogSeverity(severity)
|
100
99
|
|
101
100
|
namespace absl {
|
102
101
|
ABSL_NAMESPACE_BEGIN
|
103
|
-
namespace
|
102
|
+
namespace raw_log_internal {
|
104
103
|
|
105
104
|
// Helper function to implement ABSL_RAW_LOG
|
106
105
|
// Logs format... at "severity" level, reporting it
|
@@ -130,7 +129,7 @@ constexpr const char* Basename(const char* fname, int offset) {
|
|
130
129
|
// TODO(gfalcon): Come up with a better name for this method.
|
131
130
|
bool RawLoggingFullySupported();
|
132
131
|
|
133
|
-
// Function type for a
|
132
|
+
// Function type for a raw_log customization hook for suppressing messages
|
134
133
|
// by severity, and for writing custom prefixes on non-suppressed messages.
|
135
134
|
//
|
136
135
|
// The installed hook is called for every raw log invocation. The message will
|
@@ -139,7 +138,7 @@ bool RawLoggingFullySupported();
|
|
139
138
|
// also provided with an output buffer, where it can write a custom log message
|
140
139
|
// prefix.
|
141
140
|
//
|
142
|
-
// The
|
141
|
+
// The raw_log system does not allocate memory or grab locks. User-provided
|
143
142
|
// hooks must avoid these operations, and must not throw exceptions.
|
144
143
|
//
|
145
144
|
// 'severity' is the severity level of the message being written.
|
@@ -152,7 +151,7 @@ using LogFilterAndPrefixHook = bool (*)(absl::LogSeverity severity,
|
|
152
151
|
const char* file, int line, char** buf,
|
153
152
|
int* buf_size);
|
154
153
|
|
155
|
-
// Function type for a
|
154
|
+
// Function type for a raw_log customization hook called to abort a process
|
156
155
|
// when a FATAL message is logged. If the provided AbortHook() returns, the
|
157
156
|
// logging system will call abort().
|
158
157
|
//
|
@@ -189,7 +188,7 @@ void RegisterLogFilterAndPrefixHook(LogFilterAndPrefixHook func);
|
|
189
188
|
void RegisterAbortHook(AbortHook func);
|
190
189
|
void RegisterInternalLogFunction(InternalLogFunction func);
|
191
190
|
|
192
|
-
} // namespace
|
191
|
+
} // namespace raw_log_internal
|
193
192
|
ABSL_NAMESPACE_END
|
194
193
|
} // namespace absl
|
195
194
|
|
@@ -178,7 +178,7 @@ void SpinLock::SlowUnlock(uint32_t lock_value) {
|
|
178
178
|
// reserve a unitary wait time to represent that a waiter exists without our
|
179
179
|
// own acquisition having been contended.
|
180
180
|
if ((lock_value & kWaitTimeMask) != kSpinLockSleeper) {
|
181
|
-
const
|
181
|
+
const int64_t wait_cycles = DecodeWaitCycles(lock_value);
|
182
182
|
ABSL_TSAN_MUTEX_PRE_DIVERT(this, 0);
|
183
183
|
submit_profile_data(this, wait_cycles);
|
184
184
|
ABSL_TSAN_MUTEX_POST_DIVERT(this, 0);
|
@@ -220,9 +220,9 @@ uint32_t SpinLock::EncodeWaitCycles(int64_t wait_start_time,
|
|
220
220
|
return clamped;
|
221
221
|
}
|
222
222
|
|
223
|
-
|
223
|
+
int64_t SpinLock::DecodeWaitCycles(uint32_t lock_value) {
|
224
224
|
// Cast to uint32_t first to ensure bits [63:32] are cleared.
|
225
|
-
const
|
225
|
+
const int64_t scaled_wait_time =
|
226
226
|
static_cast<uint32_t>(lock_value & kWaitTimeMask);
|
227
227
|
return scaled_wait_time << (kProfileTimestampShift - kLockwordReservedShift);
|
228
228
|
}
|
@@ -29,10 +29,8 @@
|
|
29
29
|
#ifndef ABSL_BASE_INTERNAL_SPINLOCK_H_
|
30
30
|
#define ABSL_BASE_INTERNAL_SPINLOCK_H_
|
31
31
|
|
32
|
-
#include <stdint.h>
|
33
|
-
#include <sys/types.h>
|
34
|
-
|
35
32
|
#include <atomic>
|
33
|
+
#include <cstdint>
|
36
34
|
|
37
35
|
#include "absl/base/attributes.h"
|
38
36
|
#include "absl/base/const_init.h"
|
@@ -41,8 +39,6 @@
|
|
41
39
|
#include "absl/base/internal/raw_logging.h"
|
42
40
|
#include "absl/base/internal/scheduling_mode.h"
|
43
41
|
#include "absl/base/internal/tsan_mutex_interface.h"
|
44
|
-
#include "absl/base/macros.h"
|
45
|
-
#include "absl/base/port.h"
|
46
42
|
#include "absl/base/thread_annotations.h"
|
47
43
|
|
48
44
|
namespace absl {
|
@@ -137,7 +133,7 @@ class ABSL_LOCKABLE SpinLock {
|
|
137
133
|
int64_t wait_end_time);
|
138
134
|
|
139
135
|
// Extract number of wait cycles in a lock value.
|
140
|
-
static
|
136
|
+
static int64_t DecodeWaitCycles(uint32_t lock_value);
|
141
137
|
|
142
138
|
// Provide access to protected method above. Use for testing only.
|
143
139
|
friend struct SpinLockTest;
|
@@ -27,7 +27,10 @@ void ABSL_INTERNAL_C_SYMBOL(AbslInternalSpinLockDelay)(
|
|
27
27
|
} else if (loop == 1) {
|
28
28
|
Sleep(0);
|
29
29
|
} else {
|
30
|
-
|
30
|
+
// SpinLockSuggestedDelayNS() always returns a positive integer, so this
|
31
|
+
// static_cast is safe.
|
32
|
+
Sleep(static_cast<DWORD>(
|
33
|
+
absl::base_internal::SpinLockSuggestedDelayNS(loop) / 1000000));
|
31
34
|
}
|
32
35
|
}
|
33
36
|
|
@@ -66,8 +66,8 @@ constexpr int kSysNerr = 135;
|
|
66
66
|
|
67
67
|
std::array<std::string, kSysNerr>* NewStrErrorTable() {
|
68
68
|
auto* table = new std::array<std::string, kSysNerr>;
|
69
|
-
for (
|
70
|
-
(*table)[i] = StrErrorInternal(i);
|
69
|
+
for (size_t i = 0; i < table->size(); ++i) {
|
70
|
+
(*table)[i] = StrErrorInternal(static_cast<int>(i));
|
71
71
|
}
|
72
72
|
return table;
|
73
73
|
}
|
@@ -77,8 +77,8 @@ std::array<std::string, kSysNerr>* NewStrErrorTable() {
|
|
77
77
|
std::string StrError(int errnum) {
|
78
78
|
absl::base_internal::ErrnoSaver errno_saver;
|
79
79
|
static const auto* table = NewStrErrorTable();
|
80
|
-
if (errnum >= 0 && errnum <
|
81
|
-
return (*table)[errnum];
|
80
|
+
if (errnum >= 0 && static_cast<size_t>(errnum) < table->size()) {
|
81
|
+
return (*table)[static_cast<size_t>(errnum)];
|
82
82
|
}
|
83
83
|
return StrErrorInternal(errnum);
|
84
84
|
}
|
@@ -117,7 +117,7 @@ int Win32NumCPUs() {
|
|
117
117
|
}
|
118
118
|
}
|
119
119
|
free(info);
|
120
|
-
return logicalProcessorCount;
|
120
|
+
return static_cast<int>(logicalProcessorCount);
|
121
121
|
}
|
122
122
|
|
123
123
|
#endif
|
@@ -128,7 +128,7 @@ static int GetNumCPUs() {
|
|
128
128
|
#if defined(__myriad2__)
|
129
129
|
return 1;
|
130
130
|
#elif defined(_WIN32)
|
131
|
-
const
|
131
|
+
const int hardware_concurrency = Win32NumCPUs();
|
132
132
|
return hardware_concurrency ? hardware_concurrency : 1;
|
133
133
|
#elif defined(_AIX)
|
134
134
|
return sysconf(_SC_NPROCESSORS_ONLN);
|
@@ -136,7 +136,7 @@ static int GetNumCPUs() {
|
|
136
136
|
// Other possibilities:
|
137
137
|
// - Read /sys/devices/system/cpu/online and use cpumask_parse()
|
138
138
|
// - sysconf(_SC_NPROCESSORS_ONLN)
|
139
|
-
return std::thread::hardware_concurrency();
|
139
|
+
return static_cast<int>(std::thread::hardware_concurrency());
|
140
140
|
#endif
|
141
141
|
}
|
142
142
|
|
@@ -189,12 +189,15 @@ static double GetNominalCPUFrequency() {
|
|
189
189
|
// and the memory location pointed to by value is set to the value read.
|
190
190
|
static bool ReadLongFromFile(const char *file, long *value) {
|
191
191
|
bool ret = false;
|
192
|
-
int fd = open(file, O_RDONLY);
|
192
|
+
int fd = open(file, O_RDONLY | O_CLOEXEC);
|
193
193
|
if (fd != -1) {
|
194
194
|
char line[1024];
|
195
195
|
char *err;
|
196
196
|
memset(line, '\0', sizeof(line));
|
197
|
-
|
197
|
+
ssize_t len;
|
198
|
+
do {
|
199
|
+
len = read(fd, line, sizeof(line) - 1);
|
200
|
+
} while (len < 0 && errno == EINTR);
|
198
201
|
if (len <= 0) {
|
199
202
|
ret = false;
|
200
203
|
} else {
|
@@ -376,7 +379,7 @@ pid_t GetTID() {
|
|
376
379
|
#endif
|
377
380
|
|
378
381
|
pid_t GetTID() {
|
379
|
-
return syscall(SYS_gettid);
|
382
|
+
return static_cast<pid_t>(syscall(SYS_gettid));
|
380
383
|
}
|
381
384
|
|
382
385
|
#elif defined(__akaros__)
|
@@ -429,11 +432,11 @@ static constexpr int kBitsPerWord = 32; // tid_array is uint32_t.
|
|
429
432
|
// Returns the TID to tid_array.
|
430
433
|
static void FreeTID(void *v) {
|
431
434
|
intptr_t tid = reinterpret_cast<intptr_t>(v);
|
432
|
-
|
435
|
+
intptr_t word = tid / kBitsPerWord;
|
433
436
|
uint32_t mask = ~(1u << (tid % kBitsPerWord));
|
434
437
|
absl::base_internal::SpinLockHolder lock(&tid_lock);
|
435
438
|
assert(0 <= word && static_cast<size_t>(word) < tid_array->size());
|
436
|
-
(*tid_array)[word] &= mask;
|
439
|
+
(*tid_array)[static_cast<size_t>(word)] &= mask;
|
437
440
|
}
|
438
441
|
|
439
442
|
static void InitGetTID() {
|
@@ -455,7 +458,7 @@ pid_t GetTID() {
|
|
455
458
|
|
456
459
|
intptr_t tid = reinterpret_cast<intptr_t>(pthread_getspecific(tid_key));
|
457
460
|
if (tid != 0) {
|
458
|
-
return tid;
|
461
|
+
return static_cast<pid_t>(tid);
|
459
462
|
}
|
460
463
|
|
461
464
|
int bit; // tid_array[word] = 1u << bit;
|
@@ -476,7 +479,8 @@ pid_t GetTID() {
|
|
476
479
|
while (bit < kBitsPerWord && (((*tid_array)[word] >> bit) & 1) != 0) {
|
477
480
|
++bit;
|
478
481
|
}
|
479
|
-
tid =
|
482
|
+
tid =
|
483
|
+
static_cast<intptr_t>((word * kBitsPerWord) + static_cast<size_t>(bit));
|
480
484
|
(*tid_array)[word] |= 1u << bit; // Mark the TID as allocated.
|
481
485
|
}
|
482
486
|
|
@@ -38,6 +38,13 @@
|
|
38
38
|
#ifndef ABSL_BASE_INTERNAL_THREAD_ANNOTATIONS_H_
|
39
39
|
#define ABSL_BASE_INTERNAL_THREAD_ANNOTATIONS_H_
|
40
40
|
|
41
|
+
// ABSL_LEGACY_THREAD_ANNOTATIONS is a *temporary* compatibility macro that can
|
42
|
+
// be defined on the compile command-line to restore the legacy spellings of the
|
43
|
+
// thread annotations macros/functions. The macros in this file are available
|
44
|
+
// under ABSL_ prefixed spellings in absl/base/thread_annotations.h. This macro
|
45
|
+
// and the legacy spellings will be removed in the future.
|
46
|
+
#ifdef ABSL_LEGACY_THREAD_ANNOTATIONS
|
47
|
+
|
41
48
|
#if defined(__clang__)
|
42
49
|
#define THREAD_ANNOTATION_ATTRIBUTE__(x) __attribute__((x))
|
43
50
|
#else
|
@@ -268,4 +275,6 @@ inline T& ts_unchecked_read(T& v) NO_THREAD_SAFETY_ANALYSIS {
|
|
268
275
|
|
269
276
|
} // namespace thread_safety_analysis
|
270
277
|
|
278
|
+
#endif // defined(ABSL_LEGACY_THREAD_ANNOTATIONS)
|
279
|
+
|
271
280
|
#endif // ABSL_BASE_INTERNAL_THREAD_ANNOTATIONS_H_
|
@@ -134,6 +134,10 @@ struct PerThreadSynch {
|
|
134
134
|
|
135
135
|
// The instances of this class are allocated in NewThreadIdentity() with an
|
136
136
|
// alignment of PerThreadSynch::kAlignment.
|
137
|
+
//
|
138
|
+
// NOTE: The layout of fields in this structure is critical, please do not
|
139
|
+
// add, remove, or modify the field placements without fully auditing the
|
140
|
+
// layout.
|
137
141
|
struct ThreadIdentity {
|
138
142
|
// Must be the first member. The Mutex implementation requires that
|
139
143
|
// the PerThreadSynch object associated with each thread is
|
@@ -42,48 +42,11 @@
|
|
42
42
|
#include <TargetConditionals.h>
|
43
43
|
#endif
|
44
44
|
|
45
|
-
#include "absl/base/
|
46
|
-
|
47
|
-
// The following platforms have an implementation of a hardware counter.
|
48
|
-
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
|
49
|
-
defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
|
50
|
-
defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
|
51
|
-
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
|
52
|
-
#else
|
53
|
-
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 0
|
54
|
-
#endif
|
55
|
-
|
56
|
-
// The following platforms often disable access to the hardware
|
57
|
-
// counter (through a sandbox) even if the underlying hardware has a
|
58
|
-
// usable counter. The CycleTimer interface also requires a *scaled*
|
59
|
-
// CycleClock that runs at atleast 1 MHz. We've found some Android
|
60
|
-
// ARM64 devices where this is not the case, so we disable it by
|
61
|
-
// default on Android ARM64.
|
62
|
-
#if defined(__native_client__) || (defined(__APPLE__)) || \
|
63
|
-
(defined(__ANDROID__) && defined(__aarch64__))
|
64
|
-
#define ABSL_USE_UNSCALED_CYCLECLOCK_DEFAULT 0
|
65
|
-
#else
|
66
|
-
#define ABSL_USE_UNSCALED_CYCLECLOCK_DEFAULT 1
|
67
|
-
#endif
|
68
|
-
|
69
|
-
// UnscaledCycleClock is an optional internal feature.
|
70
|
-
// Use "#if ABSL_USE_UNSCALED_CYCLECLOCK" to test for its presence.
|
71
|
-
// Can be overridden at compile-time via -DABSL_USE_UNSCALED_CYCLECLOCK=0|1
|
72
|
-
#if !defined(ABSL_USE_UNSCALED_CYCLECLOCK)
|
73
|
-
#define ABSL_USE_UNSCALED_CYCLECLOCK \
|
74
|
-
(ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION && \
|
75
|
-
ABSL_USE_UNSCALED_CYCLECLOCK_DEFAULT)
|
76
|
-
#endif
|
45
|
+
#include "absl/base/config.h"
|
46
|
+
#include "absl/base/internal/unscaledcycleclock_config.h"
|
77
47
|
|
78
48
|
#if ABSL_USE_UNSCALED_CYCLECLOCK
|
79
49
|
|
80
|
-
// This macro can be used to test if UnscaledCycleClock::Frequency()
|
81
|
-
// is NominalCPUFrequency() on a particular platform.
|
82
|
-
#if (defined(__i386__) || defined(__x86_64__) || defined(__riscv) || \
|
83
|
-
defined(_M_IX86) || defined(_M_X64))
|
84
|
-
#define ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY
|
85
|
-
#endif
|
86
|
-
|
87
50
|
namespace absl {
|
88
51
|
ABSL_NAMESPACE_BEGIN
|
89
52
|
namespace time_internal {
|
@@ -119,7 +82,7 @@ class UnscaledCycleClock {
|
|
119
82
|
inline int64_t UnscaledCycleClock::Now() {
|
120
83
|
uint64_t low, high;
|
121
84
|
__asm__ volatile("rdtsc" : "=a"(low), "=d"(high));
|
122
|
-
return (high << 32) | low;
|
85
|
+
return static_cast<int64_t>((high << 32) | low);
|
123
86
|
}
|
124
87
|
|
125
88
|
#endif
|
@@ -0,0 +1,62 @@
|
|
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_UNSCALEDCYCLECLOCK_CONFIG_H_
|
16
|
+
#define ABSL_BASE_INTERNAL_UNSCALEDCYCLECLOCK_CONFIG_H_
|
17
|
+
|
18
|
+
#if defined(__APPLE__)
|
19
|
+
#include <TargetConditionals.h>
|
20
|
+
#endif
|
21
|
+
|
22
|
+
// The following platforms have an implementation of a hardware counter.
|
23
|
+
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
|
24
|
+
defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
|
25
|
+
defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
|
26
|
+
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
|
27
|
+
#else
|
28
|
+
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 0
|
29
|
+
#endif
|
30
|
+
|
31
|
+
// The following platforms often disable access to the hardware
|
32
|
+
// counter (through a sandbox) even if the underlying hardware has a
|
33
|
+
// usable counter. The CycleTimer interface also requires a *scaled*
|
34
|
+
// CycleClock that runs at atleast 1 MHz. We've found some Android
|
35
|
+
// ARM64 devices where this is not the case, so we disable it by
|
36
|
+
// default on Android ARM64.
|
37
|
+
#if defined(__native_client__) || (defined(__APPLE__)) || \
|
38
|
+
(defined(__ANDROID__) && defined(__aarch64__))
|
39
|
+
#define ABSL_USE_UNSCALED_CYCLECLOCK_DEFAULT 0
|
40
|
+
#else
|
41
|
+
#define ABSL_USE_UNSCALED_CYCLECLOCK_DEFAULT 1
|
42
|
+
#endif
|
43
|
+
|
44
|
+
// UnscaledCycleClock is an optional internal feature.
|
45
|
+
// Use "#if ABSL_USE_UNSCALED_CYCLECLOCK" to test for its presence.
|
46
|
+
// Can be overridden at compile-time via -DABSL_USE_UNSCALED_CYCLECLOCK=0|1
|
47
|
+
#if !defined(ABSL_USE_UNSCALED_CYCLECLOCK)
|
48
|
+
#define ABSL_USE_UNSCALED_CYCLECLOCK \
|
49
|
+
(ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION && \
|
50
|
+
ABSL_USE_UNSCALED_CYCLECLOCK_DEFAULT)
|
51
|
+
#endif
|
52
|
+
|
53
|
+
#if ABSL_USE_UNSCALED_CYCLECLOCK
|
54
|
+
// This macro can be used to test if UnscaledCycleClock::Frequency()
|
55
|
+
// is NominalCPUFrequency() on a particular platform.
|
56
|
+
#if (defined(__i386__) || defined(__x86_64__) || defined(__riscv) || \
|
57
|
+
defined(_M_IX86) || defined(_M_X64))
|
58
|
+
#define ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY
|
59
|
+
#endif
|
60
|
+
#endif
|
61
|
+
|
62
|
+
#endif // ABSL_BASE_INTERNAL_UNSCALEDCYCLECLOCK_CONFIG_H_
|
@@ -103,17 +103,11 @@ ABSL_NAMESPACE_END
|
|
103
103
|
// aborts the program in release mode (when NDEBUG is defined). The
|
104
104
|
// implementation should abort the program as quickly as possible and ideally it
|
105
105
|
// should not be possible to ignore the abort request.
|
106
|
-
#
|
107
|
-
|
108
|
-
(
|
109
|
-
|
110
|
-
do { \
|
111
|
-
__builtin_trap(); \
|
112
|
-
__builtin_unreachable(); \
|
106
|
+
#define ABSL_INTERNAL_HARDENING_ABORT() \
|
107
|
+
do { \
|
108
|
+
ABSL_INTERNAL_IMMEDIATE_ABORT_IMPL(); \
|
109
|
+
ABSL_INTERNAL_UNREACHABLE_IMPL(); \
|
113
110
|
} while (false)
|
114
|
-
#else
|
115
|
-
#define ABSL_INTERNAL_HARDENING_ABORT() abort()
|
116
|
-
#endif
|
117
111
|
|
118
112
|
// ABSL_HARDENING_ASSERT()
|
119
113
|
//
|
@@ -144,15 +138,4 @@ ABSL_NAMESPACE_END
|
|
144
138
|
#define ABSL_INTERNAL_RETHROW do {} while (false)
|
145
139
|
#endif // ABSL_HAVE_EXCEPTIONS
|
146
140
|
|
147
|
-
// `ABSL_INTERNAL_UNREACHABLE` is an unreachable statement. A program which
|
148
|
-
// reaches one has undefined behavior, and the compiler may optimize
|
149
|
-
// accordingly.
|
150
|
-
#if defined(__GNUC__) || ABSL_HAVE_BUILTIN(__builtin_unreachable)
|
151
|
-
#define ABSL_INTERNAL_UNREACHABLE __builtin_unreachable()
|
152
|
-
#elif defined(_MSC_VER)
|
153
|
-
#define ABSL_INTERNAL_UNREACHABLE __assume(0)
|
154
|
-
#else
|
155
|
-
#define ABSL_INTERNAL_UNREACHABLE
|
156
|
-
#endif
|
157
|
-
|
158
141
|
#endif // ABSL_BASE_MACROS_H_
|
@@ -91,6 +91,7 @@
|
|
91
91
|
#define ABSL_CACHELINE_SIZE 64
|
92
92
|
#endif
|
93
93
|
#endif
|
94
|
+
#endif
|
94
95
|
|
95
96
|
#ifndef ABSL_CACHELINE_SIZE
|
96
97
|
// A reasonable default guess. Note that overestimates tend to waste more
|
@@ -141,12 +142,11 @@
|
|
141
142
|
// the generated machine code.
|
142
143
|
// 3) Prefer applying this attribute to individual variables. Avoid
|
143
144
|
// applying it to types. This tends to localize the effect.
|
145
|
+
#if defined(__clang__) || defined(__GNUC__)
|
144
146
|
#define ABSL_CACHELINE_ALIGNED __attribute__((aligned(ABSL_CACHELINE_SIZE)))
|
145
147
|
#elif defined(_MSC_VER)
|
146
|
-
#define ABSL_CACHELINE_SIZE 64
|
147
148
|
#define ABSL_CACHELINE_ALIGNED __declspec(align(ABSL_CACHELINE_SIZE))
|
148
149
|
#else
|
149
|
-
#define ABSL_CACHELINE_SIZE 64
|
150
150
|
#define ABSL_CACHELINE_ALIGNED
|
151
151
|
#endif
|
152
152
|
|
@@ -181,6 +181,53 @@
|
|
181
181
|
#define ABSL_PREDICT_TRUE(x) (x)
|
182
182
|
#endif
|
183
183
|
|
184
|
+
// `ABSL_INTERNAL_IMMEDIATE_ABORT_IMPL()` aborts the program in the fastest
|
185
|
+
// possible way, with no attempt at logging. One use is to implement hardening
|
186
|
+
// aborts with ABSL_OPTION_HARDENED. Since this is an internal symbol, it
|
187
|
+
// should not be used directly outside of Abseil.
|
188
|
+
#if ABSL_HAVE_BUILTIN(__builtin_trap) || \
|
189
|
+
(defined(__GNUC__) && !defined(__clang__))
|
190
|
+
#define ABSL_INTERNAL_IMMEDIATE_ABORT_IMPL() __builtin_trap()
|
191
|
+
#else
|
192
|
+
#define ABSL_INTERNAL_IMMEDIATE_ABORT_IMPL() abort()
|
193
|
+
#endif
|
194
|
+
|
195
|
+
// `ABSL_INTERNAL_UNREACHABLE_IMPL()` is the platform specific directive to
|
196
|
+
// indicate that a statement is unreachable, and to allow the compiler to
|
197
|
+
// optimize accordingly. Clients should use `ABSL_UNREACHABLE()`, which is
|
198
|
+
// defined below.
|
199
|
+
#if defined(__cpp_lib_unreachable) && __cpp_lib_unreachable >= 202202L
|
200
|
+
#define ABSL_INTERNAL_UNREACHABLE_IMPL() std::unreachable()
|
201
|
+
#elif defined(__GNUC__) || ABSL_HAVE_BUILTIN(__builtin_unreachable)
|
202
|
+
#define ABSL_INTERNAL_UNREACHABLE_IMPL() __builtin_unreachable()
|
203
|
+
#elif ABSL_HAVE_BUILTIN(__builtin_assume)
|
204
|
+
#define ABSL_INTERNAL_UNREACHABLE_IMPL() __builtin_assume(false)
|
205
|
+
#elif defined(_MSC_VER)
|
206
|
+
#define ABSL_INTERNAL_UNREACHABLE_IMPL() __assume(false)
|
207
|
+
#else
|
208
|
+
#define ABSL_INTERNAL_UNREACHABLE_IMPL()
|
209
|
+
#endif
|
210
|
+
|
211
|
+
// `ABSL_UNREACHABLE()` is an unreachable statement. A program which reaches
|
212
|
+
// one has undefined behavior, and the compiler may optimize accordingly.
|
213
|
+
#if ABSL_OPTION_HARDENED == 1 && defined(NDEBUG)
|
214
|
+
// Abort in hardened mode to avoid dangerous undefined behavior.
|
215
|
+
#define ABSL_UNREACHABLE() \
|
216
|
+
do { \
|
217
|
+
ABSL_INTERNAL_IMMEDIATE_ABORT_IMPL(); \
|
218
|
+
ABSL_INTERNAL_UNREACHABLE_IMPL(); \
|
219
|
+
} while (false)
|
220
|
+
#else
|
221
|
+
// The assert only fires in debug mode to aid in debugging.
|
222
|
+
// When NDEBUG is defined, reaching ABSL_UNREACHABLE() is undefined behavior.
|
223
|
+
#define ABSL_UNREACHABLE() \
|
224
|
+
do { \
|
225
|
+
/* NOLINTNEXTLINE: misc-static-assert */ \
|
226
|
+
assert(false && "ABSL_UNREACHABLE reached"); \
|
227
|
+
ABSL_INTERNAL_UNREACHABLE_IMPL(); \
|
228
|
+
} while (false)
|
229
|
+
#endif
|
230
|
+
|
184
231
|
// ABSL_ASSUME(cond)
|
185
232
|
//
|
186
233
|
// Informs the compiler that a condition is always true and that it can assume
|
@@ -209,18 +256,23 @@
|
|
209
256
|
#define ABSL_ASSUME(cond) assert(cond)
|
210
257
|
#elif ABSL_HAVE_BUILTIN(__builtin_assume)
|
211
258
|
#define ABSL_ASSUME(cond) __builtin_assume(cond)
|
259
|
+
#elif defined(_MSC_VER)
|
260
|
+
#define ABSL_ASSUME(cond) __assume(cond)
|
261
|
+
#elif defined(__cpp_lib_unreachable) && __cpp_lib_unreachable >= 202202L
|
262
|
+
#define ABSL_ASSUME(cond) \
|
263
|
+
do { \
|
264
|
+
if (!(cond)) std::unreachable(); \
|
265
|
+
} while (false)
|
212
266
|
#elif defined(__GNUC__) || ABSL_HAVE_BUILTIN(__builtin_unreachable)
|
213
267
|
#define ABSL_ASSUME(cond) \
|
214
268
|
do { \
|
215
269
|
if (!(cond)) __builtin_unreachable(); \
|
216
|
-
} while (
|
217
|
-
#elif defined(_MSC_VER)
|
218
|
-
#define ABSL_ASSUME(cond) __assume(cond)
|
270
|
+
} while (false)
|
219
271
|
#else
|
220
272
|
#define ABSL_ASSUME(cond) \
|
221
273
|
do { \
|
222
274
|
static_cast<void>(false && (cond)); \
|
223
|
-
} while (
|
275
|
+
} while (false)
|
224
276
|
#endif
|
225
277
|
|
226
278
|
// ABSL_INTERNAL_UNIQUE_SMALL_NAME(cond)
|
@@ -67,12 +67,6 @@
|
|
67
67
|
#ifndef ABSL_BASE_OPTIONS_H_
|
68
68
|
#define ABSL_BASE_OPTIONS_H_
|
69
69
|
|
70
|
-
// Include a standard library header to allow configuration based on the
|
71
|
-
// standard library in use.
|
72
|
-
#ifdef __cplusplus
|
73
|
-
#include <ciso646>
|
74
|
-
#endif
|
75
|
-
|
76
70
|
// -----------------------------------------------------------------------------
|
77
71
|
// Type Compatibility Options
|
78
72
|
// -----------------------------------------------------------------------------
|
@@ -206,7 +200,7 @@
|
|
206
200
|
// allowed.
|
207
201
|
|
208
202
|
#define ABSL_OPTION_USE_INLINE_NAMESPACE 1
|
209
|
-
#define ABSL_OPTION_INLINE_NAMESPACE_NAME
|
203
|
+
#define ABSL_OPTION_INLINE_NAMESPACE_NAME lts_20230125
|
210
204
|
|
211
205
|
// ABSL_OPTION_HARDENED
|
212
206
|
//
|
@@ -44,17 +44,17 @@
|
|
44
44
|
// Toolchain Check
|
45
45
|
// -----------------------------------------------------------------------------
|
46
46
|
|
47
|
-
// We support MSVC++
|
47
|
+
// We support Visual Studio 2017 (MSVC++ 15.0) and later.
|
48
48
|
// This minimum will go up.
|
49
|
-
#if defined(
|
50
|
-
#error "This package requires Visual Studio
|
49
|
+
#if defined(_MSC_VER) && _MSC_VER < 1910 && !defined(__clang__)
|
50
|
+
#error "This package requires Visual Studio 2017 (MSVC++ 15.0) or higher."
|
51
51
|
#endif
|
52
52
|
|
53
|
-
// We support
|
53
|
+
// We support GCC 7 and later.
|
54
54
|
// This minimum will go up.
|
55
55
|
#if defined(__GNUC__) && !defined(__clang__)
|
56
|
-
#if __GNUC__ <
|
57
|
-
#error "This package requires
|
56
|
+
#if __GNUC__ < 7
|
57
|
+
#error "This package requires GCC 7 or higher."
|
58
58
|
#endif
|
59
59
|
#endif
|
60
60
|
|
@@ -69,13 +69,15 @@
|
|
69
69
|
// C++ Version Check
|
70
70
|
// -----------------------------------------------------------------------------
|
71
71
|
|
72
|
-
// Enforce C++
|
73
|
-
|
74
|
-
|
75
|
-
#
|
76
|
-
#
|
77
|
-
#
|
78
|
-
#
|
72
|
+
// Enforce C++14 as the minimum.
|
73
|
+
#if defined(_MSVC_LANG)
|
74
|
+
#if _MSVC_LANG < 201402L
|
75
|
+
#error "C++ versions less than C++14 are not supported."
|
76
|
+
#endif // _MSVC_LANG < 201402L
|
77
|
+
#elif defined(__cplusplus)
|
78
|
+
#if __cplusplus < 201402L
|
79
|
+
#error "C++ versions less than C++14 are not supported."
|
80
|
+
#endif // __cplusplus < 201402L
|
79
81
|
#endif
|
80
82
|
|
81
83
|
// -----------------------------------------------------------------------------
|
@@ -62,11 +62,10 @@ constexpr static auto kFixedArrayUseDefault = static_cast<size_t>(-1);
|
|
62
62
|
// A `FixedArray` provides a run-time fixed-size array, allocating a small array
|
63
63
|
// inline for efficiency.
|
64
64
|
//
|
65
|
-
// Most users should not specify
|
66
|
-
//
|
67
|
-
//
|
68
|
-
//
|
69
|
-
// length <= `inline_elements`.
|
65
|
+
// Most users should not specify the `N` template parameter and let `FixedArray`
|
66
|
+
// automatically determine the number of elements to store inline based on
|
67
|
+
// `sizeof(T)`. If `N` is specified, the `FixedArray` implementation will use
|
68
|
+
// inline storage for arrays with a length <= `N`.
|
70
69
|
//
|
71
70
|
// Note that a `FixedArray` constructed with a `size_type` argument will
|
72
71
|
// default-initialize its values by leaving trivially constructible types
|
@@ -471,6 +470,9 @@ class FixedArray {
|
|
471
470
|
return n <= inline_elements;
|
472
471
|
}
|
473
472
|
|
473
|
+
#ifdef ABSL_HAVE_ADDRESS_SANITIZER
|
474
|
+
ABSL_ATTRIBUTE_NOINLINE
|
475
|
+
#endif // ABSL_HAVE_ADDRESS_SANITIZER
|
474
476
|
StorageElement* InitializeData() {
|
475
477
|
if (UsingInlinedStorage(size())) {
|
476
478
|
InlinedStorage::AnnotateConstruct(size());
|