grpc 1.56.0 → 1.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +1296 -928
- data/include/grpc/event_engine/event_engine.h +84 -52
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +6 -0
- data/include/grpc/event_engine/internal/slice_cast.h +12 -0
- data/include/grpc/event_engine/memory_allocator.h +5 -3
- data/include/grpc/event_engine/slice.h +5 -0
- data/include/grpc/grpc_crl_provider.h +94 -0
- data/include/grpc/grpc_security.h +57 -1
- data/include/grpc/impl/call.h +29 -0
- data/include/grpc/impl/channel_arg_names.h +400 -0
- data/include/grpc/impl/grpc_types.h +1 -350
- data/include/grpc/impl/slice_type.h +1 -1
- data/include/grpc/module.modulemap +3 -0
- data/include/grpc/support/port_platform.h +103 -24
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +55 -15
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +20 -6
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +49 -46
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +18 -10
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +326 -0
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +143 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +514 -82
- data/src/core/ext/filters/client_channel/client_channel.h +55 -14
- data/src/core/ext/filters/client_channel/client_channel_internal.h +2 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +21 -8
- data/src/core/ext/filters/client_channel/connector.h +2 -3
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +0 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.h +5 -3
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +1 -1
- data/src/core/ext/filters/client_channel/http_proxy_mapper.cc +305 -0
- data/src/core/ext/filters/client_channel/http_proxy_mapper.h +53 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +60 -52
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +27 -12
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +32 -40
- data/src/core/ext/filters/client_channel/lb_policy/endpoint_list.cc +187 -0
- data/src/core/ext/filters/client_channel/lb_policy/endpoint_list.h +220 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +0 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +246 -231
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +20 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +3 -1
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +90 -25
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +3 -5
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +27 -9
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +13 -6
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +257 -210
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +0 -21
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +898 -213
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.h +36 -0
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +19 -37
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +488 -492
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +3 -5
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +63 -101
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +416 -37
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +37 -58
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +893 -76
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +25 -51
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +507 -523
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +8 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +255 -185
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +16 -58
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +807 -308
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +2 -6
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +18 -81
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +5 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +12 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +102 -11
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +105 -175
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +46 -33
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +11 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +6 -0
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +112 -73
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +3 -4
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +76 -189
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +46 -27
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +17 -13
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +31 -19
- data/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc +1031 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h +277 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +474 -560
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h +62 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc +25 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h +30 -0
- data/src/core/ext/filters/client_channel/retry_filter.cc +40 -2499
- data/src/core/ext/filters/client_channel/retry_filter.h +92 -1
- data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc +2051 -0
- data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h +442 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +62 -70
- data/src/core/ext/filters/client_channel/subchannel.cc +47 -9
- data/src/core/ext/filters/client_channel/subchannel.h +20 -5
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +3 -0
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +0 -1
- data/src/core/ext/filters/deadline/deadline_filter.cc +21 -24
- data/src/core/ext/filters/deadline/deadline_filter.h +0 -4
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +18 -13
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +13 -4
- data/src/core/ext/filters/http/client/http_client_filter.cc +30 -39
- data/src/core/ext/filters/http/client/http_client_filter.h +10 -5
- data/src/core/ext/filters/http/client_authority_filter.cc +23 -25
- data/src/core/ext/filters/http/client_authority_filter.h +12 -4
- data/src/core/ext/filters/http/http_filters_plugin.cc +58 -38
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +56 -84
- data/src/core/ext/filters/http/message_compress/compression_filter.h +54 -12
- data/src/core/ext/filters/http/message_compress/legacy_compression_filter.cc +325 -0
- data/src/core/ext/filters/http/message_compress/legacy_compression_filter.h +139 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +55 -53
- data/src/core/ext/filters/http/server/http_server_filter.h +11 -4
- data/src/core/ext/filters/message_size/message_size_filter.cc +79 -108
- data/src/core/ext/filters/message_size/message_size_filter.h +35 -23
- data/src/core/ext/filters/rbac/rbac_filter.cc +46 -113
- data/src/core/ext/filters/rbac/rbac_filter.h +18 -29
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +4 -7
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +26 -13
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +179 -108
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +42 -14
- data/src/core/ext/gcp/metadata_query.cc +0 -1
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +5 -7
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +36 -36
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +1118 -1059
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +47 -4
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +12 -2
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +6569 -174
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +2278 -441
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +56 -88
- data/src/core/ext/transport/chttp2/transport/flow_control.h +85 -12
- data/src/core/ext/transport/chttp2/transport/frame.cc +506 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +193 -22
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +23 -20
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +10 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +34 -82
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +5 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +1 -3
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +16 -22
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +7 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -4
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +184 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +351 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +640 -547
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +160 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +47 -33
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +19 -5
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +122 -32
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +142 -37
- data/src/core/ext/transport/chttp2/transport/internal.h +227 -165
- data/src/core/ext/transport/chttp2/transport/legacy_frame.h +43 -0
- data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +44 -0
- data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +67 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +168 -60
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +90 -0
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +59 -0
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +108 -0
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +115 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +120 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +88 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +60 -0
- data/src/core/ext/transport/chttp2/transport/write_size_policy.h +66 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +226 -178
- data/src/core/ext/transport/inproc/inproc_transport.cc +163 -1229
- data/src/core/ext/transport/inproc/inproc_transport.h +0 -4
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +1303 -0
- data/src/core/ext/transport/inproc/legacy_inproc_transport.h +30 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +725 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +149 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +827 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +180 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +33 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +733 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +157 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +2772 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +532 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +48 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +248 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +66 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +280 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +74 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +162 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +56 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +122 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +49 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +117 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +49 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +928 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +150 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +117 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +54 -0
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +122 -0
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +58 -0
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +33 -0
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +109 -0
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +55 -0
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +1753 -0
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +375 -0
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +45 -0
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +3420 -0
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +612 -0
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +49 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +526 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +125 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +3890 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +729 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +53 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +117 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +54 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +659 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +123 -0
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +1830 -0
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +395 -0
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +44 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +1041 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +224 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +37 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +129 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +55 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +2420 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +577 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +53 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +1130 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +225 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +110 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +51 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +116 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +53 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +250 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +68 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +1688 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +378 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +43 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +1938 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +315 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +38 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +144 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +55 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +2245 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +481 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +45 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +238 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +70 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +232 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +72 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +287 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +76 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +255 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +66 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +129 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +54 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +489 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +138 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +33 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +993 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +229 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +911 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +179 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +101 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +50 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +1613 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +268 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +39 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +1447 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +260 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +327 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +86 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +197 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +77 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +183 -0
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +64 -0
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +974 -0
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +219 -0
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +37 -0
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +1183 -0
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +250 -0
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +39 -0
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +1704 -0
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +348 -0
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +40 -0
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +857 -0
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +133 -0
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +9666 -0
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +1667 -0
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +87 -0
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +341 -0
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +97 -0
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +1515 -0
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +325 -0
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +41 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +119 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +51 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +118 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +55 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +190 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +73 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +202 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +62 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h +409 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c +81 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +115 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +52 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +102 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +51 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +254 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +85 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +49 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +33 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.h +39 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +256 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +87 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +201 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +65 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +2691 -0
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +555 -0
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +45 -0
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +134 -0
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +46 -0
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +428 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +116 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +656 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +141 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +266 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +87 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +462 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +101 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +194 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +72 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +3943 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +679 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +50 -0
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +101 -0
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +50 -0
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +239 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +67 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +488 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +135 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +86 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +44 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +250 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +68 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +101 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +50 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +39 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +28 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +1469 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +262 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +361 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +108 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +1467 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +267 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +217 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +72 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +712 -0
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +151 -0
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +33 -0
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +73 -0
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +38 -0
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +2141 -0
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +402 -0
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +43 -0
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +324 -0
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +84 -0
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +925 -0
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +183 -0
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +131 -0
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +54 -0
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +312 -0
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +86 -0
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +33 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +124 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +53 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +299 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +105 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +260 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +76 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +166 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +55 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +130 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +54 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +110 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +51 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +271 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +96 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +109 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +43 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +306 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +81 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +230 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +70 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +347 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +92 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +525 -0
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +127 -0
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +506 -0
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +139 -0
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +227 -0
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +76 -0
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +38 -0
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +26 -0
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.h +29 -0
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +148 -0
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +46 -0
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +162 -0
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +64 -0
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +238 -0
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +84 -0
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +232 -0
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +75 -0
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +42 -0
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +26 -0
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.h +29 -0
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +117 -0
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +49 -0
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +146 -0
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +57 -0
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/google/api/annotations.upb.h +56 -0
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +38 -0
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +1743 -0
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +369 -0
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +42 -0
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +1829 -0
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +399 -0
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +43 -0
- data/src/core/ext/upb-gen/google/api/http.upb.h +496 -0
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +111 -0
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/google/api/httpbody.upb.h +165 -0
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +52 -0
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/google/protobuf/any.upb.h +99 -0
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +46 -0
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +6397 -0
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +1357 -0
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +78 -0
- data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +99 -0
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +46 -0
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +69 -0
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +35 -0
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +422 -0
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +115 -0
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +33 -0
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +99 -0
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +46 -0
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +508 -0
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +163 -0
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +38 -0
- data/src/core/ext/upb-gen/google/rpc/status.upb.h +165 -0
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +52 -0
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h +385 -0
- data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c +106 -0
- data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h +33 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +237 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +79 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +1658 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +342 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +41 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +197 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +69 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +144 -0
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +58 -0
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +877 -0
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +221 -0
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +38 -0
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +297 -0
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +92 -0
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +1333 -0
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +243 -0
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +38 -0
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +322 -0
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +118 -0
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +37 -0
- data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +125 -0
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +59 -0
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +55 -0
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +37 -0
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +131 -0
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +58 -0
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +109 -0
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +55 -0
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/validate/validate.upb.h +6507 -0
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +943 -0
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +57 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +322 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +118 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +37 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +125 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +59 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +55 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +37 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +336 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +117 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +109 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +55 -0
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +87 -0
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +45 -0
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +116 -0
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +53 -0
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +234 -0
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +78 -0
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +134 -0
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +62 -0
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +115 -0
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +52 -0
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +144 -0
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +55 -0
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +331 -0
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +84 -0
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +146 -0
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +59 -0
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +350 -0
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +126 -0
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +33 -0
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +161 -0
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +52 -0
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +101 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +50 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +263 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +72 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +71 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +36 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +30 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +282 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +75 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +1107 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +265 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +39 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +726 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +157 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +35 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +159 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +58 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +304 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +79 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +233 -0
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +79 -0
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +31 -0
- data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +235 -0
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +82 -0
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +114 -0
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +51 -0
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +30 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c +83 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c +101 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +276 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.h +125 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c +37 -0
- data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +233 -0
- data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.h +110 -0
- data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +422 -0
- data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +130 -0
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +97 -0
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +566 -0
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.h +150 -0
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c +137 -0
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +205 -0
- data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +131 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +270 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +150 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c +167 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +236 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c +244 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +310 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.h +110 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c +98 -0
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +139 -0
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c +135 -0
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +231 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +189 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +100 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c +70 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +124 -0
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +222 -0
- data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +85 -0
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +122 -0
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +979 -0
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +320 -0
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c +76 -0
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +198 -0
- data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.h +90 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c +98 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c +70 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c +74 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +78 -0
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c +401 -0
- data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.h +110 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +91 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +122 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +79 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c +104 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +601 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +135 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +214 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +257 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +133 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +199 -0
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +154 -0
- data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c +70 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c +74 -0
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c +77 -0
- data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +84 -0
- data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c +93 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c +68 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +153 -0
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +152 -0
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c +33 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +488 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.h +190 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c +34 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c +31 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c +34 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c +66 -0
- data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +98 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +33 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.c +282 -0
- data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c +62 -0
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c +34 -0
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c +37 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +125 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c +70 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/xds/certificate_provider_store.cc +2 -1
- data/src/core/ext/xds/certificate_provider_store.h +0 -5
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +0 -1
- data/src/core/ext/xds/xds_api.cc +31 -19
- data/src/core/ext/xds/xds_api.h +2 -2
- data/src/core/ext/xds/xds_bootstrap.h +3 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +33 -31
- data/src/core/ext/xds/xds_bootstrap_grpc.h +5 -13
- data/src/core/ext/xds/xds_certificate_provider.cc +88 -287
- data/src/core/ext/xds/xds_certificate_provider.h +44 -111
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +17 -28
- data/src/core/ext/xds/xds_channel_stack_modifier.h +3 -5
- data/src/core/ext/xds/xds_client.cc +425 -421
- data/src/core/ext/xds/xds_client.h +32 -23
- data/src/core/ext/xds/xds_client_grpc.cc +15 -7
- data/src/core/ext/xds/xds_client_grpc.h +16 -2
- data/src/core/ext/xds/xds_client_stats.h +10 -1
- data/src/core/ext/xds/xds_cluster.cc +159 -68
- data/src/core/ext/xds/xds_cluster.h +11 -5
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +9 -5
- data/src/core/ext/xds/xds_common_types.cc +14 -11
- data/src/core/ext/xds/xds_endpoint.cc +106 -70
- data/src/core/ext/xds/xds_endpoint.h +7 -4
- data/src/core/ext/xds/xds_health_status.cc +13 -18
- data/src/core/ext/xds/xds_health_status.h +10 -28
- data/src/core/ext/xds/xds_http_fault_filter.cc +1 -2
- data/src/core/ext/xds/xds_http_fault_filter.h +1 -2
- data/src/core/ext/xds/xds_http_filters.cc +1 -5
- data/src/core/ext/xds/xds_http_filters.h +2 -4
- data/src/core/ext/xds/xds_http_rbac_filter.cc +8 -11
- data/src/core/ext/xds/xds_http_rbac_filter.h +1 -2
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +2 -6
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +1 -2
- data/src/core/ext/xds/xds_lb_policy_registry.cc +36 -0
- data/src/core/ext/xds/xds_listener.cc +29 -25
- data/src/core/ext/xds/xds_listener.h +13 -3
- data/src/core/ext/xds/xds_resource_type.h +1 -7
- data/src/core/ext/xds/xds_resource_type_impl.h +11 -11
- data/src/core/ext/xds/xds_route_config.cc +48 -34
- data/src/core/ext/xds/xds_route_config.h +2 -1
- data/src/core/ext/xds/xds_routing.cc +2 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +110 -81
- data/src/core/ext/xds/xds_transport.h +3 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +61 -54
- data/src/core/ext/xds/xds_transport_grpc.h +4 -0
- data/src/core/lib/address_utils/parse_address.cc +63 -1
- data/src/core/lib/address_utils/parse_address.h +8 -0
- data/src/core/lib/address_utils/sockaddr_utils.cc +46 -2
- data/src/core/lib/address_utils/sockaddr_utils.h +2 -2
- data/src/core/lib/avl/avl.h +11 -173
- data/src/core/lib/backoff/random_early_detection.cc +4 -2
- data/src/core/lib/backoff/random_early_detection.h +7 -4
- data/src/core/lib/channel/call_tracer.cc +315 -1
- data/src/core/lib/channel/call_tracer.h +63 -4
- data/src/core/lib/channel/channel_args.cc +109 -84
- data/src/core/lib/channel/channel_args.h +105 -29
- data/src/core/lib/channel/channel_args_preconditioning.cc +0 -1
- data/src/core/lib/channel/channel_stack.cc +36 -1
- data/src/core/lib/channel/channel_stack.h +10 -10
- data/src/core/lib/channel/channel_stack_builder.h +4 -15
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -19
- data/src/core/lib/channel/channel_stack_trace.cc +19 -0
- data/src/core/lib/channel/channel_stack_trace.h +24 -0
- data/src/core/lib/channel/channel_trace.cc +1 -1
- data/src/core/lib/channel/channelz_registry.h +4 -2
- data/src/core/lib/channel/connected_channel.cc +144 -83
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/promise_based_filter.cc +19 -7
- data/src/core/lib/channel/promise_based_filter.h +1044 -3
- data/src/core/lib/channel/server_call_tracer_filter.cc +43 -42
- data/src/core/lib/channel/status_util.cc +0 -1
- data/src/core/lib/channel/tcp_tracer.h +140 -0
- data/src/core/lib/compression/compression_internal.cc +10 -7
- data/src/core/lib/config/config_vars.cc +0 -1
- data/src/core/lib/config/config_vars.h +1 -1
- data/src/core/lib/config/config_vars_non_generated.cc +0 -2
- data/src/core/lib/config/core_configuration.cc +2 -2
- data/src/core/lib/config/core_configuration.h +5 -4
- data/src/core/lib/debug/stats_data.cc +202 -35
- data/src/core/lib/debug/stats_data.h +102 -0
- data/src/core/lib/debug/trace.cc +1 -4
- data/src/core/lib/event_engine/ares_resolver.cc +747 -0
- data/src/core/lib/event_engine/ares_resolver.h +151 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +13 -3
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +4 -1
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +5 -2
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +3 -0
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +3 -0
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +249 -0
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +120 -0
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +2 -0
- data/src/core/lib/event_engine/event_engine.cc +0 -14
- data/src/core/lib/event_engine/forkable.cc +65 -65
- data/src/core/lib/event_engine/forkable.h +46 -25
- data/src/core/lib/event_engine/grpc_polled_fd.h +92 -0
- data/src/core/lib/event_engine/handle_containers.h +0 -4
- data/src/core/lib/event_engine/nameser.h +102 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +10 -14
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +2 -3
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +39 -24
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +12 -10
- data/src/core/lib/event_engine/posix_engine/event_poller.h +3 -1
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +23 -4
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +3 -1
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +205 -0
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +0 -2
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +132 -0
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +61 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +29 -16
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +113 -27
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +36 -29
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +66 -27
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +5 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +15 -5
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +53 -7
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +13 -0
- data/src/core/lib/event_engine/posix_engine/timer.h +10 -37
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +17 -27
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +0 -3
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +0 -1
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +0 -1
- data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +55 -0
- data/src/core/lib/event_engine/shim.cc +4 -2
- data/src/core/lib/event_engine/slice_buffer.cc +0 -1
- data/src/core/lib/event_engine/tcp_socket_utils.cc +67 -8
- data/src/core/lib/event_engine/tcp_socket_utils.h +3 -0
- data/src/core/lib/event_engine/thread_pool/thread_count.cc +58 -0
- data/src/core/lib/event_engine/thread_pool/thread_count.h +176 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +19 -10
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +138 -100
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +22 -48
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +12 -21
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +8 -12
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +823 -0
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +75 -0
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +114 -0
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.h +51 -0
- data/src/core/lib/event_engine/windows/win_socket.cc +20 -13
- data/src/core/lib/event_engine/windows/win_socket.h +19 -7
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +75 -76
- data/src/core/lib/event_engine/windows/windows_endpoint.h +15 -12
- data/src/core/lib/event_engine/windows/windows_engine.cc +85 -39
- data/src/core/lib/event_engine/windows/windows_engine.h +24 -14
- data/src/core/lib/event_engine/windows/windows_listener.cc +2 -3
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +2 -0
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +4 -1
- data/src/core/lib/event_engine/work_queue/work_queue.h +4 -0
- data/src/core/lib/experiments/config.cc +96 -23
- data/src/core/lib/experiments/config.h +23 -8
- data/src/core/lib/experiments/experiments.cc +712 -60
- data/src/core/lib/experiments/experiments.h +335 -46
- data/src/core/lib/gpr/alloc.cc +1 -0
- data/src/core/lib/gprpp/debug_location.h +13 -0
- data/src/core/lib/gprpp/directory_reader.h +48 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +45 -16
- data/src/core/lib/gprpp/fork.cc +8 -9
- data/src/core/lib/gprpp/fork.h +7 -6
- data/src/core/lib/gprpp/host_port.cc +0 -2
- data/src/core/lib/gprpp/if_list.h +4530 -0
- data/src/core/lib/gprpp/manual_constructor.h +1 -2
- data/src/core/lib/gprpp/match.h +1 -1
- data/src/core/lib/gprpp/no_destruct.h +1 -1
- data/src/core/lib/gprpp/orphanable.h +30 -3
- data/src/core/lib/gprpp/per_cpu.cc +2 -0
- data/src/core/lib/gprpp/per_cpu.h +36 -7
- data/src/core/lib/gprpp/posix/directory_reader.cc +82 -0
- data/src/core/lib/gprpp/posix/stat.cc +0 -1
- data/src/core/lib/gprpp/ref_counted.h +72 -29
- data/src/core/lib/gprpp/ref_counted_ptr.h +133 -27
- data/src/core/lib/gprpp/ref_counted_string.cc +44 -0
- data/src/core/lib/gprpp/ref_counted_string.h +161 -0
- data/src/core/lib/gprpp/sorted_pack.h +3 -12
- data/src/core/lib/gprpp/status_helper.cc +1 -3
- data/src/core/lib/gprpp/status_helper.h +16 -15
- data/src/core/lib/gprpp/strerror.cc +0 -2
- data/src/core/lib/gprpp/time.cc +0 -1
- data/src/core/lib/gprpp/time.h +13 -1
- data/src/core/lib/gprpp/type_list.h +32 -0
- data/src/core/lib/gprpp/validation_errors.cc +0 -1
- data/src/core/lib/gprpp/windows/directory_reader.cc +80 -0
- data/src/core/lib/gprpp/work_serializer.cc +323 -12
- data/src/core/lib/gprpp/work_serializer.h +30 -9
- data/src/core/lib/gprpp/xxhash_inline.h +29 -0
- data/src/core/lib/http/format_request.cc +0 -1
- data/src/core/lib/http/httpcli.cc +0 -2
- data/src/core/lib/http/httpcli.h +6 -9
- data/src/core/lib/http/httpcli_security_connector.cc +1 -0
- data/src/core/lib/iomgr/buffer_list.cc +2 -0
- data/src/core/lib/iomgr/combiner.cc +24 -18
- data/src/core/lib/iomgr/combiner.h +8 -3
- data/src/core/lib/iomgr/error.cc +32 -2
- data/src/core/lib/iomgr/error.h +9 -10
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +5 -7
- data/src/core/lib/iomgr/ev_poll_posix.cc +6 -5
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +42 -26
- data/src/core/lib/iomgr/event_engine_shims/endpoint.h +16 -0
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +3 -2
- data/src/core/lib/iomgr/exec_ctx.cc +12 -0
- data/src/core/lib/iomgr/exec_ctx.h +66 -19
- data/src/core/lib/iomgr/polling_entity.cc +10 -0
- data/src/core/lib/iomgr/polling_entity.h +2 -0
- data/src/core/lib/iomgr/pollset.h +4 -5
- data/src/core/lib/iomgr/port.h +24 -0
- data/src/core/lib/iomgr/resolve_address.cc +13 -1
- data/src/core/lib/iomgr/resolve_address.h +17 -3
- data/src/core/lib/iomgr/sockaddr_posix.h +7 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +42 -0
- data/src/core/lib/iomgr/socket_utils_posix.cc +2 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +6 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +8 -4
- data/src/core/lib/iomgr/tcp_posix.cc +48 -22
- data/src/core/lib/iomgr/tcp_server_posix.cc +37 -14
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +12 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +26 -2
- data/src/core/lib/iomgr/tcp_windows.cc +1 -3
- data/src/core/lib/iomgr/timer_manager.cc +7 -1
- data/src/core/lib/iomgr/timer_manager.h +2 -0
- data/src/core/lib/iomgr/vsock.cc +59 -0
- data/src/core/lib/iomgr/vsock.h +38 -0
- data/src/core/lib/iomgr/wakeup_fd_posix.h +3 -6
- data/src/core/lib/json/json_object_loader.h +0 -1
- data/src/core/lib/json/json_reader.cc +0 -1
- data/src/core/lib/load_balancing/delegating_helper.h +116 -0
- data/src/core/lib/load_balancing/lb_policy.h +38 -14
- data/src/core/lib/load_balancing/lb_policy_registry.cc +0 -1
- data/src/core/lib/load_balancing/subchannel_interface.h +6 -0
- data/src/core/lib/matchers/matchers.cc +0 -1
- data/src/core/lib/promise/activity.cc +17 -3
- data/src/core/lib/promise/activity.h +5 -4
- data/src/core/lib/promise/all_ok.h +80 -0
- data/src/core/lib/promise/arena_promise.h +5 -1
- data/src/core/lib/promise/cancel_callback.h +0 -2
- data/src/core/lib/promise/context.h +0 -1
- data/src/core/lib/promise/detail/basic_seq.h +1 -372
- data/src/core/lib/promise/detail/join_state.h +2077 -0
- data/src/core/lib/promise/detail/promise_like.h +8 -1
- data/src/core/lib/promise/detail/seq_state.h +5801 -0
- data/src/core/lib/promise/detail/status.h +42 -5
- data/src/core/lib/promise/for_each.h +13 -3
- data/src/core/lib/promise/if.h +4 -1
- data/src/core/lib/promise/interceptor_list.h +0 -1
- data/src/core/lib/promise/latch.h +7 -5
- data/src/core/lib/promise/loop.h +9 -6
- data/src/core/lib/promise/map.h +0 -1
- data/src/core/lib/promise/party.cc +33 -33
- data/src/core/lib/promise/party.h +143 -8
- data/src/core/lib/promise/pipe.h +28 -27
- data/src/core/lib/promise/poll.h +43 -19
- data/src/core/lib/promise/prioritized_race.h +0 -1
- data/src/core/lib/promise/promise.h +4 -1
- data/src/core/lib/promise/race.h +0 -1
- data/src/core/lib/promise/seq.h +124 -8
- data/src/core/lib/promise/sleep.h +5 -10
- data/src/core/lib/promise/status_flag.h +196 -0
- data/src/core/lib/promise/try_join.h +71 -21
- data/src/core/lib/promise/try_seq.h +161 -7
- data/src/core/lib/resolver/endpoint_addresses.cc +147 -0
- data/src/core/lib/resolver/endpoint_addresses.h +164 -0
- data/src/core/lib/resolver/resolver.h +4 -3
- data/src/core/lib/resolver/resolver_factory.h +3 -2
- data/src/core/lib/resolver/resolver_registry.cc +0 -2
- data/src/core/lib/resolver/server_address.h +5 -109
- data/src/core/lib/resource_quota/api.cc +1 -0
- data/src/core/lib/resource_quota/arena.cc +2 -0
- data/src/core/lib/resource_quota/arena.h +44 -10
- data/src/core/lib/resource_quota/memory_quota.cc +128 -21
- data/src/core/lib/resource_quota/memory_quota.h +13 -13
- data/src/core/lib/resource_quota/resource_quota.h +1 -0
- data/src/core/lib/security/authorization/audit_logging.cc +0 -1
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +15 -12
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +14 -5
- data/src/core/lib/security/authorization/matchers.cc +0 -1
- data/src/core/lib/security/authorization/rbac_policy.cc +0 -2
- data/src/core/lib/security/authorization/rbac_policy.h +1 -1
- data/src/core/lib/security/authorization/stdout_logger.cc +0 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +0 -2
- data/src/core/lib/security/credentials/channel_creds_registry.h +51 -27
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +169 -9
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +2 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.h +4 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -1
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +4 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +8 -2
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +68 -23
- data/src/core/lib/security/credentials/external/external_account_credentials.h +10 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +4 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +5 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +4 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +30 -38
- data/src/core/lib/security/credentials/fake/fake_credentials.h +28 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +1 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +0 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +17 -0
- data/src/core/lib/security/credentials/jwt/json_token.h +4 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +0 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +43 -2
- data/src/core/lib/security/credentials/local/local_credentials.cc +0 -2
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +0 -1
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -2
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +116 -10
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +14 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +0 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +86 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +0 -55
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +0 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +2 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +41 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +28 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +255 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +129 -0
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +27 -2
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -1
- data/src/core/lib/security/credentials/tls/tls_utils.cc +2 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +22 -29
- data/src/core/lib/security/credentials/xds/xds_credentials.h +2 -4
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +7 -59
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl_utils.cc +11 -3
- data/src/core/lib/security/security_connector/ssl_utils.h +5 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +8 -19
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +2 -2
- data/src/core/lib/security/transport/auth_filters.h +71 -4
- data/src/core/lib/security/transport/client_auth_filter.cc +9 -9
- data/src/core/lib/security/transport/legacy_server_auth_filter.cc +244 -0
- data/src/core/lib/security/transport/secure_endpoint.cc +3 -6
- data/src/core/lib/security/transport/security_handshaker.cc +2 -3
- data/src/core/lib/security/transport/server_auth_filter.cc +70 -92
- data/src/core/lib/service_config/service_config_call_data.h +5 -0
- data/src/core/lib/slice/slice.h +27 -0
- data/src/core/lib/slice/slice_buffer.cc +15 -0
- data/src/core/lib/slice/slice_buffer.h +19 -4
- data/src/core/lib/slice/slice_refcount.h +1 -1
- data/src/core/lib/surface/builtins.cc +6 -25
- data/src/core/lib/surface/call.cc +852 -247
- data/src/core/lib/surface/call.h +30 -13
- data/src/core/lib/surface/call_log_batch.cc +0 -2
- data/src/core/lib/surface/call_trace.cc +42 -2
- data/src/core/lib/surface/channel.cc +12 -10
- data/src/core/lib/surface/channel.h +2 -8
- data/src/core/lib/surface/channel_init.cc +367 -14
- data/src/core/lib/surface/channel_init.h +177 -28
- data/src/core/lib/surface/completion_queue.cc +4 -1
- data/src/core/lib/surface/event_string.cc +0 -1
- data/src/core/lib/surface/init.cc +21 -47
- data/src/core/lib/surface/lame_client.cc +8 -1
- data/src/core/lib/surface/server.cc +519 -300
- data/src/core/lib/surface/server.h +68 -44
- data/src/core/lib/surface/validate_metadata.cc +37 -22
- data/src/core/lib/surface/validate_metadata.h +13 -3
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/surface/wait_for_cq_end_op.h +94 -0
- data/src/core/lib/transport/batch_builder.cc +7 -9
- data/src/core/lib/transport/batch_builder.h +1 -3
- data/src/core/lib/transport/bdp_estimator.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.h +2 -2
- data/src/core/lib/transport/call_final_info.cc +38 -0
- data/src/core/lib/transport/call_final_info.h +54 -0
- data/src/core/lib/transport/connectivity_state.cc +3 -4
- data/src/core/lib/transport/connectivity_state.h +4 -0
- data/src/core/lib/transport/error_utils.cc +0 -2
- data/src/core/lib/transport/handshaker.cc +0 -2
- data/src/core/lib/transport/metadata_batch.cc +12 -7
- data/src/core/lib/transport/metadata_batch.h +122 -50
- data/src/core/lib/transport/parsed_metadata.h +32 -20
- data/src/core/lib/transport/simple_slice_based_metadata.h +8 -2
- data/src/core/lib/transport/tcp_connect_handshaker.cc +0 -1
- data/src/core/lib/transport/timeout_encoding.h +2 -2
- data/src/core/lib/transport/transport.cc +80 -67
- data/src/core/lib/transport/transport.h +504 -91
- data/src/core/lib/transport/transport_fwd.h +3 -1
- data/src/core/lib/transport/transport_op_string.cc +0 -2
- data/src/core/lib/uri/uri_parser.cc +0 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -0
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -3
- data/src/core/tsi/alts/crypt/aes_gcm.cc +142 -89
- data/src/core/tsi/alts/crypt/gsec.h +387 -319
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +11 -7
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +5 -7
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +4 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +12 -13
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +26 -25
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +9 -1
- data/src/core/tsi/ssl_transport_security.cc +233 -69
- data/src/core/tsi/ssl_transport_security.h +36 -2
- data/src/ruby/bin/math_pb.rb +24 -18
- data/src/ruby/ext/grpc/extconf.rb +73 -10
- data/src/ruby/ext/grpc/rb_call.c +62 -39
- data/src/ruby/ext/grpc/rb_call_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_channel.c +109 -84
- data/src/ruby/ext/grpc/rb_channel.h +1 -0
- data/src/ruby/ext/grpc/rb_channel_args.c +21 -3
- data/src/ruby/ext/grpc/rb_channel_args.h +4 -0
- data/src/ruby/ext/grpc/rb_channel_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_compression_options.c +0 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +22 -6
- data/src/ruby/ext/grpc/rb_event_thread.h +1 -0
- data/src/ruby/ext/grpc/rb_grpc.c +192 -31
- data/src/ruby/ext/grpc/rb_grpc.h +8 -4
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +10 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +15 -0
- data/src/ruby/ext/grpc/rb_server.c +62 -45
- data/src/ruby/ext/grpc/rb_server_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +0 -1
- data/src/ruby/lib/grpc/generic/active_call.rb +9 -14
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +24 -13
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +24 -3
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +33 -111
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +25 -2
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +22 -0
- data/src/ruby/pb/test/client.rb +16 -0
- data/src/ruby/spec/generic/rpc_server_spec.rb +3 -3
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -2
- data/third_party/abseil-cpp/absl/base/attributes.h +58 -5
- data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
- data/third_party/abseil-cpp/absl/base/casts.h +8 -8
- data/third_party/abseil-cpp/absl/base/config.h +89 -106
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +26 -1
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +2 -2
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +50 -39
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +2 -1
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +17 -18
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +32 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +24 -4
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +31 -73
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +9 -8
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +23 -32
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +2 -3
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/policy_checks.h +3 -3
- data/third_party/abseil-cpp/absl/base/prefetch.h +198 -0
- data/third_party/abseil-cpp/absl/container/fixed_array.h +54 -29
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -1
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +167 -79
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +3 -21
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +46 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -0
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +85 -26
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +35 -18
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +70 -29
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +437 -236
- data/third_party/abseil-cpp/absl/crc/crc32c.h +8 -1
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +14 -8
- data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -35
- data/third_party/abseil-cpp/absl/crc/internal/crc.h +2 -10
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +1 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +1 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +4 -4
- data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +8 -10
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +17 -19
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +8 -8
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +2 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +59 -23
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +1 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +43 -19
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -0
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +1 -1
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc +1 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -2
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +16 -15
- data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +1 -1
- data/third_party/abseil-cpp/absl/flags/marshalling.cc +43 -2
- data/third_party/abseil-cpp/absl/flags/marshalling.h +5 -0
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +9 -1
- data/third_party/abseil-cpp/absl/functional/bind_front.h +1 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +3 -3
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +37 -24
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +19 -9
- data/third_party/abseil-cpp/absl/hash/hash.h +7 -4
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +38 -15
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +6 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +48 -373
- data/third_party/abseil-cpp/absl/numeric/bits.h +4 -4
- data/third_party/abseil-cpp/absl/numeric/int128.cc +20 -8
- data/third_party/abseil-cpp/absl/numeric/int128.h +36 -39
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +0 -3
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +47 -30
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +185 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +4 -3
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/platform.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +4 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +1 -1
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +1 -1
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +4 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +12 -24
- data/third_party/abseil-cpp/absl/status/status.cc +11 -7
- data/third_party/abseil-cpp/absl/status/status.h +11 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +22 -8
- data/third_party/abseil-cpp/absl/strings/ascii.cc +54 -6
- data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -4
- data/third_party/abseil-cpp/absl/strings/charconv.h +2 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +1 -2
- data/third_party/abseil-cpp/absl/strings/cord.h +32 -5
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +23 -1
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +18 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +2 -5
- data/third_party/abseil-cpp/absl/strings/escaping.cc +10 -32
- data/third_party/abseil-cpp/absl/strings/escaping.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +2 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +0 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +15 -13
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +13 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +8 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +5 -3
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +4 -7
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +8 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +46 -20
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +1 -34
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +23 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +2 -77
- data/third_party/abseil-cpp/absl/strings/internal/memutil.h +4 -112
- data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +10 -31
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -8
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +5 -20
- data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +56 -6
- data/third_party/abseil-cpp/absl/strings/match.cc +87 -0
- data/third_party/abseil-cpp/absl/strings/match.h +19 -0
- data/third_party/abseil-cpp/absl/strings/numbers.cc +154 -122
- data/third_party/abseil-cpp/absl/strings/numbers.h +1 -6
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +7 -50
- data/third_party/abseil-cpp/absl/strings/str_cat.h +83 -15
- data/third_party/abseil-cpp/absl/strings/str_format.h +6 -3
- data/third_party/abseil-cpp/absl/strings/str_split.cc +9 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +26 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +5 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +63 -43
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +111 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.h +63 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +11 -7
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +225 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +122 -114
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +12 -8
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +10 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +167 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.h +60 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +122 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.h +65 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +91 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.h +56 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +19 -113
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +42 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.h +90 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +151 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.h +70 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +407 -411
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +152 -118
- data/third_party/abseil-cpp/absl/time/clock.cc +6 -7
- data/third_party/abseil-cpp/absl/time/duration.cc +24 -26
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +3 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +8 -6
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +6 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +4 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +4 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +322 -295
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +8 -17
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +51 -33
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +7 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +128 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +5 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +34 -34
- data/third_party/abseil-cpp/absl/time/time.cc +9 -2
- data/third_party/abseil-cpp/absl/time/time.h +115 -15
- data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -52
- data/third_party/abseil-cpp/absl/types/internal/span.h +2 -2
- data/third_party/abseil-cpp/absl/types/internal/variant.h +2 -2
- data/third_party/abseil-cpp/absl/types/optional.h +15 -13
- data/third_party/abseil-cpp/absl/types/span.h +1 -2
- data/third_party/boringssl-with-bazel/err_data.c +554 -553
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +34 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +11 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +7 -8
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/errno.c +92 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +5 -49
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +18 -13
- data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +16 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +11 -2
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +19 -1
- data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +8 -1
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +31 -192
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +3 -7
- data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.c +93 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +49 -46
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.c +18 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +2809 -7417
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +27 -5
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +20 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +110 -72
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +4 -3
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +24 -28
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +23 -21
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +35 -12
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +3 -7
- data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +7 -6
- data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +34 -72
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +12 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +5 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +12 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +17 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +51 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +5 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +37 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +38 -19
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +277 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +180 -404
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +24 -57
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +33 -71
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +18 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +5 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +15 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +9 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +24 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +11 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +9 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +40 -26
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +21 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +38 -19
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +2 -29
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +55 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +33 -52
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +42 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +4 -7
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +211 -100
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +5 -4
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +7 -8
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +25 -46
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +8 -5
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +7 -6
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +6 -12
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +52 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +38 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +41 -19
- data/third_party/boringssl-with-bazel/src/crypto/refcount.c +59 -0
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +152 -72
- data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +0 -8
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +6 -35
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +5 -26
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +14 -18
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +54 -143
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +8 -19
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +8 -12
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +19 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +11 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +4 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +4 -119
- data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +207 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +10 -116
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +11 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +0 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +5 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +0 -21
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +28 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +19 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +11 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +13 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +0 -61
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +22 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +131 -81
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +236 -213
- data/third_party/boringssl-with-bazel/src/include/openssl/target.h +201 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +1 -29
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +4 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +3 -2
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +9 -65
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +20 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -11
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +26 -20
- data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +4 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +37 -30
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +127 -26
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +2 -3
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +691 -0
- data/third_party/upb/upb/base/descriptor_constants.h +7 -27
- data/third_party/upb/upb/base/internal/log2.h +38 -0
- data/third_party/upb/upb/base/status.c +6 -26
- data/third_party/upb/upb/base/status.h +6 -26
- data/third_party/upb/upb/base/status.hpp +50 -0
- data/third_party/upb/upb/base/string_view.h +11 -28
- data/third_party/upb/upb/generated_code_support.h +33 -0
- data/third_party/upb/upb/hash/common.c +12 -44
- data/third_party/upb/upb/hash/common.h +16 -41
- data/third_party/upb/upb/hash/int_table.h +6 -26
- data/third_party/upb/upb/hash/str_table.h +7 -26
- data/third_party/upb/upb/json/decode.c +31 -28
- data/third_party/upb/upb/json/decode.h +32 -29
- data/third_party/upb/upb/json/encode.c +31 -28
- data/third_party/upb/upb/json/encode.h +35 -32
- data/third_party/upb/upb/lex/atoi.c +6 -26
- data/third_party/upb/upb/lex/atoi.h +8 -26
- data/third_party/upb/upb/lex/round_trip.c +6 -26
- data/third_party/upb/upb/lex/round_trip.h +6 -26
- data/third_party/upb/upb/lex/strtod.c +6 -26
- data/third_party/upb/upb/lex/strtod.h +6 -26
- data/third_party/upb/upb/lex/unicode.c +6 -26
- data/third_party/upb/upb/lex/unicode.h +8 -26
- data/third_party/upb/upb/mem/alloc.c +6 -26
- data/third_party/upb/upb/mem/alloc.h +6 -26
- data/third_party/upb/upb/mem/arena.c +30 -29
- data/third_party/upb/upb/mem/arena.h +16 -44
- data/third_party/upb/upb/mem/arena.hpp +54 -0
- data/third_party/upb/upb/mem/internal/arena.h +94 -0
- data/third_party/upb/upb/message/accessors.c +34 -31
- data/third_party/upb/upb/message/accessors.h +58 -57
- data/third_party/upb/upb/message/array.c +154 -0
- data/third_party/upb/upb/message/array.h +98 -0
- data/third_party/upb/upb/message/internal/accessors.h +367 -0
- data/third_party/upb/upb/message/internal/array.h +138 -0
- data/third_party/upb/upb/message/internal/extension.h +63 -0
- data/third_party/upb/upb/message/internal/map.h +173 -0
- data/third_party/upb/upb/message/internal/map_entry.h +66 -0
- data/third_party/upb/upb/message/internal/map_sorter.h +112 -0
- data/third_party/upb/upb/message/internal/message.h +106 -0
- data/third_party/upb/upb/message/internal/types.h +23 -0
- data/third_party/upb/upb/message/map.c +145 -0
- data/third_party/upb/upb/message/map.h +147 -0
- data/third_party/upb/upb/message/map_gencode_util.h +81 -0
- data/third_party/upb/upb/message/map_sorter.c +170 -0
- data/third_party/upb/upb/message/message.c +8 -34
- data/third_party/upb/upb/message/message.h +10 -27
- data/third_party/upb/upb/message/tagged_ptr.h +69 -0
- data/third_party/upb/upb/message/types.h +15 -0
- data/third_party/upb/upb/message/value.h +46 -0
- data/third_party/upb/upb/mini_descriptor/build_enum.c +130 -0
- data/third_party/upb/upb/mini_descriptor/build_enum.h +42 -0
- data/third_party/upb/upb/mini_descriptor/decode.c +870 -0
- data/third_party/upb/upb/mini_descriptor/decode.h +120 -0
- data/third_party/upb/upb/mini_descriptor/internal/base92.c +26 -0
- data/third_party/upb/upb/mini_descriptor/internal/base92.h +63 -0
- data/third_party/upb/upb/mini_descriptor/internal/decoder.h +53 -0
- data/third_party/upb/upb/mini_descriptor/internal/encode.c +323 -0
- data/third_party/upb/upb/mini_descriptor/internal/encode.h +92 -0
- data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +118 -0
- data/third_party/upb/upb/mini_descriptor/internal/modifiers.h +32 -0
- data/third_party/upb/upb/mini_descriptor/internal/wire_constants.h +72 -0
- data/third_party/upb/upb/mini_descriptor/link.c +122 -0
- data/third_party/upb/upb/mini_descriptor/link.h +84 -0
- data/third_party/upb/upb/mini_table/enum.h +38 -0
- data/third_party/upb/upb/mini_table/extension.h +15 -0
- data/third_party/upb/upb/mini_table/extension_registry.c +7 -27
- data/third_party/upb/upb/mini_table/extension_registry.h +9 -28
- data/third_party/upb/upb/mini_table/field.h +98 -0
- data/third_party/upb/upb/mini_table/file.h +15 -0
- data/third_party/upb/upb/mini_table/internal/enum.h +58 -0
- data/third_party/upb/upb/mini_table/internal/extension.h +27 -0
- data/third_party/upb/upb/mini_table/internal/field.h +114 -0
- data/third_party/upb/upb/mini_table/internal/file.h +29 -0
- data/third_party/upb/upb/mini_table/internal/message.c +19 -0
- data/third_party/upb/upb/mini_table/internal/message.h +88 -0
- data/third_party/upb/upb/mini_table/internal/sub.h +18 -0
- data/third_party/upb/upb/mini_table/message.c +77 -0
- data/third_party/upb/upb/mini_table/message.h +85 -0
- data/third_party/upb/upb/mini_table/sub.h +15 -0
- data/third_party/upb/upb/port/atomic.h +8 -26
- data/third_party/upb/upb/port/def.inc +28 -29
- data/third_party/upb/upb/port/undef.inc +8 -26
- data/third_party/upb/upb/port/vsnprintf_compat.h +6 -26
- data/third_party/upb/upb/reflection/common.h +11 -27
- data/third_party/upb/upb/reflection/def.h +8 -26
- data/third_party/upb/upb/reflection/def.hpp +26 -31
- data/third_party/upb/upb/reflection/def_pool.c +16 -35
- data/third_party/upb/upb/reflection/def_pool.h +17 -38
- data/third_party/upb/upb/reflection/def_type.c +6 -26
- data/third_party/upb/upb/reflection/def_type.h +6 -27
- data/third_party/upb/upb/reflection/desc_state.c +7 -27
- data/third_party/upb/upb/reflection/enum_def.c +19 -37
- data/third_party/upb/upb/reflection/enum_def.h +13 -33
- data/third_party/upb/upb/reflection/enum_reserved_range.c +9 -30
- data/third_party/upb/upb/reflection/enum_reserved_range.h +6 -26
- data/third_party/upb/upb/reflection/enum_value_def.c +13 -32
- data/third_party/upb/upb/reflection/enum_value_def.h +8 -28
- data/third_party/upb/upb/reflection/extension_range.c +9 -28
- data/third_party/upb/upb/reflection/extension_range.h +6 -26
- data/third_party/upb/upb/reflection/field_def.c +70 -52
- data/third_party/upb/upb/reflection/field_def.h +25 -42
- data/third_party/upb/upb/reflection/file_def.c +23 -48
- data/third_party/upb/upb/reflection/file_def.h +10 -30
- data/third_party/upb/upb/reflection/internal/def_builder.c +339 -0
- data/third_party/upb/upb/reflection/internal/def_builder.h +137 -0
- data/third_party/upb/upb/reflection/internal/def_pool.h +57 -0
- data/third_party/upb/upb/reflection/internal/desc_state.h +44 -0
- data/third_party/upb/upb/reflection/internal/enum_def.h +36 -0
- data/third_party/upb/upb/reflection/internal/enum_reserved_range.h +35 -0
- data/third_party/upb/upb/reflection/internal/enum_value_def.h +37 -0
- data/third_party/upb/upb/reflection/internal/extension_range.h +34 -0
- data/third_party/upb/upb/reflection/internal/field_def.h +56 -0
- data/third_party/upb/upb/reflection/internal/file_def.h +37 -0
- data/third_party/upb/upb/reflection/internal/message_def.h +43 -0
- data/third_party/upb/upb/reflection/internal/message_reserved_range.h +35 -0
- data/third_party/upb/upb/reflection/internal/method_def.h +33 -0
- data/third_party/upb/upb/reflection/internal/oneof_def.h +37 -0
- data/third_party/upb/upb/reflection/internal/service_def.h +33 -0
- data/third_party/upb/upb/reflection/internal/strdup2.c +33 -0
- data/third_party/upb/upb/reflection/internal/strdup2.h +32 -0
- data/third_party/upb/upb/reflection/message.c +10 -30
- data/third_party/upb/upb/reflection/message.h +27 -40
- data/third_party/upb/upb/reflection/message.hpp +5 -23
- data/third_party/upb/upb/reflection/message_def.c +73 -55
- data/third_party/upb/upb/reflection/message_def.h +25 -43
- data/third_party/upb/upb/reflection/message_reserved_range.c +8 -28
- data/third_party/upb/upb/reflection/message_reserved_range.h +6 -26
- data/third_party/upb/upb/reflection/method_def.c +10 -29
- data/third_party/upb/upb/reflection/method_def.h +6 -26
- data/third_party/upb/upb/reflection/oneof_def.c +15 -33
- data/third_party/upb/upb/reflection/oneof_def.h +11 -30
- data/third_party/upb/upb/reflection/service_def.c +12 -31
- data/third_party/upb/upb/reflection/service_def.h +6 -26
- data/third_party/upb/upb/text/encode.c +8 -28
- data/third_party/upb/upb/text/encode.h +6 -26
- data/third_party/upb/upb/wire/decode.c +106 -68
- data/third_party/upb/upb/wire/decode.h +50 -26
- data/third_party/upb/upb/wire/decode_fast.c +10 -28
- data/third_party/upb/upb/wire/decode_fast.h +6 -26
- data/third_party/upb/upb/wire/encode.c +52 -46
- data/third_party/upb/upb/wire/encode.h +14 -30
- data/third_party/upb/upb/wire/eps_copy_input_stream.c +6 -26
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +6 -26
- data/third_party/upb/upb/wire/internal/constants.h +27 -0
- data/third_party/upb/upb/wire/internal/decode.h +143 -0
- data/third_party/upb/upb/wire/internal/swap.h +45 -0
- data/third_party/upb/upb/wire/reader.c +6 -26
- data/third_party/upb/upb/wire/reader.h +8 -28
- data/third_party/upb/upb/wire/types.h +6 -26
- data/third_party/zlib/adler32.c +5 -27
- data/third_party/zlib/compress.c +5 -16
- data/third_party/zlib/crc32.c +86 -162
- data/third_party/zlib/deflate.c +233 -336
- data/third_party/zlib/deflate.h +8 -8
- data/third_party/zlib/gzguts.h +11 -12
- data/third_party/zlib/infback.c +7 -23
- data/third_party/zlib/inffast.c +1 -4
- data/third_party/zlib/inffast.h +1 -1
- data/third_party/zlib/inflate.c +30 -99
- data/third_party/zlib/inftrees.c +6 -11
- data/third_party/zlib/inftrees.h +3 -3
- data/third_party/zlib/trees.c +224 -302
- data/third_party/zlib/uncompr.c +4 -12
- data/third_party/zlib/zconf.h +6 -2
- data/third_party/zlib/zlib.h +191 -188
- data/third_party/zlib/zutil.c +16 -44
- data/third_party/zlib/zutil.h +10 -10
- metadata +979 -741
- data/src/core/ext/filters/client_channel/http_proxy.cc +0 -233
- data/src/core/ext/filters/client_channel/http_proxy.h +0 -52
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +0 -42
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h +0 -64
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +0 -1226
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +0 -45
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +0 -177
- data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -68
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +0 -152
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +0 -735
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +0 -183
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +0 -835
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +0 -160
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +0 -743
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +0 -535
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +0 -2796
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +0 -69
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +0 -256
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +0 -77
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +0 -287
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +0 -59
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +0 -168
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +0 -52
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +0 -128
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +0 -52
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +0 -123
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +0 -153
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +0 -935
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +0 -57
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +0 -122
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +0 -134
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +0 -60
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +0 -118
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +0 -357
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +0 -1629
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +0 -572
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +0 -3257
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +0 -128
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +0 -532
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +0 -732
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +0 -3926
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +0 -57
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +0 -122
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +0 -126
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +0 -664
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +0 -398
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +0 -1849
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +0 -227
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +0 -1054
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +0 -58
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +0 -134
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +0 -580
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +0 -2448
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +0 -235
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +0 -1180
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +0 -54
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +0 -115
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +0 -56
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +0 -122
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +0 -71
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +0 -256
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +0 -376
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +0 -1678
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +0 -314
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +0 -1886
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +0 -58
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +0 -149
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +0 -465
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +0 -2222
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +0 -73
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +0 -245
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +0 -75
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +0 -239
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +0 -79
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +0 -293
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +0 -69
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +0 -260
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +0 -57
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +0 -136
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +0 -141
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +0 -498
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +0 -207
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +0 -875
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +0 -182
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +0 -920
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +0 -53
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +0 -107
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +0 -269
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +0 -1600
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +0 -263
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +0 -1459
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +0 -89
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +0 -331
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +0 -80
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +0 -204
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +0 -66
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +0 -166
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +0 -222
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +0 -988
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +0 -229
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +0 -1017
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +0 -351
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +0 -1717
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +0 -136
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +0 -867
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +0 -1646
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +0 -9598
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +0 -100
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +0 -347
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +0 -328
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +0 -1530
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +0 -54
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +0 -123
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +0 -58
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +0 -122
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +0 -76
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +0 -196
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +0 -65
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +0 -205
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +0 -84
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +0 -413
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +0 -55
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +0 -122
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +0 -54
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +0 -107
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +0 -88
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +0 -259
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +0 -36
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +0 -48
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +0 -90
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +0 -261
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +0 -68
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +0 -204
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +0 -49
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +0 -139
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +0 -119
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +0 -437
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +0 -125
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +0 -635
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +0 -90
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +0 -271
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +0 -79
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +0 -358
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +0 -75
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +0 -201
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +0 -656
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +0 -3850
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +0 -53
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +0 -107
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +0 -69
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +0 -246
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +0 -138
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +0 -499
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +0 -71
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +0 -257
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +0 -53
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +0 -107
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +0 -31
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +0 -43
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +0 -265
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +0 -1479
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +0 -111
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +0 -369
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +0 -270
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +0 -1482
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +0 -75
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +0 -224
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +0 -41
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +0 -78
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +0 -405
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +0 -2161
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +0 -87
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +0 -331
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +0 -185
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +0 -923
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +0 -57
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +0 -137
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +0 -89
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +0 -321
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +0 -56
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +0 -130
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +0 -108
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +0 -309
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +0 -79
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +0 -266
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +0 -58
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +0 -172
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +0 -57
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +0 -135
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +0 -54
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +0 -115
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +0 -99
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +0 -277
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +0 -46
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +0 -117
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +0 -84
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +0 -312
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +0 -73
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +0 -236
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +0 -95
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +0 -354
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +0 -130
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +0 -536
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +0 -142
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +0 -516
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +0 -79
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +0 -234
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +0 -29
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +0 -44
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +0 -49
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +0 -153
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +0 -67
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +0 -168
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +0 -87
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +0 -246
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +0 -78
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +0 -237
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +0 -29
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +0 -48
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +0 -52
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +0 -123
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +0 -60
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +0 -151
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +0 -43
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +0 -63
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +0 -372
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +0 -1764
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +0 -402
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +0 -1849
- data/src/core/ext/upb-generated/google/api/http.upb.c +0 -114
- data/src/core/ext/upb-generated/google/api/http.upb.h +0 -507
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +0 -55
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +0 -173
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +0 -49
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +0 -108
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +0 -1172
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +0 -5656
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +0 -49
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +0 -108
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +0 -38
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +0 -78
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +0 -118
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +0 -434
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +0 -49
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +0 -108
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +0 -166
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +0 -525
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +0 -55
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +0 -173
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +0 -109
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +0 -397
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +0 -82
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +0 -246
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +0 -345
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +0 -1677
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +0 -72
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +0 -207
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +0 -61
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +0 -154
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +0 -224
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +0 -893
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +0 -95
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +0 -308
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +0 -246
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +0 -1349
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +0 -129
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +0 -341
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +0 -64
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +0 -133
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +0 -41
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +0 -63
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +0 -63
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +0 -140
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +0 -60
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +0 -118
- data/src/core/ext/upb-generated/validate/validate.upb.c +0 -950
- data/src/core/ext/upb-generated/validate/validate.upb.h +0 -6544
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +0 -129
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +0 -341
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +0 -64
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +0 -133
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +0 -41
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +0 -63
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +0 -126
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +0 -352
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +0 -60
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +0 -118
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +0 -48
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +0 -93
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +0 -56
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +0 -122
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +0 -81
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +0 -241
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +0 -65
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +0 -142
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +0 -55
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +0 -122
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +0 -58
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +0 -151
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +0 -87
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +0 -338
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +0 -62
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +0 -152
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +0 -129
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +0 -360
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +0 -55
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +0 -168
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +0 -53
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +0 -107
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +0 -75
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +0 -270
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +0 -39
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +0 -78
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +0 -78
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +0 -289
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +0 -268
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +0 -1122
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +0 -160
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +0 -740
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +0 -61
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +0 -167
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +0 -82
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +0 -312
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +0 -82
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +0 -240
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +0 -85
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +0 -246
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +0 -54
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +0 -122
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +0 -84
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +0 -56
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +0 -128
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +0 -51
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +0 -102
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -56
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +0 -277
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +0 -126
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +0 -43
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +0 -56
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +0 -49
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +0 -46
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +0 -46
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +0 -142
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +0 -51
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +0 -48
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +0 -31
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +0 -38
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +0 -222
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +0 -106
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +0 -408
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +0 -121
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +0 -98
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +0 -567
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +0 -151
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +0 -51
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +0 -138
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +0 -206
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +0 -106
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +0 -132
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +0 -71
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +0 -54
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +0 -271
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +0 -151
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +0 -169
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +0 -71
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +0 -53
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +0 -47
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +0 -53
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +0 -235
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +0 -101
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +0 -234
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +0 -76
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +0 -53
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +0 -305
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +0 -111
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +0 -57
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +0 -55
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +0 -61
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +0 -70
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +0 -49
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +0 -99
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +0 -51
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +0 -133
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +0 -61
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +0 -136
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +0 -56
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +0 -48
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +0 -227
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +0 -81
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +0 -190
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +0 -66
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +0 -101
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +0 -71
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +0 -69
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +0 -125
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +0 -71
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +0 -134
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +0 -76
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +0 -223
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +0 -86
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +0 -123
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +0 -972
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +0 -316
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +0 -77
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +0 -199
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +0 -91
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +0 -56
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +0 -57
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +0 -57
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +0 -72
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +0 -99
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +0 -45
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +0 -52
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +0 -71
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +0 -61
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +0 -31
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +0 -75
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +0 -79
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +0 -50
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +0 -92
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +0 -56
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +0 -117
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +0 -80
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +0 -89
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +0 -60
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +0 -580
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +0 -131
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +0 -50
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +0 -48
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +0 -31
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +0 -215
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +0 -66
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +0 -91
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +0 -258
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +0 -66
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +0 -58
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +0 -58
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +0 -200
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +0 -101
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +0 -76
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +0 -152
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +0 -56
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +0 -46
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +0 -56
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +0 -51
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +0 -48
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +0 -55
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +0 -56
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +0 -61
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +0 -54
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +0 -52
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +0 -51
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +0 -71
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +0 -40
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +0 -65
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +0 -58
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +0 -75
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +0 -78
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +0 -66
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +0 -85
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +0 -56
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +0 -53
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +0 -36
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +0 -31
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +0 -94
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +0 -54
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +0 -48
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +0 -69
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +0 -39
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +0 -31
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +0 -44
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +0 -57
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +0 -40
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +0 -31
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +0 -154
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +0 -96
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +0 -153
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +0 -101
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +0 -52
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +0 -39
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +0 -34
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +0 -387
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +0 -171
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +0 -35
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +0 -32
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +0 -54
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +0 -51
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +0 -35
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +0 -45
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +0 -76
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +0 -37
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +0 -67
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +0 -51
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +0 -99
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +0 -76
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +0 -62
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +0 -47
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +0 -34
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +0 -31
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +0 -46
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +0 -39
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +0 -283
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +0 -146
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +0 -63
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +0 -47
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +0 -35
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +0 -31
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +0 -64
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +0 -51
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +0 -40
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +0 -38
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +0 -45
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +0 -56
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +0 -39
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +0 -41
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +0 -45
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +0 -61
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +0 -46
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +0 -43
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +0 -51
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +0 -36
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +0 -36
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +0 -55
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +0 -126
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +0 -81
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +0 -71
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +0 -61
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +0 -40
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +0 -52
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +0 -60
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +0 -41
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +0 -36
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +0 -46
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +0 -37
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +0 -36
- data/src/core/lib/event_engine/memory_allocator.cc +0 -74
- data/src/core/lib/event_engine/thread_pool/original_thread_pool.cc +0 -256
- data/src/core/lib/event_engine/thread_pool/original_thread_pool.h +0 -137
- data/src/core/lib/promise/detail/basic_join.h +0 -197
- data/src/core/lib/promise/detail/switch.h +0 -1455
- data/src/core/lib/resolver/server_address.cc +0 -174
- data/src/core/lib/transport/pid_controller.cc +0 -51
- data/src/core/lib/transport/pid_controller.h +0 -116
- data/src/core/lib/transport/transport_impl.h +0 -102
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -403
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +0 -62
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm.c +0 -38
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_openbsd.c +0 -31
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +0 -34
- data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -65
- data/third_party/boringssl-with-bazel/src/crypto/refcount_no_threads.c +0 -42
- data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +0 -89
- data/third_party/re2/util/benchmark.h +0 -156
- data/third_party/re2/util/flags.h +0 -26
- data/third_party/re2/util/malloc_counter.h +0 -19
- data/third_party/re2/util/pcre.cc +0 -1025
- data/third_party/re2/util/pcre.h +0 -681
- data/third_party/re2/util/test.h +0 -50
- data/third_party/upb/upb/alloc.h +0 -36
- data/third_party/upb/upb/arena.h +0 -36
- data/third_party/upb/upb/array.h +0 -36
- data/third_party/upb/upb/base/log2.h +0 -57
- data/third_party/upb/upb/collections/array.c +0 -145
- data/third_party/upb/upb/collections/array.h +0 -85
- data/third_party/upb/upb/collections/array_internal.h +0 -135
- data/third_party/upb/upb/collections/map.c +0 -135
- data/third_party/upb/upb/collections/map.h +0 -135
- data/third_party/upb/upb/collections/map_gencode_util.h +0 -78
- data/third_party/upb/upb/collections/map_internal.h +0 -170
- data/third_party/upb/upb/collections/map_sorter.c +0 -166
- data/third_party/upb/upb/collections/map_sorter_internal.h +0 -109
- data/third_party/upb/upb/collections/message_value.h +0 -65
- data/third_party/upb/upb/decode.h +0 -36
- data/third_party/upb/upb/def.h +0 -36
- data/third_party/upb/upb/def.hpp +0 -33
- data/third_party/upb/upb/encode.h +0 -36
- data/third_party/upb/upb/extension_registry.h +0 -35
- data/third_party/upb/upb/json_decode.h +0 -36
- data/third_party/upb/upb/json_encode.h +0 -36
- data/third_party/upb/upb/map.h +0 -36
- data/third_party/upb/upb/mem/arena_internal.h +0 -114
- data/third_party/upb/upb/message/accessors_internal.h +0 -325
- data/third_party/upb/upb/message/extension_internal.h +0 -83
- data/third_party/upb/upb/message/internal.h +0 -135
- data/third_party/upb/upb/mini_table/common.c +0 -128
- data/third_party/upb/upb/mini_table/common.h +0 -170
- data/third_party/upb/upb/mini_table/common_internal.h +0 -111
- data/third_party/upb/upb/mini_table/decode.c +0 -1127
- data/third_party/upb/upb/mini_table/decode.h +0 -179
- data/third_party/upb/upb/mini_table/encode.c +0 -300
- data/third_party/upb/upb/mini_table/encode_internal.h +0 -111
- data/third_party/upb/upb/mini_table/encode_internal.hpp +0 -136
- data/third_party/upb/upb/mini_table/enum_internal.h +0 -88
- data/third_party/upb/upb/mini_table/extension_internal.h +0 -47
- data/third_party/upb/upb/mini_table/field_internal.h +0 -192
- data/third_party/upb/upb/mini_table/file_internal.h +0 -47
- data/third_party/upb/upb/mini_table/message_internal.h +0 -136
- data/third_party/upb/upb/mini_table/sub_internal.h +0 -38
- data/third_party/upb/upb/mini_table/types.h +0 -40
- data/third_party/upb/upb/mini_table.h +0 -36
- data/third_party/upb/upb/msg.h +0 -36
- data/third_party/upb/upb/reflection/def_builder.c +0 -357
- data/third_party/upb/upb/reflection/def_builder_internal.h +0 -157
- data/third_party/upb/upb/reflection/def_pool_internal.h +0 -77
- data/third_party/upb/upb/reflection/desc_state_internal.h +0 -64
- data/third_party/upb/upb/reflection/enum_def_internal.h +0 -56
- data/third_party/upb/upb/reflection/enum_reserved_range_internal.h +0 -55
- data/third_party/upb/upb/reflection/enum_value_def_internal.h +0 -57
- data/third_party/upb/upb/reflection/extension_range_internal.h +0 -54
- data/third_party/upb/upb/reflection/field_def_internal.h +0 -76
- data/third_party/upb/upb/reflection/file_def_internal.h +0 -57
- data/third_party/upb/upb/reflection/message_def_internal.h +0 -63
- data/third_party/upb/upb/reflection/message_reserved_range_internal.h +0 -55
- data/third_party/upb/upb/reflection/method_def_internal.h +0 -53
- data/third_party/upb/upb/reflection/oneof_def_internal.h +0 -57
- data/third_party/upb/upb/reflection/service_def_internal.h +0 -53
- data/third_party/upb/upb/reflection.h +0 -36
- data/third_party/upb/upb/reflection.hpp +0 -33
- data/third_party/upb/upb/status.h +0 -36
- data/third_party/upb/upb/string_view.h +0 -36
- data/third_party/upb/upb/text_encode.h +0 -36
- data/third_party/upb/upb/upb.h +0 -39
- data/third_party/upb/upb/upb.hpp +0 -107
- data/third_party/upb/upb/wire/common.h +0 -44
- data/third_party/upb/upb/wire/common_internal.h +0 -50
- data/third_party/upb/upb/wire/decode_internal.h +0 -163
- data/third_party/upb/upb/wire/swap_internal.h +0 -63
- data/third_party/zlib/gzclose.c +0 -25
- data/third_party/zlib/gzlib.c +0 -639
- data/third_party/zlib/gzread.c +0 -650
- data/third_party/zlib/gzwrite.c +0 -677
| @@ -35,10 +35,9 @@ | |
| 35 35 |  | 
| 36 36 | 
             
            #include <algorithm>
         | 
| 37 37 | 
             
            #include <atomic>
         | 
| 38 | 
            -
            #include <cinttypes>
         | 
| 39 38 | 
             
            #include <cstddef>
         | 
| 39 | 
            +
            #include <cstdlib>
         | 
| 40 40 | 
             
            #include <cstring>
         | 
| 41 | 
            -
            #include <iterator>
         | 
| 42 41 | 
             
            #include <thread>  // NOLINT(build/c++11)
         | 
| 43 42 |  | 
| 44 43 | 
             
            #include "absl/base/attributes.h"
         | 
| @@ -55,7 +54,6 @@ | |
| 55 54 | 
             
            #include "absl/base/internal/thread_identity.h"
         | 
| 56 55 | 
             
            #include "absl/base/internal/tsan_mutex_interface.h"
         | 
| 57 56 | 
             
            #include "absl/base/optimization.h"
         | 
| 58 | 
            -
            #include "absl/base/port.h"
         | 
| 59 57 | 
             
            #include "absl/debugging/stacktrace.h"
         | 
| 60 58 | 
             
            #include "absl/debugging/symbolize.h"
         | 
| 61 59 | 
             
            #include "absl/synchronization/internal/graphcycles.h"
         | 
| @@ -63,6 +61,7 @@ | |
| 63 61 | 
             
            #include "absl/time/time.h"
         | 
| 64 62 |  | 
| 65 63 | 
             
            using absl::base_internal::CurrentThreadIdentityIfPresent;
         | 
| 64 | 
            +
            using absl::base_internal::CycleClock;
         | 
| 66 65 | 
             
            using absl::base_internal::PerThreadSynch;
         | 
| 67 66 | 
             
            using absl::base_internal::SchedulingGuard;
         | 
| 68 67 | 
             
            using absl::base_internal::ThreadIdentity;
         | 
| @@ -98,18 +97,15 @@ ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES | |
| 98 97 | 
             
            absl::base_internal::AtomicHook<void (*)(int64_t wait_cycles)>
         | 
| 99 98 | 
             
                submit_profile_data;
         | 
| 100 99 | 
             
            ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES absl::base_internal::AtomicHook<void (*)(
         | 
| 101 | 
            -
                const char  | 
| 100 | 
            +
                const char* msg, const void* obj, int64_t wait_cycles)>
         | 
| 102 101 | 
             
                mutex_tracer;
         | 
| 103 102 | 
             
            ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES
         | 
| 104 | 
            -
             | 
| 105 | 
            -
             | 
| 106 | 
            -
            ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES absl::base_internal::AtomicHook<
         | 
| 107 | 
            -
                bool (*)(const void *pc, char *out, int out_size)>
         | 
| 108 | 
            -
                symbolizer(absl::Symbolize);
         | 
| 103 | 
            +
            absl::base_internal::AtomicHook<void (*)(const char* msg, const void* cv)>
         | 
| 104 | 
            +
                cond_var_tracer;
         | 
| 109 105 |  | 
| 110 106 | 
             
            }  // namespace
         | 
| 111 107 |  | 
| 112 | 
            -
            static inline bool EvalConditionAnnotated(const Condition  | 
| 108 | 
            +
            static inline bool EvalConditionAnnotated(const Condition* cond, Mutex* mu,
         | 
| 113 109 | 
             
                                                      bool locking, bool trylock,
         | 
| 114 110 | 
             
                                                      bool read_lock);
         | 
| 115 111 |  | 
| @@ -117,19 +113,15 @@ void RegisterMutexProfiler(void (*fn)(int64_t wait_cycles)) { | |
| 117 113 | 
             
              submit_profile_data.Store(fn);
         | 
| 118 114 | 
             
            }
         | 
| 119 115 |  | 
| 120 | 
            -
            void RegisterMutexTracer(void (*fn)(const char  | 
| 116 | 
            +
            void RegisterMutexTracer(void (*fn)(const char* msg, const void* obj,
         | 
| 121 117 | 
             
                                                int64_t wait_cycles)) {
         | 
| 122 118 | 
             
              mutex_tracer.Store(fn);
         | 
| 123 119 | 
             
            }
         | 
| 124 120 |  | 
| 125 | 
            -
            void RegisterCondVarTracer(void (*fn)(const char  | 
| 121 | 
            +
            void RegisterCondVarTracer(void (*fn)(const char* msg, const void* cv)) {
         | 
| 126 122 | 
             
              cond_var_tracer.Store(fn);
         | 
| 127 123 | 
             
            }
         | 
| 128 124 |  | 
| 129 | 
            -
            void RegisterSymbolizer(bool (*fn)(const void *pc, char *out, int out_size)) {
         | 
| 130 | 
            -
              symbolizer.Store(fn);
         | 
| 131 | 
            -
            }
         | 
| 132 | 
            -
             | 
| 133 125 | 
             
            namespace {
         | 
| 134 126 | 
             
            // Represents the strategy for spin and yield.
         | 
| 135 127 | 
             
            // See the comment in GetMutexGlobals() for more information.
         | 
| @@ -148,25 +140,24 @@ absl::Duration MeasureTimeToYield() { | |
| 148 140 | 
             
              return absl::Now() - before;
         | 
| 149 141 | 
             
            }
         | 
| 150 142 |  | 
| 151 | 
            -
            const MutexGlobals  | 
| 143 | 
            +
            const MutexGlobals& GetMutexGlobals() {
         | 
| 152 144 | 
             
              ABSL_CONST_INIT static MutexGlobals data;
         | 
| 153 145 | 
             
              absl::base_internal::LowLevelCallOnce(&data.once, [&]() {
         | 
| 154 | 
            -
                 | 
| 155 | 
            -
             | 
| 156 | 
            -
             | 
| 157 | 
            -
             | 
| 158 | 
            -
             | 
| 159 | 
            -
             | 
| 160 | 
            -
             | 
| 161 | 
            -
                // aggressive then spin many times before yielding.  If the mode is
         | 
| 162 | 
            -
                // gentle then spin only a few times before yielding.  Aggressive spinning
         | 
| 163 | 
            -
                // is used to ensure that an Unlock() call, which must get the spin lock
         | 
| 164 | 
            -
                // for any thread to make progress gets it without undue delay.
         | 
| 165 | 
            -
                if (num_cpus > 1) {
         | 
| 146 | 
            +
                if (absl::base_internal::NumCPUs() > 1) {
         | 
| 147 | 
            +
                  // If this is multiprocessor, allow spinning. If the mode is
         | 
| 148 | 
            +
                  // aggressive then spin many times before yielding. If the mode is
         | 
| 149 | 
            +
                  // gentle then spin only a few times before yielding. Aggressive spinning
         | 
| 150 | 
            +
                  // is used to ensure that an Unlock() call, which must get the spin lock
         | 
| 151 | 
            +
                  // for any thread to make progress gets it without undue delay.
         | 
| 152 | 
            +
                  data.spinloop_iterations = 1500;
         | 
| 166 153 | 
             
                  data.mutex_sleep_spins[AGGRESSIVE] = 5000;
         | 
| 167 154 | 
             
                  data.mutex_sleep_spins[GENTLE] = 250;
         | 
| 168 155 | 
             
                  data.mutex_sleep_time = absl::Microseconds(10);
         | 
| 169 156 | 
             
                } else {
         | 
| 157 | 
            +
                  // If this a uniprocessor, only yield/sleep. Real-time threads are often
         | 
| 158 | 
            +
                  // unable to yield, so the sleep time needs to be long enough to keep
         | 
| 159 | 
            +
                  // the calling thread asleep until scheduling happens.
         | 
| 160 | 
            +
                  data.spinloop_iterations = 0;
         | 
| 170 161 | 
             
                  data.mutex_sleep_spins[AGGRESSIVE] = 0;
         | 
| 171 162 | 
             
                  data.mutex_sleep_spins[GENTLE] = 0;
         | 
| 172 163 | 
             
                  data.mutex_sleep_time = MeasureTimeToYield() * 5;
         | 
| @@ -219,8 +210,7 @@ static void AtomicSetBits(std::atomic<intptr_t>* pv, intptr_t bits, | |
| 219 210 | 
             
                v = pv->load(std::memory_order_relaxed);
         | 
| 220 211 | 
             
              } while ((v & bits) != bits &&
         | 
| 221 212 | 
             
                       ((v & wait_until_clear) != 0 ||
         | 
| 222 | 
            -
                        !pv->compare_exchange_weak(v, v | bits,
         | 
| 223 | 
            -
                                                   std::memory_order_release,
         | 
| 213 | 
            +
                        !pv->compare_exchange_weak(v, v | bits, std::memory_order_release,
         | 
| 224 214 | 
             
                                                   std::memory_order_relaxed)));
         | 
| 225 215 | 
             
            }
         | 
| 226 216 |  | 
| @@ -235,8 +225,7 @@ static void AtomicClearBits(std::atomic<intptr_t>* pv, intptr_t bits, | |
| 235 225 | 
             
                v = pv->load(std::memory_order_relaxed);
         | 
| 236 226 | 
             
              } while ((v & bits) != 0 &&
         | 
| 237 227 | 
             
                       ((v & wait_until_clear) != 0 ||
         | 
| 238 | 
            -
                        !pv->compare_exchange_weak(v, v & ~bits,
         | 
| 239 | 
            -
                                                   std::memory_order_release,
         | 
| 228 | 
            +
                        !pv->compare_exchange_weak(v, v & ~bits, std::memory_order_release,
         | 
| 240 229 | 
             
                                                   std::memory_order_relaxed)));
         | 
| 241 230 | 
             
            }
         | 
| 242 231 |  | 
| @@ -247,7 +236,7 @@ ABSL_CONST_INIT static absl::base_internal::SpinLock deadlock_graph_mu( | |
| 247 236 | 
             
                absl::kConstInit, base_internal::SCHEDULE_KERNEL_ONLY);
         | 
| 248 237 |  | 
| 249 238 | 
             
            // Graph used to detect deadlocks.
         | 
| 250 | 
            -
            ABSL_CONST_INIT static GraphCycles  | 
| 239 | 
            +
            ABSL_CONST_INIT static GraphCycles* deadlock_graph
         | 
| 251 240 | 
             
                ABSL_GUARDED_BY(deadlock_graph_mu) ABSL_PT_GUARDED_BY(deadlock_graph_mu);
         | 
| 252 241 |  | 
| 253 242 | 
             
            //------------------------------------------------------------------
         | 
| @@ -291,7 +280,7 @@ enum {                    // Event flags | |
| 291 280 | 
             
            // Properties of the events.
         | 
| 292 281 | 
             
            static const struct {
         | 
| 293 282 | 
             
              int flags;
         | 
| 294 | 
            -
              const char  | 
| 283 | 
            +
              const char* msg;
         | 
| 295 284 | 
             
            } event_properties[] = {
         | 
| 296 285 | 
             
                {SYNCH_F_LCK_W | SYNCH_F_TRY, "TryLock succeeded "},
         | 
| 297 286 | 
             
                {0, "TryLock failed "},
         | 
| @@ -316,12 +305,12 @@ ABSL_CONST_INIT static absl::base_internal::SpinLock synch_event_mu( | |
| 316 305 | 
             
            // Can't be too small, as it's used for deadlock detection information.
         | 
| 317 306 | 
             
            static constexpr uint32_t kNSynchEvent = 1031;
         | 
| 318 307 |  | 
| 319 | 
            -
            static struct SynchEvent { | 
| 308 | 
            +
            static struct SynchEvent {  // this is a trivial hash table for the events
         | 
| 320 309 | 
             
              // struct is freed when refcount reaches 0
         | 
| 321 310 | 
             
              int refcount ABSL_GUARDED_BY(synch_event_mu);
         | 
| 322 311 |  | 
| 323 312 | 
             
              // buckets have linear, 0-terminated  chains
         | 
| 324 | 
            -
              SynchEvent  | 
| 313 | 
            +
              SynchEvent* next ABSL_GUARDED_BY(synch_event_mu);
         | 
| 325 314 |  | 
| 326 315 | 
             
              // Constant after initialization
         | 
| 327 316 | 
             
              uintptr_t masked_addr;  // object at this address is called "name"
         | 
| @@ -329,13 +318,13 @@ static struct SynchEvent {     // this is a trivial hash table for the events | |
| 329 318 | 
             
              // No explicit synchronization used.  Instead we assume that the
         | 
| 330 319 | 
             
              // client who enables/disables invariants/logging on a Mutex does so
         | 
| 331 320 | 
             
              // while the Mutex is not being concurrently accessed by others.
         | 
| 332 | 
            -
              void (*invariant)(void  | 
| 333 | 
            -
              void  | 
| 334 | 
            -
              bool log; | 
| 321 | 
            +
              void (*invariant)(void* arg);  // called on each event
         | 
| 322 | 
            +
              void* arg;                     // first arg to (*invariant)()
         | 
| 323 | 
            +
              bool log;                      // logging turned on
         | 
| 335 324 |  | 
| 336 325 | 
             
              // Constant after initialization
         | 
| 337 | 
            -
              char name[1]; | 
| 338 | 
            -
            } | 
| 326 | 
            +
              char name[1];  // actually longer---NUL-terminated string
         | 
| 327 | 
            +
            }* synch_event[kNSynchEvent] ABSL_GUARDED_BY(synch_event_mu);
         | 
| 339 328 |  | 
| 340 329 | 
             
            // Ensure that the object at "addr" has a SynchEvent struct associated with it,
         | 
| 341 330 | 
             
            // set "bits" in the word there (waiting until lockbit is clear before doing
         | 
| @@ -344,11 +333,11 @@ static struct SynchEvent {     // this is a trivial hash table for the events | |
| 344 333 | 
             
            // the string name is copied into it.
         | 
| 345 334 | 
             
            // When used with a mutex, the caller should also ensure that kMuEvent
         | 
| 346 335 | 
             
            // is set in the mutex word, and similarly for condition variables and kCVEvent.
         | 
| 347 | 
            -
            static SynchEvent  | 
| 348 | 
            -
                                                const char  | 
| 336 | 
            +
            static SynchEvent* EnsureSynchEvent(std::atomic<intptr_t>* addr,
         | 
| 337 | 
            +
                                                const char* name, intptr_t bits,
         | 
| 349 338 | 
             
                                                intptr_t lockbit) {
         | 
| 350 339 | 
             
              uint32_t h = reinterpret_cast<uintptr_t>(addr) % kNSynchEvent;
         | 
| 351 | 
            -
              SynchEvent  | 
| 340 | 
            +
              SynchEvent* e;
         | 
| 352 341 | 
             
              // first look for existing SynchEvent struct..
         | 
| 353 342 | 
             
              synch_event_mu.Lock();
         | 
| 354 343 | 
             
              for (e = synch_event[h];
         | 
| @@ -360,9 +349,9 @@ static SynchEvent *EnsureSynchEvent(std::atomic<intptr_t> *addr, | |
| 360 349 | 
             
                  name = "";
         | 
| 361 350 | 
             
                }
         | 
| 362 351 | 
             
                size_t l = strlen(name);
         | 
| 363 | 
            -
                e = reinterpret_cast<SynchEvent | 
| 352 | 
            +
                e = reinterpret_cast<SynchEvent*>(
         | 
| 364 353 | 
             
                    base_internal::LowLevelAlloc::Alloc(sizeof(*e) + l));
         | 
| 365 | 
            -
                e->refcount = 2; | 
| 354 | 
            +
                e->refcount = 2;  // one for return value, one for linked list
         | 
| 366 355 | 
             
                e->masked_addr = base_internal::HidePtr(addr);
         | 
| 367 356 | 
             
                e->invariant = nullptr;
         | 
| 368 357 | 
             
                e->arg = nullptr;
         | 
| @@ -372,19 +361,19 @@ static SynchEvent *EnsureSynchEvent(std::atomic<intptr_t> *addr, | |
| 372 361 | 
             
                AtomicSetBits(addr, bits, lockbit);
         | 
| 373 362 | 
             
                synch_event[h] = e;
         | 
| 374 363 | 
             
              } else {
         | 
| 375 | 
            -
                e->refcount++; | 
| 364 | 
            +
                e->refcount++;  // for return value
         | 
| 376 365 | 
             
              }
         | 
| 377 366 | 
             
              synch_event_mu.Unlock();
         | 
| 378 367 | 
             
              return e;
         | 
| 379 368 | 
             
            }
         | 
| 380 369 |  | 
| 381 370 | 
             
            // Deallocate the SynchEvent *e, whose refcount has fallen to zero.
         | 
| 382 | 
            -
            static void DeleteSynchEvent(SynchEvent  | 
| 371 | 
            +
            static void DeleteSynchEvent(SynchEvent* e) {
         | 
| 383 372 | 
             
              base_internal::LowLevelAlloc::Free(e);
         | 
| 384 373 | 
             
            }
         | 
| 385 374 |  | 
| 386 375 | 
             
            // Decrement the reference count of *e, or do nothing if e==null.
         | 
| 387 | 
            -
            static void UnrefSynchEvent(SynchEvent  | 
| 376 | 
            +
            static void UnrefSynchEvent(SynchEvent* e) {
         | 
| 388 377 | 
             
              if (e != nullptr) {
         | 
| 389 378 | 
             
                synch_event_mu.Lock();
         | 
| 390 379 | 
             
                bool del = (--(e->refcount) == 0);
         | 
| @@ -398,11 +387,11 @@ static void UnrefSynchEvent(SynchEvent *e) { | |
| 398 387 | 
             
            // Forget the mapping from the object (Mutex or CondVar) at address addr
         | 
| 399 388 | 
             
            // to SynchEvent object, and clear "bits" in its word (waiting until lockbit
         | 
| 400 389 | 
             
            // is clear before doing so).
         | 
| 401 | 
            -
            static void ForgetSynchEvent(std::atomic<intptr_t | 
| 390 | 
            +
            static void ForgetSynchEvent(std::atomic<intptr_t>* addr, intptr_t bits,
         | 
| 402 391 | 
             
                                         intptr_t lockbit) {
         | 
| 403 392 | 
             
              uint32_t h = reinterpret_cast<uintptr_t>(addr) % kNSynchEvent;
         | 
| 404 | 
            -
              SynchEvent  | 
| 405 | 
            -
              SynchEvent  | 
| 393 | 
            +
              SynchEvent** pe;
         | 
| 394 | 
            +
              SynchEvent* e;
         | 
| 406 395 | 
             
              synch_event_mu.Lock();
         | 
| 407 396 | 
             
              for (pe = &synch_event[h];
         | 
| 408 397 | 
             
                   (e = *pe) != nullptr && e->masked_addr != base_internal::HidePtr(addr);
         | 
| @@ -423,9 +412,9 @@ static void ForgetSynchEvent(std::atomic<intptr_t> *addr, intptr_t bits, | |
| 423 412 | 
             
            // Return a refcounted reference to the SynchEvent of the object at address
         | 
| 424 413 | 
             
            // "addr", if any.  The pointer returned is valid until the UnrefSynchEvent() is
         | 
| 425 414 | 
             
            // called.
         | 
| 426 | 
            -
            static SynchEvent  | 
| 415 | 
            +
            static SynchEvent* GetSynchEvent(const void* addr) {
         | 
| 427 416 | 
             
              uint32_t h = reinterpret_cast<uintptr_t>(addr) % kNSynchEvent;
         | 
| 428 | 
            -
              SynchEvent  | 
| 417 | 
            +
              SynchEvent* e;
         | 
| 429 418 | 
             
              synch_event_mu.Lock();
         | 
| 430 419 | 
             
              for (e = synch_event[h];
         | 
| 431 420 | 
             
                   e != nullptr && e->masked_addr != base_internal::HidePtr(addr);
         | 
| @@ -440,17 +429,17 @@ static SynchEvent *GetSynchEvent(const void *addr) { | |
| 440 429 |  | 
| 441 430 | 
             
            // Called when an event "ev" occurs on a Mutex of CondVar "obj"
         | 
| 442 431 | 
             
            // if event recording is on
         | 
| 443 | 
            -
            static void PostSynchEvent(void  | 
| 444 | 
            -
              SynchEvent  | 
| 432 | 
            +
            static void PostSynchEvent(void* obj, int ev) {
         | 
| 433 | 
            +
              SynchEvent* e = GetSynchEvent(obj);
         | 
| 445 434 | 
             
              // logging is on if event recording is on and either there's no event struct,
         | 
| 446 435 | 
             
              // or it explicitly says to log
         | 
| 447 436 | 
             
              if (e == nullptr || e->log) {
         | 
| 448 | 
            -
                void  | 
| 437 | 
            +
                void* pcs[40];
         | 
| 449 438 | 
             
                int n = absl::GetStackTrace(pcs, ABSL_ARRAYSIZE(pcs), 1);
         | 
| 450 439 | 
             
                // A buffer with enough space for the ASCII for all the PCs, even on a
         | 
| 451 440 | 
             
                // 64-bit machine.
         | 
| 452 441 | 
             
                char buffer[ABSL_ARRAYSIZE(pcs) * 24];
         | 
| 453 | 
            -
                int pos = snprintf(buffer, sizeof | 
| 442 | 
            +
                int pos = snprintf(buffer, sizeof(buffer), " @");
         | 
| 454 443 | 
             
                for (int i = 0; i != n; i++) {
         | 
| 455 444 | 
             
                  int b = snprintf(&buffer[pos], sizeof(buffer) - static_cast<size_t>(pos),
         | 
| 456 445 | 
             
                                   " %p", pcs[i]);
         | 
| @@ -472,13 +461,13 @@ static void PostSynchEvent(void *obj, int ev) { | |
| 472 461 | 
             
                // get false positive race reports later.
         | 
| 473 462 | 
             
                // Reuse EvalConditionAnnotated to properly call into user code.
         | 
| 474 463 | 
             
                struct local {
         | 
| 475 | 
            -
                  static bool pred(SynchEvent  | 
| 464 | 
            +
                  static bool pred(SynchEvent* ev) {
         | 
| 476 465 | 
             
                    (*ev->invariant)(ev->arg);
         | 
| 477 466 | 
             
                    return false;
         | 
| 478 467 | 
             
                  }
         | 
| 479 468 | 
             
                };
         | 
| 480 469 | 
             
                Condition cond(&local::pred, e);
         | 
| 481 | 
            -
                Mutex  | 
| 470 | 
            +
                Mutex* mu = static_cast<Mutex*>(obj);
         | 
| 482 471 | 
             
                const bool locking = (flags & SYNCH_F_UNLOCK) == 0;
         | 
| 483 472 | 
             
                const bool trylock = (flags & SYNCH_F_TRY) != 0;
         | 
| 484 473 | 
             
                const bool read_lock = (flags & SYNCH_F_R) != 0;
         | 
| @@ -504,32 +493,32 @@ static void PostSynchEvent(void *obj, int ev) { | |
| 504 493 | 
             
            // PerThreadSynch struct points at the most recent SynchWaitParams struct when
         | 
| 505 494 | 
             
            // the thread is on a Mutex's waiter queue.
         | 
| 506 495 | 
             
            struct SynchWaitParams {
         | 
| 507 | 
            -
              SynchWaitParams(Mutex::MuHow how_arg, const Condition  | 
| 508 | 
            -
                              KernelTimeout timeout_arg, Mutex  | 
| 509 | 
            -
                              PerThreadSynch  | 
| 510 | 
            -
                              std::atomic<intptr_t | 
| 496 | 
            +
              SynchWaitParams(Mutex::MuHow how_arg, const Condition* cond_arg,
         | 
| 497 | 
            +
                              KernelTimeout timeout_arg, Mutex* cvmu_arg,
         | 
| 498 | 
            +
                              PerThreadSynch* thread_arg,
         | 
| 499 | 
            +
                              std::atomic<intptr_t>* cv_word_arg)
         | 
| 511 500 | 
             
                  : how(how_arg),
         | 
| 512 501 | 
             
                    cond(cond_arg),
         | 
| 513 502 | 
             
                    timeout(timeout_arg),
         | 
| 514 503 | 
             
                    cvmu(cvmu_arg),
         | 
| 515 504 | 
             
                    thread(thread_arg),
         | 
| 516 505 | 
             
                    cv_word(cv_word_arg),
         | 
| 517 | 
            -
                    contention_start_cycles( | 
| 506 | 
            +
                    contention_start_cycles(CycleClock::Now()),
         | 
| 518 507 | 
             
                    should_submit_contention_data(false) {}
         | 
| 519 508 |  | 
| 520 509 | 
             
              const Mutex::MuHow how;  // How this thread needs to wait.
         | 
| 521 | 
            -
              const Condition  | 
| 522 | 
            -
             | 
| 523 | 
            -
             | 
| 510 | 
            +
              const Condition* cond;   // The condition that this thread is waiting for.
         | 
| 511 | 
            +
                                       // In Mutex, this field is set to zero if a timeout
         | 
| 512 | 
            +
                                       // expires.
         | 
| 524 513 | 
             
              KernelTimeout timeout;  // timeout expiry---absolute time
         | 
| 525 514 | 
             
                                      // In Mutex, this field is set to zero if a timeout
         | 
| 526 515 | 
             
                                      // expires.
         | 
| 527 | 
            -
              Mutex  | 
| 528 | 
            -
              PerThreadSynch  | 
| 516 | 
            +
              Mutex* const cvmu;      // used for transfer from cond var to mutex
         | 
| 517 | 
            +
              PerThreadSynch* const thread;  // thread that is waiting
         | 
| 529 518 |  | 
| 530 519 | 
             
              // If not null, thread should be enqueued on the CondVar whose state
         | 
| 531 520 | 
             
              // word is cv_word instead of queueing normally on the Mutex.
         | 
| 532 | 
            -
              std::atomic<intptr_t | 
| 521 | 
            +
              std::atomic<intptr_t>* cv_word;
         | 
| 533 522 |  | 
| 534 523 | 
             
              int64_t contention_start_cycles;  // Time (in cycles) when this thread started
         | 
| 535 524 | 
             
                                                // to contend for the mutex.
         | 
| @@ -537,12 +526,12 @@ struct SynchWaitParams { | |
| 537 526 | 
             
            };
         | 
| 538 527 |  | 
| 539 528 | 
             
            struct SynchLocksHeld {
         | 
| 540 | 
            -
              int n; | 
| 541 | 
            -
              bool overflow; | 
| 529 | 
            +
              int n;          // number of valid entries in locks[]
         | 
| 530 | 
            +
              bool overflow;  // true iff we overflowed the array at some point
         | 
| 542 531 | 
             
              struct {
         | 
| 543 | 
            -
                Mutex  | 
| 544 | 
            -
                int32_t count; | 
| 545 | 
            -
                GraphId id; | 
| 532 | 
            +
                Mutex* mu;      // lock acquired
         | 
| 533 | 
            +
                int32_t count;  // times acquired
         | 
| 534 | 
            +
                GraphId id;     // deadlock_graph id of acquired lock
         | 
| 546 535 | 
             
              } locks[40];
         | 
| 547 536 | 
             
              // If a thread overfills the array during deadlock detection, we
         | 
| 548 537 | 
             
              // continue, discarding information as needed.  If no overflow has
         | 
| @@ -552,11 +541,11 @@ struct SynchLocksHeld { | |
| 552 541 |  | 
| 553 542 | 
             
            // A sentinel value in lists that is not 0.
         | 
| 554 543 | 
             
            // A 0 value is used to mean "not on a list".
         | 
| 555 | 
            -
            static PerThreadSynch  | 
| 556 | 
            -
             | 
| 544 | 
            +
            static PerThreadSynch* const kPerThreadSynchNull =
         | 
| 545 | 
            +
                reinterpret_cast<PerThreadSynch*>(1);
         | 
| 557 546 |  | 
| 558 | 
            -
            static SynchLocksHeld  | 
| 559 | 
            -
              SynchLocksHeld  | 
| 547 | 
            +
            static SynchLocksHeld* LocksHeldAlloc() {
         | 
| 548 | 
            +
              SynchLocksHeld* ret = reinterpret_cast<SynchLocksHeld*>(
         | 
| 560 549 | 
             
                  base_internal::LowLevelAlloc::Alloc(sizeof(SynchLocksHeld)));
         | 
| 561 550 | 
             
              ret->n = 0;
         | 
| 562 551 | 
             
              ret->overflow = false;
         | 
| @@ -564,24 +553,24 @@ static SynchLocksHeld *LocksHeldAlloc() { | |
| 564 553 | 
             
            }
         | 
| 565 554 |  | 
| 566 555 | 
             
            // Return the PerThreadSynch-struct for this thread.
         | 
| 567 | 
            -
            static PerThreadSynch  | 
| 568 | 
            -
              ThreadIdentity  | 
| 556 | 
            +
            static PerThreadSynch* Synch_GetPerThread() {
         | 
| 557 | 
            +
              ThreadIdentity* identity = GetOrCreateCurrentThreadIdentity();
         | 
| 569 558 | 
             
              return &identity->per_thread_synch;
         | 
| 570 559 | 
             
            }
         | 
| 571 560 |  | 
| 572 | 
            -
            static PerThreadSynch  | 
| 561 | 
            +
            static PerThreadSynch* Synch_GetPerThreadAnnotated(Mutex* mu) {
         | 
| 573 562 | 
             
              if (mu) {
         | 
| 574 563 | 
             
                ABSL_TSAN_MUTEX_PRE_DIVERT(mu, 0);
         | 
| 575 564 | 
             
              }
         | 
| 576 | 
            -
              PerThreadSynch  | 
| 565 | 
            +
              PerThreadSynch* w = Synch_GetPerThread();
         | 
| 577 566 | 
             
              if (mu) {
         | 
| 578 567 | 
             
                ABSL_TSAN_MUTEX_POST_DIVERT(mu, 0);
         | 
| 579 568 | 
             
              }
         | 
| 580 569 | 
             
              return w;
         | 
| 581 570 | 
             
            }
         | 
| 582 571 |  | 
| 583 | 
            -
            static SynchLocksHeld  | 
| 584 | 
            -
              PerThreadSynch  | 
| 572 | 
            +
            static SynchLocksHeld* Synch_GetAllLocks() {
         | 
| 573 | 
            +
              PerThreadSynch* s = Synch_GetPerThread();
         | 
| 585 574 | 
             
              if (s->all_locks == nullptr) {
         | 
| 586 575 | 
             
                s->all_locks = LocksHeldAlloc();  // Freed by ReclaimThreadIdentity.
         | 
| 587 576 | 
             
              }
         | 
| @@ -589,7 +578,7 @@ static SynchLocksHeld *Synch_GetAllLocks() { | |
| 589 578 | 
             
            }
         | 
| 590 579 |  | 
| 591 580 | 
             
            // Post on "w"'s associated PerThreadSem.
         | 
| 592 | 
            -
            void Mutex::IncrementSynchSem(Mutex  | 
| 581 | 
            +
            void Mutex::IncrementSynchSem(Mutex* mu, PerThreadSynch* w) {
         | 
| 593 582 | 
             
              if (mu) {
         | 
| 594 583 | 
             
                ABSL_TSAN_MUTEX_PRE_DIVERT(mu, 0);
         | 
| 595 584 | 
             
                // We miss synchronization around passing PerThreadSynch between threads
         | 
| @@ -605,7 +594,7 @@ void Mutex::IncrementSynchSem(Mutex *mu, PerThreadSynch *w) { | |
| 605 594 | 
             
            }
         | 
| 606 595 |  | 
| 607 596 | 
             
            // Wait on "w"'s associated PerThreadSem; returns false if timeout expired.
         | 
| 608 | 
            -
            bool Mutex::DecrementSynchSem(Mutex  | 
| 597 | 
            +
            bool Mutex::DecrementSynchSem(Mutex* mu, PerThreadSynch* w, KernelTimeout t) {
         | 
| 609 598 | 
             
              if (mu) {
         | 
| 610 599 | 
             
                ABSL_TSAN_MUTEX_PRE_DIVERT(mu, 0);
         | 
| 611 600 | 
             
              }
         | 
| @@ -626,7 +615,7 @@ bool Mutex::DecrementSynchSem(Mutex *mu, PerThreadSynch *w, KernelTimeout t) { | |
| 626 615 | 
             
            // Mutex code checking that the "waitp" field has not been reused.
         | 
| 627 616 | 
             
            void Mutex::InternalAttemptToUseMutexInFatalSignalHandler() {
         | 
| 628 617 | 
             
              // Fix the per-thread state only if it exists.
         | 
| 629 | 
            -
              ThreadIdentity  | 
| 618 | 
            +
              ThreadIdentity* identity = CurrentThreadIdentityIfPresent();
         | 
| 630 619 | 
             
              if (identity != nullptr) {
         | 
| 631 620 | 
             
                identity->per_thread_synch.suppress_fatal_errors = true;
         | 
| 632 621 | 
             
              }
         | 
| @@ -635,21 +624,6 @@ void Mutex::InternalAttemptToUseMutexInFatalSignalHandler() { | |
| 635 624 | 
             
                                             std::memory_order_release);
         | 
| 636 625 | 
             
            }
         | 
| 637 626 |  | 
| 638 | 
            -
            // --------------------------time support
         | 
| 639 | 
            -
             | 
| 640 | 
            -
            // Return the current time plus the timeout.  Use the same clock as
         | 
| 641 | 
            -
            // PerThreadSem::Wait() for consistency.  Unfortunately, we don't have
         | 
| 642 | 
            -
            // such a choice when a deadline is given directly.
         | 
| 643 | 
            -
            static absl::Time DeadlineFromTimeout(absl::Duration timeout) {
         | 
| 644 | 
            -
            #ifndef _WIN32
         | 
| 645 | 
            -
              struct timeval tv;
         | 
| 646 | 
            -
              gettimeofday(&tv, nullptr);
         | 
| 647 | 
            -
              return absl::TimeFromTimeval(tv) + timeout;
         | 
| 648 | 
            -
            #else
         | 
| 649 | 
            -
              return absl::Now() + timeout;
         | 
| 650 | 
            -
            #endif
         | 
| 651 | 
            -
            }
         | 
| 652 | 
            -
             | 
| 653 627 | 
             
            // --------------------------Mutexes
         | 
| 654 628 |  | 
| 655 629 | 
             
            // In the layout below, the msb of the bottom byte is currently unused.  Also,
         | 
| @@ -660,24 +634,29 @@ static absl::Time DeadlineFromTimeout(absl::Duration timeout) { | |
| 660 634 | 
             
            //    bit-twiddling trick in Mutex::Unlock().
         | 
| 661 635 | 
             
            //  o kMuWriter / kMuReader == kMuWrWait / kMuWait,
         | 
| 662 636 | 
             
            //    to enable the bit-twiddling trick in CheckForMutexCorruption().
         | 
| 663 | 
            -
            static const intptr_t kMuReader | 
| 664 | 
            -
             | 
| 665 | 
            -
            static const intptr_t kMuWait        = 0x0004L;  // threads are waiting
         | 
| 666 | 
            -
            static const intptr_t kMuWriter      = 0x0008L;  // a writer holds the lock
         | 
| 667 | 
            -
            static const intptr_t kMuEvent       = 0x0010L;  // record this mutex's events
         | 
| 637 | 
            +
            static const intptr_t kMuReader = 0x0001L;  // a reader holds the lock
         | 
| 638 | 
            +
            // There's a designated waker.
         | 
| 668 639 | 
             
            // INVARIANT1:  there's a thread that was blocked on the mutex, is
         | 
| 669 640 | 
             
            // no longer, yet has not yet acquired the mutex.  If there's a
         | 
| 670 641 | 
             
            // designated waker, all threads can avoid taking the slow path in
         | 
| 671 642 | 
             
            // unlock because the designated waker will subsequently acquire
         | 
| 672 643 | 
             
            // the lock and wake someone.  To maintain INVARIANT1 the bit is
         | 
| 673 644 | 
             
            // set when a thread is unblocked(INV1a), and threads that were
         | 
| 674 | 
            -
            // unblocked reset the bit when they either acquire or re-block
         | 
| 675 | 
            -
             | 
| 676 | 
            -
            static const intptr_t  | 
| 677 | 
            -
             | 
| 678 | 
            -
            static const intptr_t  | 
| 679 | 
            -
             | 
| 680 | 
            -
             | 
| 645 | 
            +
            // unblocked reset the bit when they either acquire or re-block (INV1b).
         | 
| 646 | 
            +
            static const intptr_t kMuDesig = 0x0002L;
         | 
| 647 | 
            +
            static const intptr_t kMuWait = 0x0004L;    // threads are waiting
         | 
| 648 | 
            +
            static const intptr_t kMuWriter = 0x0008L;  // a writer holds the lock
         | 
| 649 | 
            +
            static const intptr_t kMuEvent = 0x0010L;   // record this mutex's events
         | 
| 650 | 
            +
            // Runnable writer is waiting for a reader.
         | 
| 651 | 
            +
            // If set, new readers will not lock the mutex to avoid writer starvation.
         | 
| 652 | 
            +
            // Note: if a reader has higher priority than the writer, it will still lock
         | 
| 653 | 
            +
            // the mutex ahead of the waiting writer, but in a very inefficient manner:
         | 
| 654 | 
            +
            // the reader will first queue itself and block, but then the last unlocking
         | 
| 655 | 
            +
            // reader will wake it.
         | 
| 656 | 
            +
            static const intptr_t kMuWrWait = 0x0020L;
         | 
| 657 | 
            +
            static const intptr_t kMuSpin = 0x0040L;  // spinlock protects wait list
         | 
| 658 | 
            +
            static const intptr_t kMuLow = 0x00ffL;   // mask all mutex bits
         | 
| 659 | 
            +
            static const intptr_t kMuHigh = ~kMuLow;  // mask pointer/reader count
         | 
| 681 660 |  | 
| 682 661 | 
             
            // Hack to make constant values available to gdb pretty printer
         | 
| 683 662 | 
             
            enum {
         | 
| @@ -773,8 +752,8 @@ Mutex::~Mutex() { | |
| 773 752 | 
             
              ABSL_TSAN_MUTEX_DESTROY(this, __tsan_mutex_not_static);
         | 
| 774 753 | 
             
            }
         | 
| 775 754 |  | 
| 776 | 
            -
            void Mutex::EnableDebugLog(const char  | 
| 777 | 
            -
              SynchEvent  | 
| 755 | 
            +
            void Mutex::EnableDebugLog(const char* name) {
         | 
| 756 | 
            +
              SynchEvent* e = EnsureSynchEvent(&this->mu_, name, kMuEvent, kMuSpin);
         | 
| 778 757 | 
             
              e->log = true;
         | 
| 779 758 | 
             
              UnrefSynchEvent(e);
         | 
| 780 759 | 
             
            }
         | 
| @@ -783,11 +762,10 @@ void EnableMutexInvariantDebugging(bool enabled) { | |
| 783 762 | 
             
              synch_check_invariants.store(enabled, std::memory_order_release);
         | 
| 784 763 | 
             
            }
         | 
| 785 764 |  | 
| 786 | 
            -
            void Mutex::EnableInvariantDebugging(void (*invariant)(void *) | 
| 787 | 
            -
                                                 void *arg) {
         | 
| 765 | 
            +
            void Mutex::EnableInvariantDebugging(void (*invariant)(void*), void* arg) {
         | 
| 788 766 | 
             
              if (synch_check_invariants.load(std::memory_order_acquire) &&
         | 
| 789 767 | 
             
                  invariant != nullptr) {
         | 
| 790 | 
            -
                SynchEvent  | 
| 768 | 
            +
                SynchEvent* e = EnsureSynchEvent(&this->mu_, nullptr, kMuEvent, kMuSpin);
         | 
| 791 769 | 
             
                e->invariant = invariant;
         | 
| 792 770 | 
             
                e->arg = arg;
         | 
| 793 771 | 
             
                UnrefSynchEvent(e);
         | 
| @@ -803,15 +781,15 @@ void SetMutexDeadlockDetectionMode(OnDeadlockCycle mode) { | |
| 803 781 | 
             
            // waiters with the same condition, type of lock, and thread priority.
         | 
| 804 782 | 
             
            //
         | 
| 805 783 | 
             
            // Requires that x and y be waiting on the same Mutex queue.
         | 
| 806 | 
            -
            static bool MuEquivalentWaiter(PerThreadSynch  | 
| 784 | 
            +
            static bool MuEquivalentWaiter(PerThreadSynch* x, PerThreadSynch* y) {
         | 
| 807 785 | 
             
              return x->waitp->how == y->waitp->how && x->priority == y->priority &&
         | 
| 808 786 | 
             
                     Condition::GuaranteedEqual(x->waitp->cond, y->waitp->cond);
         | 
| 809 787 | 
             
            }
         | 
| 810 788 |  | 
| 811 789 | 
             
            // Given the contents of a mutex word containing a PerThreadSynch pointer,
         | 
| 812 790 | 
             
            // return the pointer.
         | 
| 813 | 
            -
            static inline PerThreadSynch  | 
| 814 | 
            -
              return reinterpret_cast<PerThreadSynch | 
| 791 | 
            +
            static inline PerThreadSynch* GetPerThreadSynch(intptr_t v) {
         | 
| 792 | 
            +
              return reinterpret_cast<PerThreadSynch*>(v & kMuHigh);
         | 
| 815 793 | 
             
            }
         | 
| 816 794 |  | 
| 817 795 | 
             
            // The next several routines maintain the per-thread next and skip fields
         | 
| @@ -869,17 +847,17 @@ static inline PerThreadSynch *GetPerThreadSynch(intptr_t v) { | |
| 869 847 | 
             
            // except those in the added node and the former "head" node.  This implies
         | 
| 870 848 | 
             
            // that the new node is added after head, and so must be the new head or the
         | 
| 871 849 | 
             
            // new front of the queue.
         | 
| 872 | 
            -
            static PerThreadSynch  | 
| 873 | 
            -
              PerThreadSynch  | 
| 874 | 
            -
              PerThreadSynch  | 
| 875 | 
            -
              PerThreadSynch  | 
| 850 | 
            +
            static PerThreadSynch* Skip(PerThreadSynch* x) {
         | 
| 851 | 
            +
              PerThreadSynch* x0 = nullptr;
         | 
| 852 | 
            +
              PerThreadSynch* x1 = x;
         | 
| 853 | 
            +
              PerThreadSynch* x2 = x->skip;
         | 
| 876 854 | 
             
              if (x2 != nullptr) {
         | 
| 877 855 | 
             
                // Each iteration attempts to advance sequence (x0,x1,x2) to next sequence
         | 
| 878 856 | 
             
                // such that   x1 == x0->skip && x2 == x1->skip
         | 
| 879 857 | 
             
                while ((x0 = x1, x1 = x2, x2 = x2->skip) != nullptr) {
         | 
| 880 | 
            -
                  x0->skip = x2; | 
| 858 | 
            +
                  x0->skip = x2;  // short-circuit skip from x0 to x2
         | 
| 881 859 | 
             
                }
         | 
| 882 | 
            -
                x->skip = x1; | 
| 860 | 
            +
                x->skip = x1;  // short-circuit skip from x to result
         | 
| 883 861 | 
             
              }
         | 
| 884 862 | 
             
              return x1;
         | 
| 885 863 | 
             
            }
         | 
| @@ -888,7 +866,7 @@ static PerThreadSynch *Skip(PerThreadSynch *x) { | |
| 888 866 | 
             
            // The latter is going to be removed out of order, because of a timeout.
         | 
| 889 867 | 
             
            // Check whether "ancestor" has a skip field pointing to "to_be_removed",
         | 
| 890 868 | 
             
            // and fix it if it does.
         | 
| 891 | 
            -
            static void FixSkip(PerThreadSynch  | 
| 869 | 
            +
            static void FixSkip(PerThreadSynch* ancestor, PerThreadSynch* to_be_removed) {
         | 
| 892 870 | 
             
              if (ancestor->skip == to_be_removed) {  // ancestor->skip left dangling
         | 
| 893 871 | 
             
                if (to_be_removed->skip != nullptr) {
         | 
| 894 872 | 
             
                  ancestor->skip = to_be_removed->skip;  // can skip past to_be_removed
         | 
| @@ -900,7 +878,7 @@ static void FixSkip(PerThreadSynch *ancestor, PerThreadSynch *to_be_removed) { | |
| 900 878 | 
             
              }
         | 
| 901 879 | 
             
            }
         | 
| 902 880 |  | 
| 903 | 
            -
            static void CondVarEnqueue(SynchWaitParams  | 
| 881 | 
            +
            static void CondVarEnqueue(SynchWaitParams* waitp);
         | 
| 904 882 |  | 
| 905 883 | 
             
            // Enqueue thread "waitp->thread" on a waiter queue.
         | 
| 906 884 | 
             
            // Called with mutex spinlock held if head != nullptr
         | 
| @@ -921,8 +899,8 @@ static void CondVarEnqueue(SynchWaitParams *waitp); | |
| 921 899 | 
             
            // returned. This mechanism is used by CondVar to queue a thread on the
         | 
| 922 900 | 
             
            // condition variable queue instead of the mutex queue in implementing Wait().
         | 
| 923 901 | 
             
            // In this case, Enqueue() can return nullptr (if head==nullptr).
         | 
| 924 | 
            -
            static PerThreadSynch  | 
| 925 | 
            -
                                            | 
| 902 | 
            +
            static PerThreadSynch* Enqueue(PerThreadSynch* head, SynchWaitParams* waitp,
         | 
| 903 | 
            +
                                           intptr_t mu, int flags) {
         | 
| 926 904 | 
             
              // If we have been given a cv_word, call CondVarEnqueue() and return
         | 
| 927 905 | 
             
              // the previous head of the Mutex waiter queue.
         | 
| 928 906 | 
             
              if (waitp->cv_word != nullptr) {
         | 
| @@ -930,42 +908,43 @@ static PerThreadSynch *Enqueue(PerThreadSynch *head, | |
| 930 908 | 
             
                return head;
         | 
| 931 909 | 
             
              }
         | 
| 932 910 |  | 
| 933 | 
            -
              PerThreadSynch  | 
| 911 | 
            +
              PerThreadSynch* s = waitp->thread;
         | 
| 934 912 | 
             
              ABSL_RAW_CHECK(
         | 
| 935 913 | 
             
                  s->waitp == nullptr ||    // normal case
         | 
| 936 914 | 
             
                      s->waitp == waitp ||  // Fer()---transfer from condition variable
         | 
| 937 915 | 
             
                      s->suppress_fatal_errors,
         | 
| 938 916 | 
             
                  "detected illegal recursion into Mutex code");
         | 
| 939 917 | 
             
              s->waitp = waitp;
         | 
| 940 | 
            -
              s->skip = nullptr; | 
| 941 | 
            -
              s->may_skip = true; | 
| 942 | 
            -
              s->wake = false; | 
| 918 | 
            +
              s->skip = nullptr;   // maintain skip invariant (see above)
         | 
| 919 | 
            +
              s->may_skip = true;  // always true on entering queue
         | 
| 920 | 
            +
              s->wake = false;     // not being woken
         | 
| 943 921 | 
             
              s->cond_waiter = ((flags & kMuIsCond) != 0);
         | 
| 922 | 
            +
            #ifdef ABSL_HAVE_PTHREAD_GETSCHEDPARAM
         | 
| 923 | 
            +
              int64_t now_cycles = CycleClock::Now();
         | 
| 924 | 
            +
              if (s->next_priority_read_cycles < now_cycles) {
         | 
| 925 | 
            +
                // Every so often, update our idea of the thread's priority.
         | 
| 926 | 
            +
                // pthread_getschedparam() is 5% of the block/wakeup time;
         | 
| 927 | 
            +
                // CycleClock::Now() is 0.5%.
         | 
| 928 | 
            +
                int policy;
         | 
| 929 | 
            +
                struct sched_param param;
         | 
| 930 | 
            +
                const int err = pthread_getschedparam(pthread_self(), &policy, ¶m);
         | 
| 931 | 
            +
                if (err != 0) {
         | 
| 932 | 
            +
                  ABSL_RAW_LOG(ERROR, "pthread_getschedparam failed: %d", err);
         | 
| 933 | 
            +
                } else {
         | 
| 934 | 
            +
                  s->priority = param.sched_priority;
         | 
| 935 | 
            +
                  s->next_priority_read_cycles =
         | 
| 936 | 
            +
                      now_cycles + static_cast<int64_t>(CycleClock::Frequency());
         | 
| 937 | 
            +
                }
         | 
| 938 | 
            +
              }
         | 
| 939 | 
            +
            #endif
         | 
| 944 940 | 
             
              if (head == nullptr) {         // s is the only waiter
         | 
| 945 941 | 
             
                s->next = s;                 // it's the only entry in the cycle
         | 
| 946 942 | 
             
                s->readers = mu;             // reader count is from mu word
         | 
| 947 943 | 
             
                s->maybe_unlocking = false;  // no one is searching an empty list
         | 
| 948 944 | 
             
                head = s;                    // s is new head
         | 
| 949 945 | 
             
              } else {
         | 
| 950 | 
            -
                PerThreadSynch  | 
| 946 | 
            +
                PerThreadSynch* enqueue_after = nullptr;  // we'll put s after this element
         | 
| 951 947 | 
             
            #ifdef ABSL_HAVE_PTHREAD_GETSCHEDPARAM
         | 
| 952 | 
            -
                int64_t now_cycles = base_internal::CycleClock::Now();
         | 
| 953 | 
            -
                if (s->next_priority_read_cycles < now_cycles) {
         | 
| 954 | 
            -
                  // Every so often, update our idea of the thread's priority.
         | 
| 955 | 
            -
                  // pthread_getschedparam() is 5% of the block/wakeup time;
         | 
| 956 | 
            -
                  // base_internal::CycleClock::Now() is 0.5%.
         | 
| 957 | 
            -
                  int policy;
         | 
| 958 | 
            -
                  struct sched_param param;
         | 
| 959 | 
            -
                  const int err = pthread_getschedparam(pthread_self(), &policy, ¶m);
         | 
| 960 | 
            -
                  if (err != 0) {
         | 
| 961 | 
            -
                    ABSL_RAW_LOG(ERROR, "pthread_getschedparam failed: %d", err);
         | 
| 962 | 
            -
                  } else {
         | 
| 963 | 
            -
                    s->priority = param.sched_priority;
         | 
| 964 | 
            -
                    s->next_priority_read_cycles =
         | 
| 965 | 
            -
                        now_cycles +
         | 
| 966 | 
            -
                        static_cast<int64_t>(base_internal::CycleClock::Frequency());
         | 
| 967 | 
            -
                  }
         | 
| 968 | 
            -
                }
         | 
| 969 948 | 
             
                if (s->priority > head->priority) {  // s's priority is above head's
         | 
| 970 949 | 
             
                  // try to put s in priority-fifo order, or failing that at the front.
         | 
| 971 950 | 
             
                  if (!head->maybe_unlocking) {
         | 
| @@ -975,20 +954,20 @@ static PerThreadSynch *Enqueue(PerThreadSynch *head, | |
| 975 954 | 
             
                    // Within a skip chain, all waiters have the same priority, so we can
         | 
| 976 955 | 
             
                    // skip forward through the chains until we find one with a lower
         | 
| 977 956 | 
             
                    // priority than the waiter to be enqueued.
         | 
| 978 | 
            -
                    PerThreadSynch  | 
| 957 | 
            +
                    PerThreadSynch* advance_to = head;  // next value of enqueue_after
         | 
| 979 958 | 
             
                    do {
         | 
| 980 959 | 
             
                      enqueue_after = advance_to;
         | 
| 981 960 | 
             
                      // (side-effect: optimizes skip chain)
         | 
| 982 961 | 
             
                      advance_to = Skip(enqueue_after->next);
         | 
| 983 962 | 
             
                    } while (s->priority <= advance_to->priority);
         | 
| 984 | 
            -
             | 
| 985 | 
            -
             | 
| 963 | 
            +
                    // termination guaranteed because s->priority > head->priority
         | 
| 964 | 
            +
                    // and head is the end of a skip chain
         | 
| 986 965 | 
             
                  } else if (waitp->how == kExclusive &&
         | 
| 987 966 | 
             
                             Condition::GuaranteedEqual(waitp->cond, nullptr)) {
         | 
| 988 967 | 
             
                    // An unlocker could be scanning the queue, but we know it will recheck
         | 
| 989 968 | 
             
                    // the queue front for writers that have no condition, which is what s
         | 
| 990 969 | 
             
                    // is, so an insert at front is safe.
         | 
| 991 | 
            -
                    enqueue_after = head; | 
| 970 | 
            +
                    enqueue_after = head;  // add after head, at front
         | 
| 992 971 | 
             
                  }
         | 
| 993 972 | 
             
                }
         | 
| 994 973 | 
             
            #endif
         | 
| @@ -1013,12 +992,12 @@ static PerThreadSynch *Enqueue(PerThreadSynch *head, | |
| 1013 992 | 
             
                    enqueue_after->skip = enqueue_after->next;
         | 
| 1014 993 | 
             
                  }
         | 
| 1015 994 | 
             
                  if (MuEquivalentWaiter(s, s->next)) {  // s->may_skip is known to be true
         | 
| 1016 | 
            -
                    s->skip = s->next; | 
| 995 | 
            +
                    s->skip = s->next;                   // s may skip to its successor
         | 
| 1017 996 | 
             
                  }
         | 
| 1018 | 
            -
                } else { | 
| 1019 | 
            -
             | 
| 997 | 
            +
                } else {  // enqueue not done any other way, so
         | 
| 998 | 
            +
                          // we're inserting s at the back
         | 
| 1020 999 | 
             
                  // s will become new head; copy data from head into it
         | 
| 1021 | 
            -
                  s->next = head->next; | 
| 1000 | 
            +
                  s->next = head->next;  // add s after head
         | 
| 1022 1001 | 
             
                  head->next = s;
         | 
| 1023 1002 | 
             
                  s->readers = head->readers;  // reader count is from previous head
         | 
| 1024 1003 | 
             
                  s->maybe_unlocking = head->maybe_unlocking;  // same for unlock hint
         | 
| @@ -1037,17 +1016,17 @@ static PerThreadSynch *Enqueue(PerThreadSynch *head, | |
| 1037 1016 | 
             
            // whose last element is head.  The new head element is returned, or null
         | 
| 1038 1017 | 
             
            // if the list is made empty.
         | 
| 1039 1018 | 
             
            // Dequeue is called with both spinlock and Mutex held.
         | 
| 1040 | 
            -
            static PerThreadSynch  | 
| 1041 | 
            -
              PerThreadSynch  | 
| 1042 | 
            -
              pw->next = w->next; | 
| 1043 | 
            -
              if (head == w) { | 
| 1019 | 
            +
            static PerThreadSynch* Dequeue(PerThreadSynch* head, PerThreadSynch* pw) {
         | 
| 1020 | 
            +
              PerThreadSynch* w = pw->next;
         | 
| 1021 | 
            +
              pw->next = w->next;                 // snip w out of list
         | 
| 1022 | 
            +
              if (head == w) {                    // we removed the head
         | 
| 1044 1023 | 
             
                head = (pw == w) ? nullptr : pw;  // either emptied list, or pw is new head
         | 
| 1045 1024 | 
             
              } else if (pw != head && MuEquivalentWaiter(pw, pw->next)) {
         | 
| 1046 1025 | 
             
                // pw can skip to its new successor
         | 
| 1047 1026 | 
             
                if (pw->next->skip !=
         | 
| 1048 1027 | 
             
                    nullptr) {  // either skip to its successors skip target
         | 
| 1049 1028 | 
             
                  pw->skip = pw->next->skip;
         | 
| 1050 | 
            -
                } else { | 
| 1029 | 
            +
                } else {  // or to pw's successor
         | 
| 1051 1030 | 
             
                  pw->skip = pw->next;
         | 
| 1052 1031 | 
             
                }
         | 
| 1053 1032 | 
             
              }
         | 
| @@ -1060,27 +1039,27 @@ static PerThreadSynch *Dequeue(PerThreadSynch *head, PerThreadSynch *pw) { | |
| 1060 1039 | 
             
            // singly-linked list wake_list in the order found.   Assumes that
         | 
| 1061 1040 | 
             
            // there is only one such element if the element has how == kExclusive.
         | 
| 1062 1041 | 
             
            // Return the new head.
         | 
| 1063 | 
            -
            static PerThreadSynch  | 
| 1064 | 
            -
                                                      PerThreadSynch  | 
| 1065 | 
            -
                                                      PerThreadSynch  | 
| 1066 | 
            -
              PerThreadSynch  | 
| 1067 | 
            -
              PerThreadSynch  | 
| 1042 | 
            +
            static PerThreadSynch* DequeueAllWakeable(PerThreadSynch* head,
         | 
| 1043 | 
            +
                                                      PerThreadSynch* pw,
         | 
| 1044 | 
            +
                                                      PerThreadSynch** wake_tail) {
         | 
| 1045 | 
            +
              PerThreadSynch* orig_h = head;
         | 
| 1046 | 
            +
              PerThreadSynch* w = pw->next;
         | 
| 1068 1047 | 
             
              bool skipped = false;
         | 
| 1069 1048 | 
             
              do {
         | 
| 1070 | 
            -
                if (w->wake) { | 
| 1049 | 
            +
                if (w->wake) {  // remove this element
         | 
| 1071 1050 | 
             
                  ABSL_RAW_CHECK(pw->skip == nullptr, "bad skip in DequeueAllWakeable");
         | 
| 1072 1051 | 
             
                  // we're removing pw's successor so either pw->skip is zero or we should
         | 
| 1073 1052 | 
             
                  // already have removed pw since if pw->skip!=null, pw has the same
         | 
| 1074 1053 | 
             
                  // condition as w.
         | 
| 1075 1054 | 
             
                  head = Dequeue(head, pw);
         | 
| 1076 | 
            -
                  w->next = *wake_tail; | 
| 1077 | 
            -
                  *wake_tail = w; | 
| 1078 | 
            -
                  wake_tail = &w->next; | 
| 1055 | 
            +
                  w->next = *wake_tail;               // keep list terminated
         | 
| 1056 | 
            +
                  *wake_tail = w;                     // add w to wake_list;
         | 
| 1057 | 
            +
                  wake_tail = &w->next;               // next addition to end
         | 
| 1079 1058 | 
             
                  if (w->waitp->how == kExclusive) {  // wake at most 1 writer
         | 
| 1080 1059 | 
             
                    break;
         | 
| 1081 1060 | 
             
                  }
         | 
| 1082 | 
            -
                } else { | 
| 1083 | 
            -
                  pw = Skip(w); | 
| 1061 | 
            +
                } else {         // not waking this one; skip
         | 
| 1062 | 
            +
                  pw = Skip(w);  // skip as much as possible
         | 
| 1084 1063 | 
             
                  skipped = true;
         | 
| 1085 1064 | 
             
                }
         | 
| 1086 1065 | 
             
                w = pw->next;
         | 
| @@ -1098,7 +1077,7 @@ static PerThreadSynch *DequeueAllWakeable(PerThreadSynch *head, | |
| 1098 1077 |  | 
| 1099 1078 | 
             
            // Try to remove thread s from the list of waiters on this mutex.
         | 
| 1100 1079 | 
             
            // Does nothing if s is not on the waiter list.
         | 
| 1101 | 
            -
            void Mutex::TryRemove(PerThreadSynch  | 
| 1080 | 
            +
            void Mutex::TryRemove(PerThreadSynch* s) {
         | 
| 1102 1081 | 
             
              SchedulingGuard::ScopedDisable disable_rescheduling;
         | 
| 1103 1082 | 
             
              intptr_t v = mu_.load(std::memory_order_relaxed);
         | 
| 1104 1083 | 
             
              // acquire spinlock & lock
         | 
| @@ -1106,16 +1085,16 @@ void Mutex::TryRemove(PerThreadSynch *s) { | |
| 1106 1085 | 
             
                  mu_.compare_exchange_strong(v, v | kMuSpin | kMuWriter,
         | 
| 1107 1086 | 
             
                                              std::memory_order_acquire,
         | 
| 1108 1087 | 
             
                                              std::memory_order_relaxed)) {
         | 
| 1109 | 
            -
                PerThreadSynch  | 
| 1088 | 
            +
                PerThreadSynch* h = GetPerThreadSynch(v);
         | 
| 1110 1089 | 
             
                if (h != nullptr) {
         | 
| 1111 | 
            -
                  PerThreadSynch  | 
| 1112 | 
            -
                  PerThreadSynch  | 
| 1090 | 
            +
                  PerThreadSynch* pw = h;  // pw is w's predecessor
         | 
| 1091 | 
            +
                  PerThreadSynch* w;
         | 
| 1113 1092 | 
             
                  if ((w = pw->next) != s) {  // search for thread,
         | 
| 1114 1093 | 
             
                    do {                      // processing at least one element
         | 
| 1115 1094 | 
             
                      // If the current element isn't equivalent to the waiter to be
         | 
| 1116 1095 | 
             
                      // removed, we can skip the entire chain.
         | 
| 1117 1096 | 
             
                      if (!MuEquivalentWaiter(s, w)) {
         | 
| 1118 | 
            -
                        pw = Skip(w); | 
| 1097 | 
            +
                        pw = Skip(w);  // so skip all that won't match
         | 
| 1119 1098 | 
             
                        // we don't have to worry about dangling skip fields
         | 
| 1120 1099 | 
             
                        // in the threads we skipped; none can point to s
         | 
| 1121 1100 | 
             
                        // because they are in a different equivalence class.
         | 
| @@ -1127,7 +1106,7 @@ void Mutex::TryRemove(PerThreadSynch *s) { | |
| 1127 1106 | 
             
                      // process the first thread again.
         | 
| 1128 1107 | 
             
                    } while ((w = pw->next) != s && pw != h);
         | 
| 1129 1108 | 
             
                  }
         | 
| 1130 | 
            -
                  if (w == s) { | 
| 1109 | 
            +
                  if (w == s) {  // found thread; remove it
         | 
| 1131 1110 | 
             
                    // pw->skip may be non-zero here; the loop above ensured that
         | 
| 1132 1111 | 
             
                    // no ancestor of s can skip to s, so removal is safe anyway.
         | 
| 1133 1112 | 
             
                    h = Dequeue(h, pw);
         | 
| @@ -1136,16 +1115,15 @@ void Mutex::TryRemove(PerThreadSynch *s) { | |
| 1136 1115 | 
             
                  }
         | 
| 1137 1116 | 
             
                }
         | 
| 1138 1117 | 
             
                intptr_t nv;
         | 
| 1139 | 
            -
                do { | 
| 1118 | 
            +
                do {  // release spinlock and lock
         | 
| 1140 1119 | 
             
                  v = mu_.load(std::memory_order_relaxed);
         | 
| 1141 1120 | 
             
                  nv = v & (kMuDesig | kMuEvent);
         | 
| 1142 1121 | 
             
                  if (h != nullptr) {
         | 
| 1143 1122 | 
             
                    nv |= kMuWait | reinterpret_cast<intptr_t>(h);
         | 
| 1144 | 
            -
                    h->readers = 0; | 
| 1123 | 
            +
                    h->readers = 0;              // we hold writer lock
         | 
| 1145 1124 | 
             
                    h->maybe_unlocking = false;  // finished unlocking
         | 
| 1146 1125 | 
             
                  }
         | 
| 1147 | 
            -
                } while (!mu_.compare_exchange_weak(v, nv,
         | 
| 1148 | 
            -
                                                    std::memory_order_release,
         | 
| 1126 | 
            +
                } while (!mu_.compare_exchange_weak(v, nv, std::memory_order_release,
         | 
| 1149 1127 | 
             
                                                    std::memory_order_relaxed));
         | 
| 1150 1128 | 
             
              }
         | 
| 1151 1129 | 
             
            }
         | 
| @@ -1155,7 +1133,7 @@ void Mutex::TryRemove(PerThreadSynch *s) { | |
| 1155 1133 | 
             
            // if the wait extends past the absolute time specified, even if "s" is still
         | 
| 1156 1134 | 
             
            // on the mutex queue.  In this case, remove "s" from the queue and return
         | 
| 1157 1135 | 
             
            // true, otherwise return false.
         | 
| 1158 | 
            -
            void Mutex::Block(PerThreadSynch  | 
| 1136 | 
            +
            void Mutex::Block(PerThreadSynch* s) {
         | 
| 1159 1137 | 
             
              while (s->state.load(std::memory_order_acquire) == PerThreadSynch::kQueued) {
         | 
| 1160 1138 | 
             
                if (!DecrementSynchSem(this, s, s->waitp->timeout)) {
         | 
| 1161 1139 | 
             
                  // After a timeout, we go into a spin loop until we remove ourselves
         | 
| @@ -1174,7 +1152,7 @@ void Mutex::Block(PerThreadSynch *s) { | |
| 1174 1152 | 
             
                    // is not on the queue.
         | 
| 1175 1153 | 
             
                    this->TryRemove(s);
         | 
| 1176 1154 | 
             
                  }
         | 
| 1177 | 
            -
                  s->waitp->timeout = KernelTimeout::Never(); | 
| 1155 | 
            +
                  s->waitp->timeout = KernelTimeout::Never();  // timeout is satisfied
         | 
| 1178 1156 | 
             
                  s->waitp->cond = nullptr;  // condition no longer relevant for wakeups
         | 
| 1179 1157 | 
             
                }
         | 
| 1180 1158 | 
             
              }
         | 
| @@ -1184,8 +1162,8 @@ void Mutex::Block(PerThreadSynch *s) { | |
| 1184 1162 | 
             
            }
         | 
| 1185 1163 |  | 
| 1186 1164 | 
             
            // Wake thread w, and return the next thread in the list.
         | 
| 1187 | 
            -
            PerThreadSynch  | 
| 1188 | 
            -
              PerThreadSynch  | 
| 1165 | 
            +
            PerThreadSynch* Mutex::Wakeup(PerThreadSynch* w) {
         | 
| 1166 | 
            +
              PerThreadSynch* next = w->next;
         | 
| 1189 1167 | 
             
              w->next = nullptr;
         | 
| 1190 1168 | 
             
              w->state.store(PerThreadSynch::kAvailable, std::memory_order_release);
         | 
| 1191 1169 | 
             
              IncrementSynchSem(this, w);
         | 
| @@ -1193,7 +1171,7 @@ PerThreadSynch *Mutex::Wakeup(PerThreadSynch *w) { | |
| 1193 1171 | 
             
              return next;
         | 
| 1194 1172 | 
             
            }
         | 
| 1195 1173 |  | 
| 1196 | 
            -
            static GraphId GetGraphIdLocked(Mutex  | 
| 1174 | 
            +
            static GraphId GetGraphIdLocked(Mutex* mu)
         | 
| 1197 1175 | 
             
                ABSL_EXCLUSIVE_LOCKS_REQUIRED(deadlock_graph_mu) {
         | 
| 1198 1176 | 
             
              if (!deadlock_graph) {  // (re)create the deadlock graph.
         | 
| 1199 1177 | 
             
                deadlock_graph =
         | 
| @@ -1203,7 +1181,7 @@ static GraphId GetGraphIdLocked(Mutex *mu) | |
| 1203 1181 | 
             
              return deadlock_graph->GetId(mu);
         | 
| 1204 1182 | 
             
            }
         | 
| 1205 1183 |  | 
| 1206 | 
            -
            static GraphId GetGraphId(Mutex  | 
| 1184 | 
            +
            static GraphId GetGraphId(Mutex* mu) ABSL_LOCKS_EXCLUDED(deadlock_graph_mu) {
         | 
| 1207 1185 | 
             
              deadlock_graph_mu.Lock();
         | 
| 1208 1186 | 
             
              GraphId id = GetGraphIdLocked(mu);
         | 
| 1209 1187 | 
             
              deadlock_graph_mu.Unlock();
         | 
| @@ -1213,7 +1191,7 @@ static GraphId GetGraphId(Mutex *mu) ABSL_LOCKS_EXCLUDED(deadlock_graph_mu) { | |
| 1213 1191 | 
             
            // Record a lock acquisition.  This is used in debug mode for deadlock
         | 
| 1214 1192 | 
             
            // detection.  The held_locks pointer points to the relevant data
         | 
| 1215 1193 | 
             
            // structure for each case.
         | 
| 1216 | 
            -
            static void LockEnter(Mutex* mu, GraphId id, SynchLocksHeld  | 
| 1194 | 
            +
            static void LockEnter(Mutex* mu, GraphId id, SynchLocksHeld* held_locks) {
         | 
| 1217 1195 | 
             
              int n = held_locks->n;
         | 
| 1218 1196 | 
             
              int i = 0;
         | 
| 1219 1197 | 
             
              while (i != n && held_locks->locks[i].id != id) {
         | 
| @@ -1237,7 +1215,7 @@ static void LockEnter(Mutex* mu, GraphId id, SynchLocksHeld *held_locks) { | |
| 1237 1215 | 
             
            // eventually followed by a call to LockLeave(mu, id, x) by the same thread.
         | 
| 1238 1216 | 
             
            // It does not process the event if is not needed when deadlock detection is
         | 
| 1239 1217 | 
             
            // disabled.
         | 
| 1240 | 
            -
            static void LockLeave(Mutex* mu, GraphId id, SynchLocksHeld  | 
| 1218 | 
            +
            static void LockLeave(Mutex* mu, GraphId id, SynchLocksHeld* held_locks) {
         | 
| 1241 1219 | 
             
              int n = held_locks->n;
         | 
| 1242 1220 | 
             
              int i = 0;
         | 
| 1243 1221 | 
             
              while (i != n && held_locks->locks[i].id != id) {
         | 
| @@ -1252,11 +1230,11 @@ static void LockLeave(Mutex* mu, GraphId id, SynchLocksHeld *held_locks) { | |
| 1252 1230 | 
             
                    i++;
         | 
| 1253 1231 | 
             
                  }
         | 
| 1254 1232 | 
             
                  if (i == n) {  // mu missing means releasing unheld lock
         | 
| 1255 | 
            -
                    SynchEvent  | 
| 1233 | 
            +
                    SynchEvent* mu_events = GetSynchEvent(mu);
         | 
| 1256 1234 | 
             
                    ABSL_RAW_LOG(FATAL,
         | 
| 1257 1235 | 
             
                                 "thread releasing lock it does not hold: %p %s; "
         | 
| 1258 1236 | 
             
                                 ,
         | 
| 1259 | 
            -
                                 static_cast<void | 
| 1237 | 
            +
                                 static_cast<void*>(mu),
         | 
| 1260 1238 | 
             
                                 mu_events == nullptr ? "" : mu_events->name);
         | 
| 1261 1239 | 
             
                  }
         | 
| 1262 1240 | 
             
                }
         | 
| @@ -1273,7 +1251,7 @@ static void LockLeave(Mutex* mu, GraphId id, SynchLocksHeld *held_locks) { | |
| 1273 1251 | 
             
            }
         | 
| 1274 1252 |  | 
| 1275 1253 | 
             
            // Call LockEnter() if in debug mode and deadlock detection is enabled.
         | 
| 1276 | 
            -
            static inline void DebugOnlyLockEnter(Mutex  | 
| 1254 | 
            +
            static inline void DebugOnlyLockEnter(Mutex* mu) {
         | 
| 1277 1255 | 
             
              if (kDebugMode) {
         | 
| 1278 1256 | 
             
                if (synch_deadlock_detection.load(std::memory_order_acquire) !=
         | 
| 1279 1257 | 
             
                    OnDeadlockCycle::kIgnore) {
         | 
| @@ -1283,7 +1261,7 @@ static inline void DebugOnlyLockEnter(Mutex *mu) { | |
| 1283 1261 | 
             
            }
         | 
| 1284 1262 |  | 
| 1285 1263 | 
             
            // Call LockEnter() if in debug mode and deadlock detection is enabled.
         | 
| 1286 | 
            -
            static inline void DebugOnlyLockEnter(Mutex  | 
| 1264 | 
            +
            static inline void DebugOnlyLockEnter(Mutex* mu, GraphId id) {
         | 
| 1287 1265 | 
             
              if (kDebugMode) {
         | 
| 1288 1266 | 
             
                if (synch_deadlock_detection.load(std::memory_order_acquire) !=
         | 
| 1289 1267 | 
             
                    OnDeadlockCycle::kIgnore) {
         | 
| @@ -1293,7 +1271,7 @@ static inline void DebugOnlyLockEnter(Mutex *mu, GraphId id) { | |
| 1293 1271 | 
             
            }
         | 
| 1294 1272 |  | 
| 1295 1273 | 
             
            // Call LockLeave() if in debug mode and deadlock detection is enabled.
         | 
| 1296 | 
            -
            static inline void DebugOnlyLockLeave(Mutex  | 
| 1274 | 
            +
            static inline void DebugOnlyLockLeave(Mutex* mu) {
         | 
| 1297 1275 | 
             
              if (kDebugMode) {
         | 
| 1298 1276 | 
             
                if (synch_deadlock_detection.load(std::memory_order_acquire) !=
         | 
| 1299 1277 | 
             
                    OnDeadlockCycle::kIgnore) {
         | 
| @@ -1302,9 +1280,9 @@ static inline void DebugOnlyLockLeave(Mutex *mu) { | |
| 1302 1280 | 
             
              }
         | 
| 1303 1281 | 
             
            }
         | 
| 1304 1282 |  | 
| 1305 | 
            -
            static char  | 
| 1283 | 
            +
            static char* StackString(void** pcs, int n, char* buf, int maxlen,
         | 
| 1306 1284 | 
             
                                     bool symbolize) {
         | 
| 1307 | 
            -
              static  | 
| 1285 | 
            +
              static constexpr int kSymLen = 200;
         | 
| 1308 1286 | 
             
              char sym[kSymLen];
         | 
| 1309 1287 | 
             
              int len = 0;
         | 
| 1310 1288 | 
             
              for (int i = 0; i != n; i++) {
         | 
| @@ -1312,7 +1290,7 @@ static char *StackString(void **pcs, int n, char *buf, int maxlen, | |
| 1312 1290 | 
             
                  return buf;
         | 
| 1313 1291 | 
             
                size_t count = static_cast<size_t>(maxlen - len);
         | 
| 1314 1292 | 
             
                if (symbolize) {
         | 
| 1315 | 
            -
                  if (! | 
| 1293 | 
            +
                  if (!absl::Symbolize(pcs[i], sym, kSymLen)) {
         | 
| 1316 1294 | 
             
                    sym[0] = '\0';
         | 
| 1317 1295 | 
             
                  }
         | 
| 1318 1296 | 
             
                  snprintf(buf + len, count, "%s\t@ %p %s\n", (i == 0 ? "\n" : ""), pcs[i],
         | 
| @@ -1325,15 +1303,17 @@ static char *StackString(void **pcs, int n, char *buf, int maxlen, | |
| 1325 1303 | 
             
              return buf;
         | 
| 1326 1304 | 
             
            }
         | 
| 1327 1305 |  | 
| 1328 | 
            -
            static char  | 
| 1329 | 
            -
              void  | 
| 1306 | 
            +
            static char* CurrentStackString(char* buf, int maxlen, bool symbolize) {
         | 
| 1307 | 
            +
              void* pcs[40];
         | 
| 1330 1308 | 
             
              return StackString(pcs, absl::GetStackTrace(pcs, ABSL_ARRAYSIZE(pcs), 2), buf,
         | 
| 1331 1309 | 
             
                                 maxlen, symbolize);
         | 
| 1332 1310 | 
             
            }
         | 
| 1333 1311 |  | 
| 1334 1312 | 
             
            namespace {
         | 
| 1335 | 
            -
            enum { | 
| 1336 | 
            -
             | 
| 1313 | 
            +
            enum {
         | 
| 1314 | 
            +
              kMaxDeadlockPathLen = 10
         | 
| 1315 | 
            +
            };  // maximum length of a deadlock cycle;
         | 
| 1316 | 
            +
                // a path this long would be remarkable
         | 
| 1337 1317 | 
             
            // Buffers required to report a deadlock.
         | 
| 1338 1318 | 
             
            // We do not allocate them on stack to avoid large stack frame.
         | 
| 1339 1319 | 
             
            struct DeadlockReportBuffers {
         | 
| @@ -1343,11 +1323,11 @@ struct DeadlockReportBuffers { | |
| 1343 1323 |  | 
| 1344 1324 | 
             
            struct ScopedDeadlockReportBuffers {
         | 
| 1345 1325 | 
             
              ScopedDeadlockReportBuffers() {
         | 
| 1346 | 
            -
                b = reinterpret_cast<DeadlockReportBuffers | 
| 1326 | 
            +
                b = reinterpret_cast<DeadlockReportBuffers*>(
         | 
| 1347 1327 | 
             
                    base_internal::LowLevelAlloc::Alloc(sizeof(*b)));
         | 
| 1348 1328 | 
             
              }
         | 
| 1349 1329 | 
             
              ~ScopedDeadlockReportBuffers() { base_internal::LowLevelAlloc::Free(b); }
         | 
| 1350 | 
            -
              DeadlockReportBuffers  | 
| 1330 | 
            +
              DeadlockReportBuffers* b;
         | 
| 1351 1331 | 
             
            };
         | 
| 1352 1332 |  | 
| 1353 1333 | 
             
            // Helper to pass to GraphCycles::UpdateStackTrace.
         | 
| @@ -1358,13 +1338,13 @@ int GetStack(void** stack, int max_depth) { | |
| 1358 1338 |  | 
| 1359 1339 | 
             
            // Called in debug mode when a thread is about to acquire a lock in a way that
         | 
| 1360 1340 | 
             
            // may block.
         | 
| 1361 | 
            -
            static GraphId DeadlockCheck(Mutex  | 
| 1341 | 
            +
            static GraphId DeadlockCheck(Mutex* mu) {
         | 
| 1362 1342 | 
             
              if (synch_deadlock_detection.load(std::memory_order_acquire) ==
         | 
| 1363 1343 | 
             
                  OnDeadlockCycle::kIgnore) {
         | 
| 1364 1344 | 
             
                return InvalidGraphId();
         | 
| 1365 1345 | 
             
              }
         | 
| 1366 1346 |  | 
| 1367 | 
            -
              SynchLocksHeld  | 
| 1347 | 
            +
              SynchLocksHeld* all_locks = Synch_GetAllLocks();
         | 
| 1368 1348 |  | 
| 1369 1349 | 
             
              absl::base_internal::SpinLockHolder lock(&deadlock_graph_mu);
         | 
| 1370 1350 | 
             
              const GraphId mu_id = GetGraphIdLocked(mu);
         | 
| @@ -1386,8 +1366,8 @@ static GraphId DeadlockCheck(Mutex *mu) { | |
| 1386 1366 | 
             
              // For each other mutex already held by this thread:
         | 
| 1387 1367 | 
             
              for (int i = 0; i != all_locks->n; i++) {
         | 
| 1388 1368 | 
             
                const GraphId other_node_id = all_locks->locks[i].id;
         | 
| 1389 | 
            -
                const Mutex  | 
| 1390 | 
            -
                    static_cast<const Mutex | 
| 1369 | 
            +
                const Mutex* other =
         | 
| 1370 | 
            +
                    static_cast<const Mutex*>(deadlock_graph->Ptr(other_node_id));
         | 
| 1391 1371 | 
             
                if (other == nullptr) {
         | 
| 1392 1372 | 
             
                  // Ignore stale lock
         | 
| 1393 1373 | 
             
                  continue;
         | 
| @@ -1396,7 +1376,7 @@ static GraphId DeadlockCheck(Mutex *mu) { | |
| 1396 1376 | 
             
                // Add the acquired-before edge to the graph.
         | 
| 1397 1377 | 
             
                if (!deadlock_graph->InsertEdge(other_node_id, mu_id)) {
         | 
| 1398 1378 | 
             
                  ScopedDeadlockReportBuffers scoped_buffers;
         | 
| 1399 | 
            -
                  DeadlockReportBuffers  | 
| 1379 | 
            +
                  DeadlockReportBuffers* b = scoped_buffers.b;
         | 
| 1400 1380 | 
             
                  static int number_of_reported_deadlocks = 0;
         | 
| 1401 1381 | 
             
                  number_of_reported_deadlocks++;
         | 
| 1402 1382 | 
             
                  // Symbolize only 2 first deadlock report to avoid huge slowdowns.
         | 
| @@ -1407,37 +1387,40 @@ static GraphId DeadlockCheck(Mutex *mu) { | |
| 1407 1387 | 
             
                  for (int j = 0; j != all_locks->n; j++) {
         | 
| 1408 1388 | 
             
                    void* pr = deadlock_graph->Ptr(all_locks->locks[j].id);
         | 
| 1409 1389 | 
             
                    if (pr != nullptr) {
         | 
| 1410 | 
            -
                      snprintf(b->buf + len, sizeof | 
| 1390 | 
            +
                      snprintf(b->buf + len, sizeof(b->buf) - len, " %p", pr);
         | 
| 1411 1391 | 
             
                      len += strlen(&b->buf[len]);
         | 
| 1412 1392 | 
             
                    }
         | 
| 1413 1393 | 
             
                  }
         | 
| 1414 1394 | 
             
                  ABSL_RAW_LOG(ERROR,
         | 
| 1415 1395 | 
             
                               "Acquiring absl::Mutex %p while holding %s; a cycle in the "
         | 
| 1416 1396 | 
             
                               "historical lock ordering graph has been observed",
         | 
| 1417 | 
            -
                               static_cast<void | 
| 1397 | 
            +
                               static_cast<void*>(mu), b->buf);
         | 
| 1418 1398 | 
             
                  ABSL_RAW_LOG(ERROR, "Cycle: ");
         | 
| 1419 | 
            -
                  int path_len = deadlock_graph->FindPath(
         | 
| 1420 | 
            -
             | 
| 1421 | 
            -
                  for (int j = 0; j != path_len; j++) {
         | 
| 1399 | 
            +
                  int path_len = deadlock_graph->FindPath(mu_id, other_node_id,
         | 
| 1400 | 
            +
                                                          ABSL_ARRAYSIZE(b->path), b->path);
         | 
| 1401 | 
            +
                  for (int j = 0; j != path_len && j != ABSL_ARRAYSIZE(b->path); j++) {
         | 
| 1422 1402 | 
             
                    GraphId id = b->path[j];
         | 
| 1423 | 
            -
                    Mutex  | 
| 1403 | 
            +
                    Mutex* path_mu = static_cast<Mutex*>(deadlock_graph->Ptr(id));
         | 
| 1424 1404 | 
             
                    if (path_mu == nullptr) continue;
         | 
| 1425 1405 | 
             
                    void** stack;
         | 
| 1426 1406 | 
             
                    int depth = deadlock_graph->GetStackTrace(id, &stack);
         | 
| 1427 1407 | 
             
                    snprintf(b->buf, sizeof(b->buf),
         | 
| 1428 | 
            -
                             "mutex@%p stack: ", static_cast<void | 
| 1408 | 
            +
                             "mutex@%p stack: ", static_cast<void*>(path_mu));
         | 
| 1429 1409 | 
             
                    StackString(stack, depth, b->buf + strlen(b->buf),
         | 
| 1430 1410 | 
             
                                static_cast<int>(sizeof(b->buf) - strlen(b->buf)),
         | 
| 1431 1411 | 
             
                                symbolize);
         | 
| 1432 1412 | 
             
                    ABSL_RAW_LOG(ERROR, "%s", b->buf);
         | 
| 1433 1413 | 
             
                  }
         | 
| 1414 | 
            +
                  if (path_len > static_cast<int>(ABSL_ARRAYSIZE(b->path))) {
         | 
| 1415 | 
            +
                    ABSL_RAW_LOG(ERROR, "(long cycle; list truncated)");
         | 
| 1416 | 
            +
                  }
         | 
| 1434 1417 | 
             
                  if (synch_deadlock_detection.load(std::memory_order_acquire) ==
         | 
| 1435 1418 | 
             
                      OnDeadlockCycle::kAbort) {
         | 
| 1436 1419 | 
             
                    deadlock_graph_mu.Unlock();  // avoid deadlock in fatal sighandler
         | 
| 1437 1420 | 
             
                    ABSL_RAW_LOG(FATAL, "dying due to potential deadlock");
         | 
| 1438 1421 | 
             
                    return mu_id;
         | 
| 1439 1422 | 
             
                  }
         | 
| 1440 | 
            -
                  break; | 
| 1423 | 
            +
                  break;  // report at most one potential deadlock per acquisition
         | 
| 1441 1424 | 
             
                }
         | 
| 1442 1425 | 
             
              }
         | 
| 1443 1426 |  | 
| @@ -1446,7 +1429,7 @@ static GraphId DeadlockCheck(Mutex *mu) { | |
| 1446 1429 |  | 
| 1447 1430 | 
             
            // Invoke DeadlockCheck() iff we're in debug mode and
         | 
| 1448 1431 | 
             
            // deadlock checking has been enabled.
         | 
| 1449 | 
            -
            static inline GraphId DebugOnlyDeadlockCheck(Mutex  | 
| 1432 | 
            +
            static inline GraphId DebugOnlyDeadlockCheck(Mutex* mu) {
         | 
| 1450 1433 | 
             
              if (kDebugMode && synch_deadlock_detection.load(std::memory_order_acquire) !=
         | 
| 1451 1434 | 
             
                                    OnDeadlockCycle::kIgnore) {
         | 
| 1452 1435 | 
             
                return DeadlockCheck(mu);
         | 
| @@ -1473,13 +1456,13 @@ void Mutex::AssertNotHeld() const { | |
| 1473 1456 | 
             
                  (mu_.load(std::memory_order_relaxed) & (kMuWriter | kMuReader)) != 0 &&
         | 
| 1474 1457 | 
             
                  synch_deadlock_detection.load(std::memory_order_acquire) !=
         | 
| 1475 1458 | 
             
                      OnDeadlockCycle::kIgnore) {
         | 
| 1476 | 
            -
                GraphId id = GetGraphId(const_cast<Mutex | 
| 1477 | 
            -
                SynchLocksHeld  | 
| 1459 | 
            +
                GraphId id = GetGraphId(const_cast<Mutex*>(this));
         | 
| 1460 | 
            +
                SynchLocksHeld* locks = Synch_GetAllLocks();
         | 
| 1478 1461 | 
             
                for (int i = 0; i != locks->n; i++) {
         | 
| 1479 1462 | 
             
                  if (locks->locks[i].id == id) {
         | 
| 1480 | 
            -
                    SynchEvent  | 
| 1463 | 
            +
                    SynchEvent* mu_events = GetSynchEvent(this);
         | 
| 1481 1464 | 
             
                    ABSL_RAW_LOG(FATAL, "thread should not hold mutex %p %s",
         | 
| 1482 | 
            -
                                 static_cast<const void | 
| 1465 | 
            +
                                 static_cast<const void*>(this),
         | 
| 1483 1466 | 
             
                                 (mu_events == nullptr ? "" : mu_events->name));
         | 
| 1484 1467 | 
             
                  }
         | 
| 1485 1468 | 
             
                }
         | 
| @@ -1492,8 +1475,8 @@ static bool TryAcquireWithSpinning(std::atomic<intptr_t>* mu) { | |
| 1492 1475 | 
             
              int c = GetMutexGlobals().spinloop_iterations;
         | 
| 1493 1476 | 
             
              do {  // do/while somewhat faster on AMD
         | 
| 1494 1477 | 
             
                intptr_t v = mu->load(std::memory_order_relaxed);
         | 
| 1495 | 
            -
                if ((v & (kMuReader|kMuEvent)) != 0) {
         | 
| 1496 | 
            -
                  return false; | 
| 1478 | 
            +
                if ((v & (kMuReader | kMuEvent)) != 0) {
         | 
| 1479 | 
            +
                  return false;                       // a reader or tracing -> give up
         | 
| 1497 1480 | 
             
                } else if (((v & kMuWriter) == 0) &&  // no holder -> try to acquire
         | 
| 1498 1481 | 
             
                           mu->compare_exchange_strong(v, kMuWriter | v,
         | 
| 1499 1482 | 
             
                                                       std::memory_order_acquire,
         | 
| @@ -1510,8 +1493,7 @@ void Mutex::Lock() { | |
| 1510 1493 | 
             
              intptr_t v = mu_.load(std::memory_order_relaxed);
         | 
| 1511 1494 | 
             
              // try fast acquire, then spin loop
         | 
| 1512 1495 | 
             
              if ((v & (kMuWriter | kMuReader | kMuEvent)) != 0 ||
         | 
| 1513 | 
            -
                  !mu_.compare_exchange_strong(v, kMuWriter | v,
         | 
| 1514 | 
            -
                                               std::memory_order_acquire,
         | 
| 1496 | 
            +
                  !mu_.compare_exchange_strong(v, kMuWriter | v, std::memory_order_acquire,
         | 
| 1515 1497 | 
             
                                               std::memory_order_relaxed)) {
         | 
| 1516 1498 | 
             
                // try spin acquire, then slow loop
         | 
| 1517 1499 | 
             
                if (!TryAcquireWithSpinning(&this->mu_)) {
         | 
| @@ -1537,7 +1519,7 @@ void Mutex::ReaderLock() { | |
| 1537 1519 | 
             
              ABSL_TSAN_MUTEX_POST_LOCK(this, __tsan_mutex_read_lock, 0);
         | 
| 1538 1520 | 
             
            }
         | 
| 1539 1521 |  | 
| 1540 | 
            -
            void Mutex::LockWhen(const Condition  | 
| 1522 | 
            +
            void Mutex::LockWhen(const Condition& cond) {
         | 
| 1541 1523 | 
             
              ABSL_TSAN_MUTEX_PRE_LOCK(this, 0);
         | 
| 1542 1524 | 
             
              GraphId id = DebugOnlyDeadlockCheck(this);
         | 
| 1543 1525 | 
             
              this->LockSlow(kExclusive, &cond, 0);
         | 
| @@ -1545,21 +1527,26 @@ void Mutex::LockWhen(const Condition &cond) { | |
| 1545 1527 | 
             
              ABSL_TSAN_MUTEX_POST_LOCK(this, 0, 0);
         | 
| 1546 1528 | 
             
            }
         | 
| 1547 1529 |  | 
| 1548 | 
            -
            bool Mutex::LockWhenWithTimeout(const Condition  | 
| 1549 | 
            -
               | 
| 1530 | 
            +
            bool Mutex::LockWhenWithTimeout(const Condition& cond, absl::Duration timeout) {
         | 
| 1531 | 
            +
              ABSL_TSAN_MUTEX_PRE_LOCK(this, 0);
         | 
| 1532 | 
            +
              GraphId id = DebugOnlyDeadlockCheck(this);
         | 
| 1533 | 
            +
              bool res = LockSlowWithDeadline(kExclusive, &cond, KernelTimeout(timeout), 0);
         | 
| 1534 | 
            +
              DebugOnlyLockEnter(this, id);
         | 
| 1535 | 
            +
              ABSL_TSAN_MUTEX_POST_LOCK(this, 0, 0);
         | 
| 1536 | 
            +
              return res;
         | 
| 1550 1537 | 
             
            }
         | 
| 1551 1538 |  | 
| 1552 | 
            -
            bool Mutex::LockWhenWithDeadline(const Condition  | 
| 1539 | 
            +
            bool Mutex::LockWhenWithDeadline(const Condition& cond, absl::Time deadline) {
         | 
| 1553 1540 | 
             
              ABSL_TSAN_MUTEX_PRE_LOCK(this, 0);
         | 
| 1554 1541 | 
             
              GraphId id = DebugOnlyDeadlockCheck(this);
         | 
| 1555 | 
            -
              bool res = | 
| 1556 | 
            -
             | 
| 1542 | 
            +
              bool res =
         | 
| 1543 | 
            +
                  LockSlowWithDeadline(kExclusive, &cond, KernelTimeout(deadline), 0);
         | 
| 1557 1544 | 
             
              DebugOnlyLockEnter(this, id);
         | 
| 1558 1545 | 
             
              ABSL_TSAN_MUTEX_POST_LOCK(this, 0, 0);
         | 
| 1559 1546 | 
             
              return res;
         | 
| 1560 1547 | 
             
            }
         | 
| 1561 1548 |  | 
| 1562 | 
            -
            void Mutex::ReaderLockWhen(const Condition  | 
| 1549 | 
            +
            void Mutex::ReaderLockWhen(const Condition& cond) {
         | 
| 1563 1550 | 
             
              ABSL_TSAN_MUTEX_PRE_LOCK(this, __tsan_mutex_read_lock);
         | 
| 1564 1551 | 
             
              GraphId id = DebugOnlyDeadlockCheck(this);
         | 
| 1565 1552 | 
             
              this->LockSlow(kShared, &cond, 0);
         | 
| @@ -1567,12 +1554,17 @@ void Mutex::ReaderLockWhen(const Condition &cond) { | |
| 1567 1554 | 
             
              ABSL_TSAN_MUTEX_POST_LOCK(this, __tsan_mutex_read_lock, 0);
         | 
| 1568 1555 | 
             
            }
         | 
| 1569 1556 |  | 
| 1570 | 
            -
            bool Mutex::ReaderLockWhenWithTimeout(const Condition  | 
| 1557 | 
            +
            bool Mutex::ReaderLockWhenWithTimeout(const Condition& cond,
         | 
| 1571 1558 | 
             
                                                  absl::Duration timeout) {
         | 
| 1572 | 
            -
               | 
| 1559 | 
            +
              ABSL_TSAN_MUTEX_PRE_LOCK(this, __tsan_mutex_read_lock);
         | 
| 1560 | 
            +
              GraphId id = DebugOnlyDeadlockCheck(this);
         | 
| 1561 | 
            +
              bool res = LockSlowWithDeadline(kShared, &cond, KernelTimeout(timeout), 0);
         | 
| 1562 | 
            +
              DebugOnlyLockEnter(this, id);
         | 
| 1563 | 
            +
              ABSL_TSAN_MUTEX_POST_LOCK(this, __tsan_mutex_read_lock, 0);
         | 
| 1564 | 
            +
              return res;
         | 
| 1573 1565 | 
             
            }
         | 
| 1574 1566 |  | 
| 1575 | 
            -
            bool Mutex::ReaderLockWhenWithDeadline(const Condition  | 
| 1567 | 
            +
            bool Mutex::ReaderLockWhenWithDeadline(const Condition& cond,
         | 
| 1576 1568 | 
             
                                                   absl::Time deadline) {
         | 
| 1577 1569 | 
             
              ABSL_TSAN_MUTEX_PRE_LOCK(this, __tsan_mutex_read_lock);
         | 
| 1578 1570 | 
             
              GraphId id = DebugOnlyDeadlockCheck(this);
         | 
| @@ -1582,23 +1574,34 @@ bool Mutex::ReaderLockWhenWithDeadline(const Condition &cond, | |
| 1582 1574 | 
             
              return res;
         | 
| 1583 1575 | 
             
            }
         | 
| 1584 1576 |  | 
| 1585 | 
            -
            void Mutex::Await(const Condition  | 
| 1586 | 
            -
              if (cond.Eval()) { | 
| 1577 | 
            +
            void Mutex::Await(const Condition& cond) {
         | 
| 1578 | 
            +
              if (cond.Eval()) {  // condition already true; nothing to do
         | 
| 1587 1579 | 
             
                if (kDebugMode) {
         | 
| 1588 1580 | 
             
                  this->AssertReaderHeld();
         | 
| 1589 1581 | 
             
                }
         | 
| 1590 | 
            -
              } else { | 
| 1582 | 
            +
              } else {  // normal case
         | 
| 1591 1583 | 
             
                ABSL_RAW_CHECK(this->AwaitCommon(cond, KernelTimeout::Never()),
         | 
| 1592 1584 | 
             
                               "condition untrue on return from Await");
         | 
| 1593 1585 | 
             
              }
         | 
| 1594 1586 | 
             
            }
         | 
| 1595 1587 |  | 
| 1596 | 
            -
            bool Mutex::AwaitWithTimeout(const Condition  | 
| 1597 | 
            -
               | 
| 1588 | 
            +
            bool Mutex::AwaitWithTimeout(const Condition& cond, absl::Duration timeout) {
         | 
| 1589 | 
            +
              if (cond.Eval()) {  // condition already true; nothing to do
         | 
| 1590 | 
            +
                if (kDebugMode) {
         | 
| 1591 | 
            +
                  this->AssertReaderHeld();
         | 
| 1592 | 
            +
                }
         | 
| 1593 | 
            +
                return true;
         | 
| 1594 | 
            +
              }
         | 
| 1595 | 
            +
             | 
| 1596 | 
            +
              KernelTimeout t{timeout};
         | 
| 1597 | 
            +
              bool res = this->AwaitCommon(cond, t);
         | 
| 1598 | 
            +
              ABSL_RAW_CHECK(res || t.has_timeout(),
         | 
| 1599 | 
            +
                             "condition untrue on return from Await");
         | 
| 1600 | 
            +
              return res;
         | 
| 1598 1601 | 
             
            }
         | 
| 1599 1602 |  | 
| 1600 | 
            -
            bool Mutex::AwaitWithDeadline(const Condition  | 
| 1601 | 
            -
              if (cond.Eval()) { | 
| 1603 | 
            +
            bool Mutex::AwaitWithDeadline(const Condition& cond, absl::Time deadline) {
         | 
| 1604 | 
            +
              if (cond.Eval()) {  // condition already true; nothing to do
         | 
| 1602 1605 | 
             
                if (kDebugMode) {
         | 
| 1603 1606 | 
             
                  this->AssertReaderHeld();
         | 
| 1604 1607 | 
             
                }
         | 
| @@ -1612,14 +1615,14 @@ bool Mutex::AwaitWithDeadline(const Condition &cond, absl::Time deadline) { | |
| 1612 1615 | 
             
              return res;
         | 
| 1613 1616 | 
             
            }
         | 
| 1614 1617 |  | 
| 1615 | 
            -
            bool Mutex::AwaitCommon(const Condition  | 
| 1618 | 
            +
            bool Mutex::AwaitCommon(const Condition& cond, KernelTimeout t) {
         | 
| 1616 1619 | 
             
              this->AssertReaderHeld();
         | 
| 1617 1620 | 
             
              MuHow how =
         | 
| 1618 1621 | 
             
                  (mu_.load(std::memory_order_relaxed) & kMuWriter) ? kExclusive : kShared;
         | 
| 1619 1622 | 
             
              ABSL_TSAN_MUTEX_PRE_UNLOCK(this, TsanFlags(how));
         | 
| 1620 | 
            -
              SynchWaitParams waitp(
         | 
| 1621 | 
            -
             | 
| 1622 | 
            -
             | 
| 1623 | 
            +
              SynchWaitParams waitp(how, &cond, t, nullptr /*no cvmu*/,
         | 
| 1624 | 
            +
                                    Synch_GetPerThreadAnnotated(this),
         | 
| 1625 | 
            +
                                    nullptr /*no cv_word*/);
         | 
| 1623 1626 | 
             
              int flags = kMuHasBlocked;
         | 
| 1624 1627 | 
             
              if (!Condition::GuaranteedEqual(&cond, nullptr)) {
         | 
| 1625 1628 | 
             
                flags |= kMuIsCond;
         | 
| @@ -1639,14 +1642,13 @@ bool Mutex::TryLock() { | |
| 1639 1642 | 
             
              ABSL_TSAN_MUTEX_PRE_LOCK(this, __tsan_mutex_try_lock);
         | 
| 1640 1643 | 
             
              intptr_t v = mu_.load(std::memory_order_relaxed);
         | 
| 1641 1644 | 
             
              if ((v & (kMuWriter | kMuReader | kMuEvent)) == 0 &&  // try fast acquire
         | 
| 1642 | 
            -
                  mu_.compare_exchange_strong(v, kMuWriter | v,
         | 
| 1643 | 
            -
                                              std::memory_order_acquire,
         | 
| 1645 | 
            +
                  mu_.compare_exchange_strong(v, kMuWriter | v, std::memory_order_acquire,
         | 
| 1644 1646 | 
             
                                              std::memory_order_relaxed)) {
         | 
| 1645 1647 | 
             
                DebugOnlyLockEnter(this);
         | 
| 1646 1648 | 
             
                ABSL_TSAN_MUTEX_POST_LOCK(this, __tsan_mutex_try_lock, 0);
         | 
| 1647 1649 | 
             
                return true;
         | 
| 1648 1650 | 
             
              }
         | 
| 1649 | 
            -
              if ((v & kMuEvent) != 0) { | 
| 1651 | 
            +
              if ((v & kMuEvent) != 0) {                      // we're recording events
         | 
| 1650 1652 | 
             
                if ((v & kExclusive->slow_need_zero) == 0 &&  // try fast acquire
         | 
| 1651 1653 | 
             
                    mu_.compare_exchange_strong(
         | 
| 1652 1654 | 
             
                        v, (kExclusive->fast_or | v) + kExclusive->fast_add,
         | 
| @@ -1672,7 +1674,7 @@ bool Mutex::ReaderTryLock() { | |
| 1672 1674 | 
             
              // changing (typically because the reader count changes) under the CAS.  We
         | 
| 1673 1675 | 
             
              // limit the number of attempts to avoid having to think about livelock.
         | 
| 1674 1676 | 
             
              int loop_limit = 5;
         | 
| 1675 | 
            -
              while ((v & (kMuWriter|kMuWait|kMuEvent)) == 0 && loop_limit != 0) {
         | 
| 1677 | 
            +
              while ((v & (kMuWriter | kMuWait | kMuEvent)) == 0 && loop_limit != 0) {
         | 
| 1676 1678 | 
             
                if (mu_.compare_exchange_strong(v, (kMuReader | v) + kMuOne,
         | 
| 1677 1679 | 
             
                                                std::memory_order_acquire,
         | 
| 1678 1680 | 
             
                                                std::memory_order_relaxed)) {
         | 
| @@ -1684,7 +1686,7 @@ bool Mutex::ReaderTryLock() { | |
| 1684 1686 | 
             
                loop_limit--;
         | 
| 1685 1687 | 
             
                v = mu_.load(std::memory_order_relaxed);
         | 
| 1686 1688 | 
             
              }
         | 
| 1687 | 
            -
              if ((v & kMuEvent) != 0) { | 
| 1689 | 
            +
              if ((v & kMuEvent) != 0) {  // we're recording events
         | 
| 1688 1690 | 
             
                loop_limit = 5;
         | 
| 1689 1691 | 
             
                while ((v & kShared->slow_need_zero) == 0 && loop_limit != 0) {
         | 
| 1690 1692 | 
             
                  if (mu_.compare_exchange_strong(v, (kMuReader | v) + kMuOne,
         | 
| @@ -1723,7 +1725,7 @@ void Mutex::Unlock() { | |
| 1723 1725 | 
             
              // should_try_cas is whether we'll try a compare-and-swap immediately.
         | 
| 1724 1726 | 
             
              // NOTE: optimized out when kDebugMode is false.
         | 
| 1725 1727 | 
             
              bool should_try_cas = ((v & (kMuEvent | kMuWriter)) == kMuWriter &&
         | 
| 1726 | 
            -
             | 
| 1728 | 
            +
                                     (v & (kMuWait | kMuDesig)) != kMuWait);
         | 
| 1727 1729 | 
             
              // But, we can use an alternate computation of it, that compilers
         | 
| 1728 1730 | 
             
              // currently don't find on their own.  When that changes, this function
         | 
| 1729 1731 | 
             
              // can be simplified.
         | 
| @@ -1740,10 +1742,9 @@ void Mutex::Unlock() { | |
| 1740 1742 | 
             
                             static_cast<long long>(v), static_cast<long long>(x),
         | 
| 1741 1743 | 
             
                             static_cast<long long>(y));
         | 
| 1742 1744 | 
             
              }
         | 
| 1743 | 
            -
              if (x < y &&
         | 
| 1744 | 
            -
             | 
| 1745 | 
            -
             | 
| 1746 | 
            -
                                              std::memory_order_relaxed)) {
         | 
| 1745 | 
            +
              if (x < y && mu_.compare_exchange_strong(v, v & ~(kMuWrWait | kMuWriter),
         | 
| 1746 | 
            +
                                                       std::memory_order_release,
         | 
| 1747 | 
            +
                                                       std::memory_order_relaxed)) {
         | 
| 1747 1748 | 
             
                // fast writer release (writer with no waiters or with designated waker)
         | 
| 1748 1749 | 
             
              } else {
         | 
| 1749 1750 | 
             
                this->UnlockSlow(nullptr /*no waitp*/);  // take slow path
         | 
| @@ -1753,7 +1754,7 @@ void Mutex::Unlock() { | |
| 1753 1754 |  | 
| 1754 1755 | 
             
            // Requires v to represent a reader-locked state.
         | 
| 1755 1756 | 
             
            static bool ExactlyOneReader(intptr_t v) {
         | 
| 1756 | 
            -
              assert((v & (kMuWriter|kMuReader)) == kMuReader);
         | 
| 1757 | 
            +
              assert((v & (kMuWriter | kMuReader)) == kMuReader);
         | 
| 1757 1758 | 
             
              assert((v & kMuHigh) != 0);
         | 
| 1758 1759 | 
             
              // The more straightforward "(v & kMuHigh) == kMuOne" also works, but
         | 
| 1759 1760 | 
             
              // on some architectures the following generates slightly smaller code.
         | 
| @@ -1766,12 +1767,11 @@ void Mutex::ReaderUnlock() { | |
| 1766 1767 | 
             
              ABSL_TSAN_MUTEX_PRE_UNLOCK(this, __tsan_mutex_read_lock);
         | 
| 1767 1768 | 
             
              DebugOnlyLockLeave(this);
         | 
| 1768 1769 | 
             
              intptr_t v = mu_.load(std::memory_order_relaxed);
         | 
| 1769 | 
            -
              assert((v & (kMuWriter|kMuReader)) == kMuReader);
         | 
| 1770 | 
            -
              if ((v & (kMuReader|kMuWait|kMuEvent)) == kMuReader) {
         | 
| 1770 | 
            +
              assert((v & (kMuWriter | kMuReader)) == kMuReader);
         | 
| 1771 | 
            +
              if ((v & (kMuReader | kMuWait | kMuEvent)) == kMuReader) {
         | 
| 1771 1772 | 
             
                // fast reader release (reader with no waiters)
         | 
| 1772 | 
            -
                intptr_t clear = ExactlyOneReader(v) ? kMuReader|kMuOne : kMuOne;
         | 
| 1773 | 
            -
                if (mu_.compare_exchange_strong(v, v - clear,
         | 
| 1774 | 
            -
                                                std::memory_order_release,
         | 
| 1773 | 
            +
                intptr_t clear = ExactlyOneReader(v) ? kMuReader | kMuOne : kMuOne;
         | 
| 1774 | 
            +
                if (mu_.compare_exchange_strong(v, v - clear, std::memory_order_release,
         | 
| 1775 1775 | 
             
                                                std::memory_order_relaxed)) {
         | 
| 1776 1776 | 
             
                  ABSL_TSAN_MUTEX_POST_UNLOCK(this, __tsan_mutex_read_lock);
         | 
| 1777 1777 | 
             
                  return;
         | 
| @@ -1810,7 +1810,7 @@ static intptr_t IgnoreWaitingWritersMask(int flag) { | |
| 1810 1810 | 
             
            }
         | 
| 1811 1811 |  | 
| 1812 1812 | 
             
            // Internal version of LockWhen().  See LockSlowWithDeadline()
         | 
| 1813 | 
            -
            ABSL_ATTRIBUTE_NOINLINE void Mutex::LockSlow(MuHow how, const Condition  | 
| 1813 | 
            +
            ABSL_ATTRIBUTE_NOINLINE void Mutex::LockSlow(MuHow how, const Condition* cond,
         | 
| 1814 1814 | 
             
                                                         int flags) {
         | 
| 1815 1815 | 
             
              ABSL_RAW_CHECK(
         | 
| 1816 1816 | 
             
                  this->LockSlowWithDeadline(how, cond, KernelTimeout::Never(), flags),
         | 
| @@ -1818,7 +1818,7 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::LockSlow(MuHow how, const Condition *cond, | |
| 1818 1818 | 
             
            }
         | 
| 1819 1819 |  | 
| 1820 1820 | 
             
            // Compute cond->Eval() and tell race detectors that we do it under mutex mu.
         | 
| 1821 | 
            -
            static inline bool EvalConditionAnnotated(const Condition  | 
| 1821 | 
            +
            static inline bool EvalConditionAnnotated(const Condition* cond, Mutex* mu,
         | 
| 1822 1822 | 
             
                                                      bool locking, bool trylock,
         | 
| 1823 1823 | 
             
                                                      bool read_lock) {
         | 
| 1824 1824 | 
             
              // Delicate annotation dance.
         | 
| @@ -1868,7 +1868,7 @@ static inline bool EvalConditionAnnotated(const Condition *cond, Mutex *mu, | |
| 1868 1868 | 
             
            // tsan). As the result there is no tsan-visible synchronization between the
         | 
| 1869 1869 | 
             
            // addition and this thread. So if we would enable race detection here,
         | 
| 1870 1870 | 
             
            // it would race with the predicate initialization.
         | 
| 1871 | 
            -
            static inline bool EvalConditionIgnored(Mutex  | 
| 1871 | 
            +
            static inline bool EvalConditionIgnored(Mutex* mu, const Condition* cond) {
         | 
| 1872 1872 | 
             
              // Memory accesses are already ignored inside of lock/unlock operations,
         | 
| 1873 1873 | 
             
              // but synchronization operations are also ignored. When we evaluate the
         | 
| 1874 1874 | 
             
              // predicate we must ignore only memory accesses but not synchronization,
         | 
| @@ -1893,7 +1893,7 @@ static inline bool EvalConditionIgnored(Mutex *mu, const Condition *cond) { | |
| 1893 1893 | 
             
            //   obstruct this call
         | 
| 1894 1894 | 
             
            // - kMuIsCond indicates that this is a conditional acquire (condition variable,
         | 
| 1895 1895 | 
             
            //   Await,  LockWhen) so contention profiling should be suppressed.
         | 
| 1896 | 
            -
            bool Mutex::LockSlowWithDeadline(MuHow how, const Condition  | 
| 1896 | 
            +
            bool Mutex::LockSlowWithDeadline(MuHow how, const Condition* cond,
         | 
| 1897 1897 | 
             
                                             KernelTimeout t, int flags) {
         | 
| 1898 1898 | 
             
              intptr_t v = mu_.load(std::memory_order_relaxed);
         | 
| 1899 1899 | 
             
              bool unlock = false;
         | 
| @@ -1910,9 +1910,9 @@ bool Mutex::LockSlowWithDeadline(MuHow how, const Condition *cond, | |
| 1910 1910 | 
             
                }
         | 
| 1911 1911 | 
             
                unlock = true;
         | 
| 1912 1912 | 
             
              }
         | 
| 1913 | 
            -
              SynchWaitParams waitp(
         | 
| 1914 | 
            -
             | 
| 1915 | 
            -
             | 
| 1913 | 
            +
              SynchWaitParams waitp(how, cond, t, nullptr /*no cvmu*/,
         | 
| 1914 | 
            +
                                    Synch_GetPerThreadAnnotated(this),
         | 
| 1915 | 
            +
                                    nullptr /*no cv_word*/);
         | 
| 1916 1916 | 
             
              if (!Condition::GuaranteedEqual(cond, nullptr)) {
         | 
| 1917 1917 | 
             
                flags |= kMuIsCond;
         | 
| 1918 1918 | 
             
              }
         | 
| @@ -1953,20 +1953,20 @@ static void CheckForMutexCorruption(intptr_t v, const char* label) { | |
| 1953 1953 | 
             
              if (ABSL_PREDICT_TRUE((w & (w << 3) & (kMuWriter | kMuWrWait)) == 0)) return;
         | 
| 1954 1954 | 
             
              RAW_CHECK_FMT((v & (kMuWriter | kMuReader)) != (kMuWriter | kMuReader),
         | 
| 1955 1955 | 
             
                            "%s: Mutex corrupt: both reader and writer lock held: %p",
         | 
| 1956 | 
            -
                            label, reinterpret_cast<void | 
| 1956 | 
            +
                            label, reinterpret_cast<void*>(v));
         | 
| 1957 1957 | 
             
              RAW_CHECK_FMT((v & (kMuWait | kMuWrWait)) != kMuWrWait,
         | 
| 1958 | 
            -
                            "%s: Mutex corrupt: waiting writer with no waiters: %p",
         | 
| 1959 | 
            -
                             | 
| 1958 | 
            +
                            "%s: Mutex corrupt: waiting writer with no waiters: %p", label,
         | 
| 1959 | 
            +
                            reinterpret_cast<void*>(v));
         | 
| 1960 1960 | 
             
              assert(false);
         | 
| 1961 1961 | 
             
            }
         | 
| 1962 1962 |  | 
| 1963 | 
            -
            void Mutex::LockSlowLoop(SynchWaitParams  | 
| 1963 | 
            +
            void Mutex::LockSlowLoop(SynchWaitParams* waitp, int flags) {
         | 
| 1964 1964 | 
             
              SchedulingGuard::ScopedDisable disable_rescheduling;
         | 
| 1965 1965 | 
             
              int c = 0;
         | 
| 1966 1966 | 
             
              intptr_t v = mu_.load(std::memory_order_relaxed);
         | 
| 1967 1967 | 
             
              if ((v & kMuEvent) != 0) {
         | 
| 1968 | 
            -
                PostSynchEvent( | 
| 1969 | 
            -
             | 
| 1968 | 
            +
                PostSynchEvent(
         | 
| 1969 | 
            +
                    this, waitp->how == kExclusive ? SYNCH_EV_LOCK : SYNCH_EV_READERLOCK);
         | 
| 1970 1970 | 
             
              }
         | 
| 1971 1971 | 
             
              ABSL_RAW_CHECK(
         | 
| 1972 1972 | 
             
                  waitp->thread->waitp == nullptr || waitp->thread->suppress_fatal_errors,
         | 
| @@ -1991,11 +1991,11 @@ void Mutex::LockSlowLoop(SynchWaitParams *waitp, int flags) { | |
| 1991 1991 | 
             
                    flags |= kMuHasBlocked;
         | 
| 1992 1992 | 
             
                    c = 0;
         | 
| 1993 1993 | 
             
                  }
         | 
| 1994 | 
            -
                } else { | 
| 1994 | 
            +
                } else {  // need to access waiter list
         | 
| 1995 1995 | 
             
                  bool dowait = false;
         | 
| 1996 | 
            -
                  if ((v & (kMuSpin|kMuWait)) == 0) { | 
| 1996 | 
            +
                  if ((v & (kMuSpin | kMuWait)) == 0) {  // no waiters
         | 
| 1997 1997 | 
             
                    // This thread tries to become the one and only waiter.
         | 
| 1998 | 
            -
                    PerThreadSynch  | 
| 1998 | 
            +
                    PerThreadSynch* new_h = Enqueue(nullptr, waitp, v, flags);
         | 
| 1999 1999 | 
             
                    intptr_t nv =
         | 
| 2000 2000 | 
             
                        (v & ClearDesignatedWakerMask(flags & kMuHasBlocked) & kMuLow) |
         | 
| 2001 2001 | 
             
                        kMuWait;
         | 
| @@ -2007,7 +2007,7 @@ void Mutex::LockSlowLoop(SynchWaitParams *waitp, int flags) { | |
| 2007 2007 | 
             
                            v, reinterpret_cast<intptr_t>(new_h) | nv,
         | 
| 2008 2008 | 
             
                            std::memory_order_release, std::memory_order_relaxed)) {
         | 
| 2009 2009 | 
             
                      dowait = true;
         | 
| 2010 | 
            -
                    } else { | 
| 2010 | 
            +
                    } else {  // attempted Enqueue() failed
         | 
| 2011 2011 | 
             
                      // zero out the waitp field set by Enqueue()
         | 
| 2012 2012 | 
             
                      waitp->thread->waitp = nullptr;
         | 
| 2013 2013 | 
             
                    }
         | 
| @@ -2020,9 +2020,9 @@ void Mutex::LockSlowLoop(SynchWaitParams *waitp, int flags) { | |
| 2020 2020 | 
             
                            (v & ClearDesignatedWakerMask(flags & kMuHasBlocked)) |
         | 
| 2021 2021 | 
             
                                kMuSpin | kMuReader,
         | 
| 2022 2022 | 
             
                            std::memory_order_acquire, std::memory_order_relaxed)) {
         | 
| 2023 | 
            -
                      PerThreadSynch  | 
| 2024 | 
            -
                      h->readers += kMuOne; | 
| 2025 | 
            -
                      do { | 
| 2023 | 
            +
                      PerThreadSynch* h = GetPerThreadSynch(v);
         | 
| 2024 | 
            +
                      h->readers += kMuOne;  // inc reader count in waiter
         | 
| 2025 | 
            +
                      do {                   // release spinlock
         | 
| 2026 2026 | 
             
                        v = mu_.load(std::memory_order_relaxed);
         | 
| 2027 2027 | 
             
                      } while (!mu_.compare_exchange_weak(v, (v & ~kMuSpin) | kMuReader,
         | 
| 2028 2028 | 
             
                                                          std::memory_order_release,
         | 
| @@ -2032,7 +2032,7 @@ void Mutex::LockSlowLoop(SynchWaitParams *waitp, int flags) { | |
| 2032 2032 | 
             
                                                 waitp->how == kShared)) {
         | 
| 2033 2033 | 
             
                        break;  // we timed out, or condition true, so return
         | 
| 2034 2034 | 
             
                      }
         | 
| 2035 | 
            -
                      this->UnlockSlow(waitp); | 
| 2035 | 
            +
                      this->UnlockSlow(waitp);  // got lock but condition false
         | 
| 2036 2036 | 
             
                      this->Block(waitp->thread);
         | 
| 2037 2037 | 
             
                      flags |= kMuHasBlocked;
         | 
| 2038 2038 | 
             
                      c = 0;
         | 
| @@ -2043,18 +2043,19 @@ void Mutex::LockSlowLoop(SynchWaitParams *waitp, int flags) { | |
| 2043 2043 | 
             
                                 (v & ClearDesignatedWakerMask(flags & kMuHasBlocked)) |
         | 
| 2044 2044 | 
             
                                     kMuSpin | kMuWait,
         | 
| 2045 2045 | 
             
                                 std::memory_order_acquire, std::memory_order_relaxed)) {
         | 
| 2046 | 
            -
                    PerThreadSynch  | 
| 2047 | 
            -
                    PerThreadSynch  | 
| 2046 | 
            +
                    PerThreadSynch* h = GetPerThreadSynch(v);
         | 
| 2047 | 
            +
                    PerThreadSynch* new_h = Enqueue(h, waitp, v, flags);
         | 
| 2048 2048 | 
             
                    intptr_t wr_wait = 0;
         | 
| 2049 2049 | 
             
                    ABSL_RAW_CHECK(new_h != nullptr, "Enqueue to list failed");
         | 
| 2050 2050 | 
             
                    if (waitp->how == kExclusive && (v & kMuReader) != 0) {
         | 
| 2051 | 
            -
                      wr_wait = kMuWrWait; | 
| 2051 | 
            +
                      wr_wait = kMuWrWait;  // give priority to a waiting writer
         | 
| 2052 2052 | 
             
                    }
         | 
| 2053 | 
            -
                    do { | 
| 2053 | 
            +
                    do {  // release spinlock
         | 
| 2054 2054 | 
             
                      v = mu_.load(std::memory_order_relaxed);
         | 
| 2055 2055 | 
             
                    } while (!mu_.compare_exchange_weak(
         | 
| 2056 | 
            -
                        v, | 
| 2057 | 
            -
                         | 
| 2056 | 
            +
                        v,
         | 
| 2057 | 
            +
                        (v & (kMuLow & ~kMuSpin)) | kMuWait | wr_wait |
         | 
| 2058 | 
            +
                            reinterpret_cast<intptr_t>(new_h),
         | 
| 2058 2059 | 
             
                        std::memory_order_release, std::memory_order_relaxed));
         | 
| 2059 2060 | 
             
                    dowait = true;
         | 
| 2060 2061 | 
             
                  }
         | 
| @@ -2074,9 +2075,9 @@ void Mutex::LockSlowLoop(SynchWaitParams *waitp, int flags) { | |
| 2074 2075 | 
             
                  waitp->thread->waitp == nullptr || waitp->thread->suppress_fatal_errors,
         | 
| 2075 2076 | 
             
                  "detected illegal recursion into Mutex code");
         | 
| 2076 2077 | 
             
              if ((v & kMuEvent) != 0) {
         | 
| 2077 | 
            -
                PostSynchEvent(this,
         | 
| 2078 | 
            -
             | 
| 2079 | 
            -
             | 
| 2078 | 
            +
                PostSynchEvent(this, waitp->how == kExclusive
         | 
| 2079 | 
            +
                                         ? SYNCH_EV_LOCK_RETURNING
         | 
| 2080 | 
            +
                                         : SYNCH_EV_READERLOCK_RETURNING);
         | 
| 2080 2081 | 
             
              }
         | 
| 2081 2082 | 
             
            }
         | 
| 2082 2083 |  | 
| @@ -2085,28 +2086,28 @@ void Mutex::LockSlowLoop(SynchWaitParams *waitp, int flags) { | |
| 2085 2086 | 
             
            // which holds the lock but is not runnable because its condition is false
         | 
| 2086 2087 | 
             
            // or it is in the process of blocking on a condition variable; it must requeue
         | 
| 2087 2088 | 
             
            // itself on the mutex/condvar to wait for its condition to become true.
         | 
| 2088 | 
            -
            ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams  | 
| 2089 | 
            +
            ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams* waitp) {
         | 
| 2089 2090 | 
             
              SchedulingGuard::ScopedDisable disable_rescheduling;
         | 
| 2090 2091 | 
             
              intptr_t v = mu_.load(std::memory_order_relaxed);
         | 
| 2091 2092 | 
             
              this->AssertReaderHeld();
         | 
| 2092 2093 | 
             
              CheckForMutexCorruption(v, "Unlock");
         | 
| 2093 2094 | 
             
              if ((v & kMuEvent) != 0) {
         | 
| 2094 | 
            -
                PostSynchEvent( | 
| 2095 | 
            -
             | 
| 2095 | 
            +
                PostSynchEvent(
         | 
| 2096 | 
            +
                    this, (v & kMuWriter) != 0 ? SYNCH_EV_UNLOCK : SYNCH_EV_READERUNLOCK);
         | 
| 2096 2097 | 
             
              }
         | 
| 2097 2098 | 
             
              int c = 0;
         | 
| 2098 2099 | 
             
              // the waiter under consideration to wake, or zero
         | 
| 2099 | 
            -
              PerThreadSynch  | 
| 2100 | 
            +
              PerThreadSynch* w = nullptr;
         | 
| 2100 2101 | 
             
              // the predecessor to w or zero
         | 
| 2101 | 
            -
              PerThreadSynch  | 
| 2102 | 
            +
              PerThreadSynch* pw = nullptr;
         | 
| 2102 2103 | 
             
              // head of the list searched previously, or zero
         | 
| 2103 | 
            -
              PerThreadSynch  | 
| 2104 | 
            +
              PerThreadSynch* old_h = nullptr;
         | 
| 2104 2105 | 
             
              // a condition that's known to be false.
         | 
| 2105 | 
            -
              const Condition  | 
| 2106 | 
            -
              PerThreadSynch  | 
| 2107 | 
            -
              intptr_t wr_wait = 0; | 
| 2108 | 
            -
             | 
| 2109 | 
            -
             | 
| 2106 | 
            +
              const Condition* known_false = nullptr;
         | 
| 2107 | 
            +
              PerThreadSynch* wake_list = kPerThreadSynchNull;  // list of threads to wake
         | 
| 2108 | 
            +
              intptr_t wr_wait = 0;  // set to kMuWrWait if we wake a reader and a
         | 
| 2109 | 
            +
                                     // later writer could have acquired the lock
         | 
| 2110 | 
            +
                                     // (starvation avoidance)
         | 
| 2110 2111 | 
             
              ABSL_RAW_CHECK(waitp == nullptr || waitp->thread->waitp == nullptr ||
         | 
| 2111 2112 | 
             
                                 waitp->thread->suppress_fatal_errors,
         | 
| 2112 2113 | 
             
                             "detected illegal recursion into Mutex code");
         | 
| @@ -2126,8 +2127,7 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2126 2127 | 
             
                } else if ((v & (kMuReader | kMuWait)) == kMuReader && waitp == nullptr) {
         | 
| 2127 2128 | 
             
                  // fast reader release (reader with no waiters)
         | 
| 2128 2129 | 
             
                  intptr_t clear = ExactlyOneReader(v) ? kMuReader | kMuOne : kMuOne;
         | 
| 2129 | 
            -
                  if (mu_.compare_exchange_strong(v, v - clear,
         | 
| 2130 | 
            -
                                                  std::memory_order_release,
         | 
| 2130 | 
            +
                  if (mu_.compare_exchange_strong(v, v - clear, std::memory_order_release,
         | 
| 2131 2131 | 
             
                                                  std::memory_order_relaxed)) {
         | 
| 2132 2132 | 
             
                    return;
         | 
| 2133 2133 | 
             
                  }
         | 
| @@ -2135,16 +2135,16 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2135 2135 | 
             
                           mu_.compare_exchange_strong(v, v | kMuSpin,
         | 
| 2136 2136 | 
             
                                                       std::memory_order_acquire,
         | 
| 2137 2137 | 
             
                                                       std::memory_order_relaxed)) {
         | 
| 2138 | 
            -
                  if ((v & kMuWait) == 0) { | 
| 2138 | 
            +
                  if ((v & kMuWait) == 0) {  // no one to wake
         | 
| 2139 2139 | 
             
                    intptr_t nv;
         | 
| 2140 2140 | 
             
                    bool do_enqueue = true;  // always Enqueue() the first time
         | 
| 2141 2141 | 
             
                    ABSL_RAW_CHECK(waitp != nullptr,
         | 
| 2142 2142 | 
             
                                   "UnlockSlow is confused");  // about to sleep
         | 
| 2143 | 
            -
                    do { | 
| 2143 | 
            +
                    do {  // must loop to release spinlock as reader count may change
         | 
| 2144 2144 | 
             
                      v = mu_.load(std::memory_order_relaxed);
         | 
| 2145 2145 | 
             
                      // decrement reader count if there are readers
         | 
| 2146 | 
            -
                      intptr_t new_readers = (v >= kMuOne)? | 
| 2147 | 
            -
                      PerThreadSynch  | 
| 2146 | 
            +
                      intptr_t new_readers = (v >= kMuOne) ? v - kMuOne : v;
         | 
| 2147 | 
            +
                      PerThreadSynch* new_h = nullptr;
         | 
| 2148 2148 | 
             
                      if (do_enqueue) {
         | 
| 2149 2149 | 
             
                        // If we are enqueuing on a CondVar (waitp->cv_word != nullptr) then
         | 
| 2150 2150 | 
             
                        // we must not retry here.  The initial attempt will always have
         | 
| @@ -2168,21 +2168,20 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2168 2168 | 
             
                      }
         | 
| 2169 2169 | 
             
                      // release spinlock & our lock; retry if reader-count changed
         | 
| 2170 2170 | 
             
                      // (writer count cannot change since we hold lock)
         | 
| 2171 | 
            -
                    } while (!mu_.compare_exchange_weak(v, nv,
         | 
| 2172 | 
            -
                                                        std::memory_order_release,
         | 
| 2171 | 
            +
                    } while (!mu_.compare_exchange_weak(v, nv, std::memory_order_release,
         | 
| 2173 2172 | 
             
                                                        std::memory_order_relaxed));
         | 
| 2174 2173 | 
             
                    break;
         | 
| 2175 2174 | 
             
                  }
         | 
| 2176 2175 |  | 
| 2177 2176 | 
             
                  // There are waiters.
         | 
| 2178 2177 | 
             
                  // Set h to the head of the circular waiter list.
         | 
| 2179 | 
            -
                  PerThreadSynch  | 
| 2178 | 
            +
                  PerThreadSynch* h = GetPerThreadSynch(v);
         | 
| 2180 2179 | 
             
                  if ((v & kMuReader) != 0 && (h->readers & kMuHigh) > kMuOne) {
         | 
| 2181 2180 | 
             
                    // a reader but not the last
         | 
| 2182 | 
            -
                    h->readers -= kMuOne; | 
| 2183 | 
            -
                    intptr_t nv = v; | 
| 2181 | 
            +
                    h->readers -= kMuOne;    // release our lock
         | 
| 2182 | 
            +
                    intptr_t nv = v;         // normally just release spinlock
         | 
| 2184 2183 | 
             
                    if (waitp != nullptr) {  // but waitp!=nullptr => must queue ourselves
         | 
| 2185 | 
            -
                      PerThreadSynch  | 
| 2184 | 
            +
                      PerThreadSynch* new_h = Enqueue(h, waitp, v, kMuIsCond);
         | 
| 2186 2185 | 
             
                      ABSL_RAW_CHECK(new_h != nullptr,
         | 
| 2187 2186 | 
             
                                     "waiters disappeared during Enqueue()!");
         | 
| 2188 2187 | 
             
                      nv &= kMuLow;
         | 
| @@ -2200,8 +2199,8 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2200 2199 |  | 
| 2201 2200 | 
             
                  // The lock is becoming free, and there's a waiter
         | 
| 2202 2201 | 
             
                  if (old_h != nullptr &&
         | 
| 2203 | 
            -
                      !old_h->may_skip) { | 
| 2204 | 
            -
                    old_h->may_skip = true; | 
| 2202 | 
            +
                      !old_h->may_skip) {    // we used old_h as a terminator
         | 
| 2203 | 
            +
                    old_h->may_skip = true;  // allow old_h to skip once more
         | 
| 2205 2204 | 
             
                    ABSL_RAW_CHECK(old_h->skip == nullptr, "illegal skip from head");
         | 
| 2206 2205 | 
             
                    if (h != old_h && MuEquivalentWaiter(old_h, old_h->next)) {
         | 
| 2207 2206 | 
             
                      old_h->skip = old_h->next;  // old_h not head & can skip to successor
         | 
| @@ -2210,7 +2209,7 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2210 2209 | 
             
                  if (h->next->waitp->how == kExclusive &&
         | 
| 2211 2210 | 
             
                      Condition::GuaranteedEqual(h->next->waitp->cond, nullptr)) {
         | 
| 2212 2211 | 
             
                    // easy case: writer with no condition; no need to search
         | 
| 2213 | 
            -
                    pw = h; | 
| 2212 | 
            +
                    pw = h;  // wake w, the successor of h (=pw)
         | 
| 2214 2213 | 
             
                    w = h->next;
         | 
| 2215 2214 | 
             
                    w->wake = true;
         | 
| 2216 2215 | 
             
                    // We are waking up a writer.  This writer may be racing against
         | 
| @@ -2233,13 +2232,13 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2233 2232 | 
             
                    // waiter has a condition or is a reader.  We avoid searching over
         | 
| 2234 2233 | 
             
                    // waiters we've searched on previous iterations by starting at
         | 
| 2235 2234 | 
             
                    // old_h if it's set.  If old_h==h, there's no one to wakeup at all.
         | 
| 2236 | 
            -
                    if (old_h == h) { | 
| 2237 | 
            -
             | 
| 2238 | 
            -
                      intptr_t nv = (v & ~(kMuReader|kMuWriter|kMuWrWait));
         | 
| 2235 | 
            +
                    if (old_h == h) {  // we've searched before, and nothing's new
         | 
| 2236 | 
            +
                                       // so there's no one to wake.
         | 
| 2237 | 
            +
                      intptr_t nv = (v & ~(kMuReader | kMuWriter | kMuWrWait));
         | 
| 2239 2238 | 
             
                      h->readers = 0;
         | 
| 2240 | 
            -
                      h->maybe_unlocking = false; | 
| 2241 | 
            -
                      if (waitp != nullptr) { | 
| 2242 | 
            -
                        PerThreadSynch  | 
| 2239 | 
            +
                      h->maybe_unlocking = false;  // finished unlocking
         | 
| 2240 | 
            +
                      if (waitp != nullptr) {      // we must queue ourselves and sleep
         | 
| 2241 | 
            +
                        PerThreadSynch* new_h = Enqueue(h, waitp, v, kMuIsCond);
         | 
| 2243 2242 | 
             
                        nv &= kMuLow;
         | 
| 2244 2243 | 
             
                        if (new_h != nullptr) {
         | 
| 2245 2244 | 
             
                          nv |= kMuWait | reinterpret_cast<intptr_t>(new_h);
         | 
| @@ -2253,12 +2252,12 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2253 2252 | 
             
                    }
         | 
| 2254 2253 |  | 
| 2255 2254 | 
             
                    // set up to walk the list
         | 
| 2256 | 
            -
                    PerThreadSynch  | 
| 2257 | 
            -
                    PerThreadSynch  | 
| 2255 | 
            +
                    PerThreadSynch* w_walk;   // current waiter during list walk
         | 
| 2256 | 
            +
                    PerThreadSynch* pw_walk;  // previous waiter during list walk
         | 
| 2258 2257 | 
             
                    if (old_h != nullptr) {  // we've searched up to old_h before
         | 
| 2259 2258 | 
             
                      pw_walk = old_h;
         | 
| 2260 2259 | 
             
                      w_walk = old_h->next;
         | 
| 2261 | 
            -
                    } else { | 
| 2260 | 
            +
                    } else {  // no prior search, start at beginning
         | 
| 2262 2261 | 
             
                      pw_walk =
         | 
| 2263 2262 | 
             
                          nullptr;  // h->next's predecessor may change; don't record it
         | 
| 2264 2263 | 
             
                      w_walk = h->next;
         | 
| @@ -2284,7 +2283,7 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2284 2283 | 
             
                    // to walk the path from w_walk to h inclusive. (TryRemove() can remove
         | 
| 2285 2284 | 
             
                    // a waiter anywhere, but it acquires both the spinlock and the Mutex)
         | 
| 2286 2285 |  | 
| 2287 | 
            -
                    old_h = h; | 
| 2286 | 
            +
                    old_h = h;  // remember we searched to here
         | 
| 2288 2287 |  | 
| 2289 2288 | 
             
                    // Walk the path upto and including h looking for waiters we can wake.
         | 
| 2290 2289 | 
             
                    while (pw_walk != h) {
         | 
| @@ -2296,24 +2295,24 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2296 2295 | 
             
                           //  is in fact true
         | 
| 2297 2296 | 
             
                           EvalConditionIgnored(this, w_walk->waitp->cond))) {
         | 
| 2298 2297 | 
             
                        if (w == nullptr) {
         | 
| 2299 | 
            -
                          w_walk->wake = true; | 
| 2298 | 
            +
                          w_walk->wake = true;  // can wake this waiter
         | 
| 2300 2299 | 
             
                          w = w_walk;
         | 
| 2301 2300 | 
             
                          pw = pw_walk;
         | 
| 2302 2301 | 
             
                          if (w_walk->waitp->how == kExclusive) {
         | 
| 2303 2302 | 
             
                            wr_wait = kMuWrWait;
         | 
| 2304 | 
            -
                            break; | 
| 2303 | 
            +
                            break;  // bail if waking this writer
         | 
| 2305 2304 | 
             
                          }
         | 
| 2306 2305 | 
             
                        } else if (w_walk->waitp->how == kShared) {  // wake if a reader
         | 
| 2307 2306 | 
             
                          w_walk->wake = true;
         | 
| 2308 | 
            -
                        } else { | 
| 2307 | 
            +
                        } else {  // writer with true condition
         | 
| 2309 2308 | 
             
                          wr_wait = kMuWrWait;
         | 
| 2310 2309 | 
             
                        }
         | 
| 2311 | 
            -
                      } else { | 
| 2310 | 
            +
                      } else {                              // can't wake; condition false
         | 
| 2312 2311 | 
             
                        known_false = w_walk->waitp->cond;  // remember last false condition
         | 
| 2313 2312 | 
             
                      }
         | 
| 2314 | 
            -
                      if (w_walk->wake) { | 
| 2315 | 
            -
                        pw_walk = w_walk; | 
| 2316 | 
            -
                      } else { | 
| 2313 | 
            +
                      if (w_walk->wake) {  // we're waking reader w_walk
         | 
| 2314 | 
            +
                        pw_walk = w_walk;  // don't skip similar waiters
         | 
| 2315 | 
            +
                      } else {             // not waking; skip as much as possible
         | 
| 2317 2316 | 
             
                        pw_walk = Skip(w_walk);
         | 
| 2318 2317 | 
             
                      }
         | 
| 2319 2318 | 
             
                      // If pw_walk == h, then load of pw_walk->next can race with
         | 
| @@ -2340,8 +2339,8 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2340 2339 | 
             
                  h = DequeueAllWakeable(h, pw, &wake_list);
         | 
| 2341 2340 |  | 
| 2342 2341 | 
             
                  intptr_t nv = (v & kMuEvent) | kMuDesig;
         | 
| 2343 | 
            -
             | 
| 2344 | 
            -
             | 
| 2342 | 
            +
                  // assume no waiters left,
         | 
| 2343 | 
            +
                  // set kMuDesig for INV1a
         | 
| 2345 2344 |  | 
| 2346 2345 | 
             
                  if (waitp != nullptr) {  // we must queue ourselves and sleep
         | 
| 2347 2346 | 
             
                    h = Enqueue(h, waitp, v, kMuIsCond);
         | 
| @@ -2354,7 +2353,7 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2354 2353 |  | 
| 2355 2354 | 
             
                  if (h != nullptr) {  // there are waiters left
         | 
| 2356 2355 | 
             
                    h->readers = 0;
         | 
| 2357 | 
            -
                    h->maybe_unlocking = false; | 
| 2356 | 
            +
                    h->maybe_unlocking = false;  // finished unlocking
         | 
| 2358 2357 | 
             
                    nv |= wr_wait | kMuWait | reinterpret_cast<intptr_t>(h);
         | 
| 2359 2358 | 
             
                  }
         | 
| 2360 2359 |  | 
| @@ -2365,12 +2364,12 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2365 2364 | 
             
                }
         | 
| 2366 2365 | 
             
                // aggressive here; no one can proceed till we do
         | 
| 2367 2366 | 
             
                c = synchronization_internal::MutexDelay(c, AGGRESSIVE);
         | 
| 2368 | 
            -
              } | 
| 2367 | 
            +
              }  // end of for(;;)-loop
         | 
| 2369 2368 |  | 
| 2370 2369 | 
             
              if (wake_list != kPerThreadSynchNull) {
         | 
| 2371 2370 | 
             
                int64_t total_wait_cycles = 0;
         | 
| 2372 2371 | 
             
                int64_t max_wait_cycles = 0;
         | 
| 2373 | 
            -
                int64_t now =  | 
| 2372 | 
            +
                int64_t now = CycleClock::Now();
         | 
| 2374 2373 | 
             
                do {
         | 
| 2375 2374 | 
             
                  // Profile lock contention events only if the waiter was trying to acquire
         | 
| 2376 2375 | 
             
                  // the lock, not waiting on a condition variable or Condition.
         | 
| @@ -2382,7 +2381,7 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { | |
| 2382 2381 | 
             
                    wake_list->waitp->contention_start_cycles = now;
         | 
| 2383 2382 | 
             
                    wake_list->waitp->should_submit_contention_data = true;
         | 
| 2384 2383 | 
             
                  }
         | 
| 2385 | 
            -
                  wake_list = Wakeup(wake_list); | 
| 2384 | 
            +
                  wake_list = Wakeup(wake_list);  // wake waiters
         | 
| 2386 2385 | 
             
                } while (wake_list != kPerThreadSynchNull);
         | 
| 2387 2386 | 
             
                if (total_wait_cycles > 0) {
         | 
| 2388 2387 | 
             
                  mutex_tracer("slow release", this, total_wait_cycles);
         | 
| @@ -2410,7 +2409,7 @@ void Mutex::Trans(MuHow how) { | |
| 2410 2409 | 
             
            // condition variable.  If this mutex is free, we simply wake the thread.
         | 
| 2411 2410 | 
             
            // It will later acquire the mutex with high probability.  Otherwise, we
         | 
| 2412 2411 | 
             
            // enqueue thread w on this mutex.
         | 
| 2413 | 
            -
            void Mutex::Fer(PerThreadSynch  | 
| 2412 | 
            +
            void Mutex::Fer(PerThreadSynch* w) {
         | 
| 2414 2413 | 
             
              SchedulingGuard::ScopedDisable disable_rescheduling;
         | 
| 2415 2414 | 
             
              int c = 0;
         | 
| 2416 2415 | 
             
              ABSL_RAW_CHECK(w->waitp->cond == nullptr,
         | 
| @@ -2435,9 +2434,9 @@ void Mutex::Fer(PerThreadSynch *w) { | |
| 2435 2434 | 
             
                  IncrementSynchSem(this, w);
         | 
| 2436 2435 | 
             
                  return;
         | 
| 2437 2436 | 
             
                } else {
         | 
| 2438 | 
            -
                  if ((v & (kMuSpin|kMuWait)) == 0) { | 
| 2437 | 
            +
                  if ((v & (kMuSpin | kMuWait)) == 0) {  // no waiters
         | 
| 2439 2438 | 
             
                    // This thread tries to become the one and only waiter.
         | 
| 2440 | 
            -
                    PerThreadSynch  | 
| 2439 | 
            +
                    PerThreadSynch* new_h = Enqueue(nullptr, w->waitp, v, kMuIsCond);
         | 
| 2441 2440 | 
             
                    ABSL_RAW_CHECK(new_h != nullptr,
         | 
| 2442 2441 | 
             
                                   "Enqueue failed");  // we must queue ourselves
         | 
| 2443 2442 | 
             
                    if (mu_.compare_exchange_strong(
         | 
| @@ -2447,8 +2446,8 @@ void Mutex::Fer(PerThreadSynch *w) { | |
| 2447 2446 | 
             
                    }
         | 
| 2448 2447 | 
             
                  } else if ((v & kMuSpin) == 0 &&
         | 
| 2449 2448 | 
             
                             mu_.compare_exchange_strong(v, v | kMuSpin | kMuWait)) {
         | 
| 2450 | 
            -
                    PerThreadSynch  | 
| 2451 | 
            -
                    PerThreadSynch  | 
| 2449 | 
            +
                    PerThreadSynch* h = GetPerThreadSynch(v);
         | 
| 2450 | 
            +
                    PerThreadSynch* new_h = Enqueue(h, w->waitp, v, kMuIsCond);
         | 
| 2452 2451 | 
             
                    ABSL_RAW_CHECK(new_h != nullptr,
         | 
| 2453 2452 | 
             
                                   "Enqueue failed");  // we must queue ourselves
         | 
| 2454 2453 | 
             
                    do {
         | 
| @@ -2467,19 +2466,18 @@ void Mutex::Fer(PerThreadSynch *w) { | |
| 2467 2466 |  | 
| 2468 2467 | 
             
            void Mutex::AssertHeld() const {
         | 
| 2469 2468 | 
             
              if ((mu_.load(std::memory_order_relaxed) & kMuWriter) == 0) {
         | 
| 2470 | 
            -
                SynchEvent  | 
| 2469 | 
            +
                SynchEvent* e = GetSynchEvent(this);
         | 
| 2471 2470 | 
             
                ABSL_RAW_LOG(FATAL, "thread should hold write lock on Mutex %p %s",
         | 
| 2472 | 
            -
                             static_cast<const void | 
| 2473 | 
            -
                             (e == nullptr ? "" : e->name));
         | 
| 2471 | 
            +
                             static_cast<const void*>(this), (e == nullptr ? "" : e->name));
         | 
| 2474 2472 | 
             
              }
         | 
| 2475 2473 | 
             
            }
         | 
| 2476 2474 |  | 
| 2477 2475 | 
             
            void Mutex::AssertReaderHeld() const {
         | 
| 2478 2476 | 
             
              if ((mu_.load(std::memory_order_relaxed) & (kMuReader | kMuWriter)) == 0) {
         | 
| 2479 | 
            -
                SynchEvent  | 
| 2480 | 
            -
                ABSL_RAW_LOG(
         | 
| 2481 | 
            -
             | 
| 2482 | 
            -
             | 
| 2477 | 
            +
                SynchEvent* e = GetSynchEvent(this);
         | 
| 2478 | 
            +
                ABSL_RAW_LOG(FATAL,
         | 
| 2479 | 
            +
                             "thread should hold at least a read lock on Mutex %p %s",
         | 
| 2480 | 
            +
                             static_cast<const void*>(this), (e == nullptr ? "" : e->name));
         | 
| 2483 2481 | 
             
              }
         | 
| 2484 2482 | 
             
            }
         | 
| 2485 2483 |  | 
| @@ -2490,13 +2488,17 @@ static const intptr_t kCvEvent = 0x0002L;  // record events | |
| 2490 2488 | 
             
            static const intptr_t kCvLow = 0x0003L;  // low order bits of CV
         | 
| 2491 2489 |  | 
| 2492 2490 | 
             
            // Hack to make constant values available to gdb pretty printer
         | 
| 2493 | 
            -
            enum { | 
| 2491 | 
            +
            enum {
         | 
| 2492 | 
            +
              kGdbCvSpin = kCvSpin,
         | 
| 2493 | 
            +
              kGdbCvEvent = kCvEvent,
         | 
| 2494 | 
            +
              kGdbCvLow = kCvLow,
         | 
| 2495 | 
            +
            };
         | 
| 2494 2496 |  | 
| 2495 2497 | 
             
            static_assert(PerThreadSynch::kAlignment > kCvLow,
         | 
| 2496 2498 | 
             
                          "PerThreadSynch::kAlignment must be greater than kCvLow");
         | 
| 2497 2499 |  | 
| 2498 | 
            -
            void CondVar::EnableDebugLog(const char  | 
| 2499 | 
            -
              SynchEvent  | 
| 2500 | 
            +
            void CondVar::EnableDebugLog(const char* name) {
         | 
| 2501 | 
            +
              SynchEvent* e = EnsureSynchEvent(&this->cv_, name, kCvEvent, kCvSpin);
         | 
| 2500 2502 | 
             
              e->log = true;
         | 
| 2501 2503 | 
             
              UnrefSynchEvent(e);
         | 
| 2502 2504 | 
             
            }
         | 
| @@ -2507,25 +2509,23 @@ CondVar::~CondVar() { | |
| 2507 2509 | 
             
              }
         | 
| 2508 2510 | 
             
            }
         | 
| 2509 2511 |  | 
| 2510 | 
            -
             | 
| 2511 2512 | 
             
            // Remove thread s from the list of waiters on this condition variable.
         | 
| 2512 | 
            -
            void CondVar::Remove(PerThreadSynch  | 
| 2513 | 
            +
            void CondVar::Remove(PerThreadSynch* s) {
         | 
| 2513 2514 | 
             
              SchedulingGuard::ScopedDisable disable_rescheduling;
         | 
| 2514 2515 | 
             
              intptr_t v;
         | 
| 2515 2516 | 
             
              int c = 0;
         | 
| 2516 2517 | 
             
              for (v = cv_.load(std::memory_order_relaxed);;
         | 
| 2517 2518 | 
             
                   v = cv_.load(std::memory_order_relaxed)) {
         | 
| 2518 2519 | 
             
                if ((v & kCvSpin) == 0 &&  // attempt to acquire spinlock
         | 
| 2519 | 
            -
                    cv_.compare_exchange_strong(v, v | kCvSpin,
         | 
| 2520 | 
            -
                                                std::memory_order_acquire,
         | 
| 2520 | 
            +
                    cv_.compare_exchange_strong(v, v | kCvSpin, std::memory_order_acquire,
         | 
| 2521 2521 | 
             
                                                std::memory_order_relaxed)) {
         | 
| 2522 | 
            -
                  PerThreadSynch  | 
| 2522 | 
            +
                  PerThreadSynch* h = reinterpret_cast<PerThreadSynch*>(v & ~kCvLow);
         | 
| 2523 2523 | 
             
                  if (h != nullptr) {
         | 
| 2524 | 
            -
                    PerThreadSynch  | 
| 2524 | 
            +
                    PerThreadSynch* w = h;
         | 
| 2525 2525 | 
             
                    while (w->next != s && w->next != h) {  // search for thread
         | 
| 2526 2526 | 
             
                      w = w->next;
         | 
| 2527 2527 | 
             
                    }
         | 
| 2528 | 
            -
                    if (w->next == s) { | 
| 2528 | 
            +
                    if (w->next == s) {  // found thread; remove it
         | 
| 2529 2529 | 
             
                      w->next = s->next;
         | 
| 2530 2530 | 
             
                      if (h == s) {
         | 
| 2531 2531 | 
             
                        h = (w == s) ? nullptr : w;
         | 
| @@ -2534,7 +2534,7 @@ void CondVar::Remove(PerThreadSynch *s) { | |
| 2534 2534 | 
             
                      s->state.store(PerThreadSynch::kAvailable, std::memory_order_release);
         | 
| 2535 2535 | 
             
                    }
         | 
| 2536 2536 | 
             
                  }
         | 
| 2537 | 
            -
             | 
| 2537 | 
            +
                  // release spinlock
         | 
| 2538 2538 | 
             
                  cv_.store((v & kCvEvent) | reinterpret_cast<intptr_t>(h),
         | 
| 2539 2539 | 
             
                            std::memory_order_release);
         | 
| 2540 2540 | 
             
                  return;
         | 
| @@ -2557,14 +2557,14 @@ void CondVar::Remove(PerThreadSynch *s) { | |
| 2557 2557 | 
             
            // variable queue just before the mutex is to be unlocked, and (most
         | 
| 2558 2558 | 
             
            // importantly) after any call to an external routine that might re-enter the
         | 
| 2559 2559 | 
             
            // mutex code.
         | 
| 2560 | 
            -
            static void CondVarEnqueue(SynchWaitParams  | 
| 2560 | 
            +
            static void CondVarEnqueue(SynchWaitParams* waitp) {
         | 
| 2561 2561 | 
             
              // This thread might be transferred to the Mutex queue by Fer() when
         | 
| 2562 2562 | 
             
              // we are woken.  To make sure that is what happens, Enqueue() doesn't
         | 
| 2563 2563 | 
             
              // call CondVarEnqueue() again but instead uses its normal code.  We
         | 
| 2564 2564 | 
             
              // must do this before we queue ourselves so that cv_word will be null
         | 
| 2565 2565 | 
             
              // when seen by the dequeuer, who may wish immediately to requeue
         | 
| 2566 2566 | 
             
              // this thread on another queue.
         | 
| 2567 | 
            -
              std::atomic<intptr_t | 
| 2567 | 
            +
              std::atomic<intptr_t>* cv_word = waitp->cv_word;
         | 
| 2568 2568 | 
             
              waitp->cv_word = nullptr;
         | 
| 2569 2569 |  | 
| 2570 2570 | 
             
              intptr_t v = cv_word->load(std::memory_order_relaxed);
         | 
| @@ -2577,8 +2577,8 @@ static void CondVarEnqueue(SynchWaitParams *waitp) { | |
| 2577 2577 | 
             
                v = cv_word->load(std::memory_order_relaxed);
         | 
| 2578 2578 | 
             
              }
         | 
| 2579 2579 | 
             
              ABSL_RAW_CHECK(waitp->thread->waitp == nullptr, "waiting when shouldn't be");
         | 
| 2580 | 
            -
              waitp->thread->waitp = waitp; | 
| 2581 | 
            -
              PerThreadSynch  | 
| 2580 | 
            +
              waitp->thread->waitp = waitp;  // prepare ourselves for waiting
         | 
| 2581 | 
            +
              PerThreadSynch* h = reinterpret_cast<PerThreadSynch*>(v & ~kCvLow);
         | 
| 2582 2582 | 
             
              if (h == nullptr) {  // add this thread to waiter list
         | 
| 2583 2583 | 
             
                waitp->thread->next = waitp->thread;
         | 
| 2584 2584 | 
             
              } else {
         | 
| @@ -2591,8 +2591,8 @@ static void CondVarEnqueue(SynchWaitParams *waitp) { | |
| 2591 2591 | 
             
                             std::memory_order_release);
         | 
| 2592 2592 | 
             
            }
         | 
| 2593 2593 |  | 
| 2594 | 
            -
            bool CondVar::WaitCommon(Mutex  | 
| 2595 | 
            -
              bool rc = false; | 
| 2594 | 
            +
            bool CondVar::WaitCommon(Mutex* mutex, KernelTimeout t) {
         | 
| 2595 | 
            +
              bool rc = false;  // return value; true iff we timed-out
         | 
| 2596 2596 |  | 
| 2597 2597 | 
             
              intptr_t mutex_v = mutex->mu_.load(std::memory_order_relaxed);
         | 
| 2598 2598 | 
             
              Mutex::MuHow mutex_how = ((mutex_v & kMuWriter) != 0) ? kExclusive : kShared;
         | 
| @@ -2659,27 +2659,25 @@ bool CondVar::WaitCommon(Mutex *mutex, KernelTimeout t) { | |
| 2659 2659 | 
             
              return rc;
         | 
| 2660 2660 | 
             
            }
         | 
| 2661 2661 |  | 
| 2662 | 
            -
            bool CondVar::WaitWithTimeout(Mutex  | 
| 2663 | 
            -
              return  | 
| 2662 | 
            +
            bool CondVar::WaitWithTimeout(Mutex* mu, absl::Duration timeout) {
         | 
| 2663 | 
            +
              return WaitCommon(mu, KernelTimeout(timeout));
         | 
| 2664 2664 | 
             
            }
         | 
| 2665 2665 |  | 
| 2666 | 
            -
            bool CondVar::WaitWithDeadline(Mutex  | 
| 2666 | 
            +
            bool CondVar::WaitWithDeadline(Mutex* mu, absl::Time deadline) {
         | 
| 2667 2667 | 
             
              return WaitCommon(mu, KernelTimeout(deadline));
         | 
| 2668 2668 | 
             
            }
         | 
| 2669 2669 |  | 
| 2670 | 
            -
            void CondVar::Wait(Mutex  | 
| 2671 | 
            -
              WaitCommon(mu, KernelTimeout::Never());
         | 
| 2672 | 
            -
            }
         | 
| 2670 | 
            +
            void CondVar::Wait(Mutex* mu) { WaitCommon(mu, KernelTimeout::Never()); }
         | 
| 2673 2671 |  | 
| 2674 2672 | 
             
            // Wake thread w
         | 
| 2675 2673 | 
             
            // If it was a timed wait, w will be waiting on w->cv
         | 
| 2676 2674 | 
             
            // Otherwise, if it was not a Mutex mutex, w will be waiting on w->sem
         | 
| 2677 2675 | 
             
            // Otherwise, w is transferred to the Mutex mutex via Mutex::Fer().
         | 
| 2678 | 
            -
            void CondVar::Wakeup(PerThreadSynch  | 
| 2676 | 
            +
            void CondVar::Wakeup(PerThreadSynch* w) {
         | 
| 2679 2677 | 
             
              if (w->waitp->timeout.has_timeout() || w->waitp->cvmu == nullptr) {
         | 
| 2680 2678 | 
             
                // The waiting thread only needs to observe "w->state == kAvailable" to be
         | 
| 2681 2679 | 
             
                // released, we must cache "cvmu" before clearing "next".
         | 
| 2682 | 
            -
                Mutex  | 
| 2680 | 
            +
                Mutex* mu = w->waitp->cvmu;
         | 
| 2683 2681 | 
             
                w->next = nullptr;
         | 
| 2684 2682 | 
             
                w->state.store(PerThreadSynch::kAvailable, std::memory_order_release);
         | 
| 2685 2683 | 
             
                Mutex::IncrementSynchSem(mu, w);
         | 
| @@ -2696,11 +2694,10 @@ void CondVar::Signal() { | |
| 2696 2694 | 
             
              for (v = cv_.load(std::memory_order_relaxed); v != 0;
         | 
| 2697 2695 | 
             
                   v = cv_.load(std::memory_order_relaxed)) {
         | 
| 2698 2696 | 
             
                if ((v & kCvSpin) == 0 &&  // attempt to acquire spinlock
         | 
| 2699 | 
            -
                    cv_.compare_exchange_strong(v, v | kCvSpin,
         | 
| 2700 | 
            -
                                                std::memory_order_acquire,
         | 
| 2697 | 
            +
                    cv_.compare_exchange_strong(v, v | kCvSpin, std::memory_order_acquire,
         | 
| 2701 2698 | 
             
                                                std::memory_order_relaxed)) {
         | 
| 2702 | 
            -
                  PerThreadSynch  | 
| 2703 | 
            -
                  PerThreadSynch  | 
| 2699 | 
            +
                  PerThreadSynch* h = reinterpret_cast<PerThreadSynch*>(v & ~kCvLow);
         | 
| 2700 | 
            +
                  PerThreadSynch* w = nullptr;
         | 
| 2704 2701 | 
             
                  if (h != nullptr) {  // remove first waiter
         | 
| 2705 2702 | 
             
                    w = h->next;
         | 
| 2706 2703 | 
             
                    if (w == h) {
         | 
| @@ -2709,11 +2706,11 @@ void CondVar::Signal() { | |
| 2709 2706 | 
             
                      h->next = w->next;
         | 
| 2710 2707 | 
             
                    }
         | 
| 2711 2708 | 
             
                  }
         | 
| 2712 | 
            -
             | 
| 2709 | 
            +
                  // release spinlock
         | 
| 2713 2710 | 
             
                  cv_.store((v & kCvEvent) | reinterpret_cast<intptr_t>(h),
         | 
| 2714 2711 | 
             
                            std::memory_order_release);
         | 
| 2715 2712 | 
             
                  if (w != nullptr) {
         | 
| 2716 | 
            -
                    CondVar::Wakeup(w); | 
| 2713 | 
            +
                    CondVar::Wakeup(w);  // wake waiter, if there was one
         | 
| 2717 2714 | 
             
                    cond_var_tracer("Signal wakeup", this);
         | 
| 2718 2715 | 
             
                  }
         | 
| 2719 2716 | 
             
                  if ((v & kCvEvent) != 0) {
         | 
| @@ -2728,7 +2725,7 @@ void CondVar::Signal() { | |
| 2728 2725 | 
             
              ABSL_TSAN_MUTEX_POST_SIGNAL(nullptr, 0);
         | 
| 2729 2726 | 
             
            }
         | 
| 2730 2727 |  | 
| 2731 | 
            -
            void CondVar::SignalAll | 
| 2728 | 
            +
            void CondVar::SignalAll() {
         | 
| 2732 2729 | 
             
              ABSL_TSAN_MUTEX_PRE_SIGNAL(nullptr, 0);
         | 
| 2733 2730 | 
             
              intptr_t v;
         | 
| 2734 2731 | 
             
              int c = 0;
         | 
| @@ -2742,11 +2739,11 @@ void CondVar::SignalAll () { | |
| 2742 2739 | 
             
                if ((v & kCvSpin) == 0 &&
         | 
| 2743 2740 | 
             
                    cv_.compare_exchange_strong(v, v & kCvEvent, std::memory_order_acquire,
         | 
| 2744 2741 | 
             
                                                std::memory_order_relaxed)) {
         | 
| 2745 | 
            -
                  PerThreadSynch  | 
| 2742 | 
            +
                  PerThreadSynch* h = reinterpret_cast<PerThreadSynch*>(v & ~kCvLow);
         | 
| 2746 2743 | 
             
                  if (h != nullptr) {
         | 
| 2747 | 
            -
                    PerThreadSynch  | 
| 2748 | 
            -
                    PerThreadSynch  | 
| 2749 | 
            -
                    do { | 
| 2744 | 
            +
                    PerThreadSynch* w;
         | 
| 2745 | 
            +
                    PerThreadSynch* n = h->next;
         | 
| 2746 | 
            +
                    do {  // for every thread, wake it up
         | 
| 2750 2747 | 
             
                      w = n;
         | 
| 2751 2748 | 
             
                      n = n->next;
         | 
| 2752 2749 | 
             
                      CondVar::Wakeup(w);
         | 
| @@ -2774,42 +2771,41 @@ void ReleasableMutexLock::Release() { | |
| 2774 2771 | 
             
            }
         | 
| 2775 2772 |  | 
| 2776 2773 | 
             
            #ifdef ABSL_HAVE_THREAD_SANITIZER
         | 
| 2777 | 
            -
            extern "C" void __tsan_read1(void  | 
| 2774 | 
            +
            extern "C" void __tsan_read1(void* addr);
         | 
| 2778 2775 | 
             
            #else
         | 
| 2779 2776 | 
             
            #define __tsan_read1(addr)  // do nothing if TSan not enabled
         | 
| 2780 2777 | 
             
            #endif
         | 
| 2781 2778 |  | 
| 2782 2779 | 
             
            // A function that just returns its argument, dereferenced
         | 
| 2783 | 
            -
            static bool Dereference(void  | 
| 2780 | 
            +
            static bool Dereference(void* arg) {
         | 
| 2784 2781 | 
             
              // ThreadSanitizer does not instrument this file for memory accesses.
         | 
| 2785 2782 | 
             
              // This function dereferences a user variable that can participate
         | 
| 2786 2783 | 
             
              // in a data race, so we need to manually tell TSan about this memory access.
         | 
| 2787 2784 | 
             
              __tsan_read1(arg);
         | 
| 2788 | 
            -
              return *(static_cast<bool | 
| 2785 | 
            +
              return *(static_cast<bool*>(arg));
         | 
| 2789 2786 | 
             
            }
         | 
| 2790 2787 |  | 
| 2791 2788 | 
             
            ABSL_CONST_INIT const Condition Condition::kTrue;
         | 
| 2792 2789 |  | 
| 2793 | 
            -
            Condition::Condition(bool (*func)(void | 
| 2794 | 
            -
                : eval_(&CallVoidPtrFunction),
         | 
| 2795 | 
            -
                  arg_(arg) {
         | 
| 2790 | 
            +
            Condition::Condition(bool (*func)(void*), void* arg)
         | 
| 2791 | 
            +
                : eval_(&CallVoidPtrFunction), arg_(arg) {
         | 
| 2796 2792 | 
             
              static_assert(sizeof(&func) <= sizeof(callback_),
         | 
| 2797 2793 | 
             
                            "An overlarge function pointer passed to Condition.");
         | 
| 2798 2794 | 
             
              StoreCallback(func);
         | 
| 2799 2795 | 
             
            }
         | 
| 2800 2796 |  | 
| 2801 | 
            -
            bool Condition::CallVoidPtrFunction(const Condition  | 
| 2802 | 
            -
              using FunctionPointer = bool (*)(void | 
| 2797 | 
            +
            bool Condition::CallVoidPtrFunction(const Condition* c) {
         | 
| 2798 | 
            +
              using FunctionPointer = bool (*)(void*);
         | 
| 2803 2799 | 
             
              FunctionPointer function_pointer;
         | 
| 2804 2800 | 
             
              std::memcpy(&function_pointer, c->callback_, sizeof(function_pointer));
         | 
| 2805 2801 | 
             
              return (*function_pointer)(c->arg_);
         | 
| 2806 2802 | 
             
            }
         | 
| 2807 2803 |  | 
| 2808 | 
            -
            Condition::Condition(const bool  | 
| 2804 | 
            +
            Condition::Condition(const bool* cond)
         | 
| 2809 2805 | 
             
                : eval_(CallVoidPtrFunction),
         | 
| 2810 2806 | 
             
                  // const_cast is safe since Dereference does not modify arg
         | 
| 2811 | 
            -
                  arg_(const_cast<bool | 
| 2812 | 
            -
              using FunctionPointer = bool (*)(void | 
| 2807 | 
            +
                  arg_(const_cast<bool*>(cond)) {
         | 
| 2808 | 
            +
              using FunctionPointer = bool (*)(void*);
         | 
| 2813 2809 | 
             
              const FunctionPointer dereference = Dereference;
         | 
| 2814 2810 | 
             
              StoreCallback(dereference);
         | 
| 2815 2811 | 
             
            }
         | 
| @@ -2819,7 +2815,7 @@ bool Condition::Eval() const { | |
| 2819 2815 | 
             
              return (this->eval_ == nullptr) || (*this->eval_)(this);
         | 
| 2820 2816 | 
             
            }
         | 
| 2821 2817 |  | 
| 2822 | 
            -
            bool Condition::GuaranteedEqual(const Condition  | 
| 2818 | 
            +
            bool Condition::GuaranteedEqual(const Condition* a, const Condition* b) {
         | 
| 2823 2819 | 
             
              // kTrue logic.
         | 
| 2824 2820 | 
             
              if (a == nullptr || a->eval_ == nullptr) {
         | 
| 2825 2821 | 
             
                return b == nullptr || b->eval_ == nullptr;
         |