grpc 1.46.3-x86_64-linux → 1.48.0-x86_64-linux
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +138 -128
- data/include/grpc/compression.h +1 -1
- data/include/grpc/event_engine/event_engine.h +62 -18
- data/include/grpc/event_engine/memory_allocator.h +0 -15
- data/include/grpc/event_engine/port.h +1 -1
- data/include/grpc/event_engine/slice.h +286 -0
- data/include/grpc/event_engine/slice_buffer.h +118 -0
- data/include/grpc/grpc.h +3 -3
- data/include/grpc/grpc_security.h +11 -0
- data/include/grpc/impl/codegen/compression_types.h +2 -1
- data/include/grpc/impl/codegen/connectivity_state.h +2 -1
- data/include/grpc/impl/codegen/gpr_types.h +2 -1
- data/include/grpc/impl/codegen/grpc_types.h +2 -1
- data/include/grpc/impl/codegen/port_platform.h +106 -39
- data/include/grpc/impl/codegen/slice.h +1 -1
- data/src/core/ext/filters/census/grpc_context.cc +3 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +35 -35
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +20 -1
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +2 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +17 -12
- data/src/core/ext/filters/client_channel/backend_metric.h +19 -9
- data/src/core/ext/filters/client_channel/backup_poller.cc +8 -6
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -4
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +43 -21
- data/src/core/ext/filters/client_channel/client_channel.cc +111 -82
- data/src/core/ext/filters/client_channel/client_channel.h +43 -8
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +3 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +12 -2
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +5 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +8 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -13
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
- data/src/core/ext/filters/client_channel/config_selector.h +8 -6
- data/src/core/ext/filters/client_channel/connector.h +9 -3
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +19 -6
- data/src/core/ext/filters/client_channel/dynamic_filters.h +12 -2
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +14 -1
- data/src/core/ext/filters/client_channel/health/health_check_client.h +2 -0
- data/src/core/ext/filters/client_channel/http_proxy.cc +10 -2
- data/src/core/ext/filters/client_channel/http_proxy.h +3 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +12 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +11 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +132 -62
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +4 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +6 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +10 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +6 -3
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +407 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1036 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +149 -147
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +176 -85
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +303 -203
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +92 -54
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +240 -214
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +119 -111
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +86 -71
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +101 -25
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +6 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +35 -11
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +36 -20
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +78 -14
- data/src/core/ext/filters/client_channel/lb_policy.cc +4 -2
- data/src/core/ext/filters/client_channel/lb_policy.h +18 -31
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +11 -6
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +6 -1
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +4 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +1 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +1 -1
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +1 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +5 -0
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +26 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +139 -48
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +10 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +6 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +36 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +13 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +39 -7
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +18 -19
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +5 -2
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +61 -16
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +14 -2
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +8 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +17 -12
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +111 -46
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +3 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +12 -18
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +11 -5
- data/src/core/ext/filters/client_channel/retry_filter.cc +75 -36
- data/src/core/ext/filters/client_channel/retry_filter.h +1 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +12 -13
- data/src/core/ext/filters/client_channel/retry_service_config.h +10 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +1 -8
- data/src/core/ext/filters/client_channel/retry_throttle.h +7 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +24 -6
- data/src/core/ext/filters/client_channel/subchannel.cc +186 -187
- data/src/core/ext/filters/client_channel/subchannel.h +80 -36
- data/src/core/ext/filters/client_channel/subchannel_interface.h +51 -41
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +12 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -3
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +24 -95
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +17 -9
- data/src/core/ext/filters/deadline/deadline_filter.cc +18 -9
- data/src/core/ext/filters/deadline/deadline_filter.h +8 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +22 -6
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +8 -3
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +7 -4
- data/src/core/ext/filters/fault_injection/service_config_parser.h +17 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +30 -10
- data/src/core/ext/filters/http/client/http_client_filter.h +15 -2
- data/src/core/ext/filters/http/client_authority_filter.cc +16 -20
- data/src/core/ext/filters/http/client_authority_filter.h +5 -2
- data/src/core/ext/filters/http/http_filters_plugin.cc +16 -9
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +65 -187
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +1 -2
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +45 -107
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +1 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +95 -255
- data/src/core/ext/filters/http/server/http_server_filter.h +37 -3
- data/src/core/ext/filters/message_size/message_size_filter.cc +45 -41
- data/src/core/ext/filters/message_size/message_size_filter.h +15 -2
- data/src/core/ext/filters/rbac/rbac_filter.cc +15 -3
- data/src/core/ext/filters/rbac/rbac_filter.h +8 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +13 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +14 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +1 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +9 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +22 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +1 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +104 -138
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -7
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +58 -29
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -0
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +260 -491
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +6 -1
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -0
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +145 -261
- data/src/core/ext/transport/chttp2/transport/flow_control.h +179 -288
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +59 -211
- data/src/core/ext/transport/chttp2/transport/frame_data.h +13 -36
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +3 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -2
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +10 -42
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +4 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +10 -12
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +14 -12
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +15 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -13
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +8 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +53 -37
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +38 -21
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +31 -112
- data/src/core/ext/transport/chttp2/transport/parsing.cc +77 -43
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +11 -11
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/stream_map.h +1 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +2 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +54 -21
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +93 -86
- data/src/core/ext/transport/inproc/inproc_transport.h +3 -1
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +164 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +94 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +47 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +109 -0
- data/src/core/ext/xds/certificate_provider_factory.h +6 -1
- data/src/core/ext/xds/certificate_provider_registry.cc +8 -8
- data/src/core/ext/xds/certificate_provider_registry.h +3 -1
- data/src/core/ext/xds/certificate_provider_store.cc +6 -2
- data/src/core/ext/xds/certificate_provider_store.h +10 -1
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +9 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +8 -0
- data/src/core/ext/xds/upb_utils.h +1 -2
- data/src/core/ext/xds/xds_api.cc +16 -18
- data/src/core/ext/xds/xds_api.h +12 -5
- data/src/core/ext/xds/xds_bootstrap.cc +37 -24
- data/src/core/ext/xds/xds_bootstrap.h +9 -11
- data/src/core/ext/xds/xds_certificate_provider.cc +16 -4
- data/src/core/ext/xds/xds_certificate_provider.h +17 -2
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +14 -5
- data/src/core/ext/xds/xds_channel_stack_modifier.h +5 -1
- data/src/core/ext/xds/xds_client.cc +117 -44
- data/src/core/ext/xds/xds_client.h +17 -3
- data/src/core/ext/xds/xds_client_stats.cc +3 -4
- data/src/core/ext/xds/xds_client_stats.h +4 -3
- data/src/core/ext/xds/xds_cluster.cc +126 -25
- data/src/core/ext/xds/xds_cluster.h +12 -1
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +16 -7
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -8
- data/src/core/ext/xds/xds_common_types.cc +36 -22
- data/src/core/ext/xds/xds_common_types.h +12 -4
- data/src/core/ext/xds/xds_endpoint.cc +25 -15
- data/src/core/ext/xds/xds_endpoint.h +13 -5
- data/src/core/ext/xds/xds_http_fault_filter.cc +10 -8
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -1
- data/src/core/ext/xds/xds_http_filters.cc +7 -0
- data/src/core/ext/xds/xds_http_filters.h +3 -3
- data/src/core/ext/xds/xds_http_rbac_filter.cc +16 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +7 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +291 -0
- data/src/core/ext/xds/xds_lb_policy_registry.h +72 -0
- data/src/core/ext/xds/xds_listener.cc +70 -42
- data/src/core/ext/xds/xds_listener.h +10 -1
- data/src/core/ext/xds/xds_resource_type.h +3 -3
- data/src/core/ext/xds/xds_resource_type_impl.h +7 -3
- data/src/core/ext/xds/xds_route_config.cc +56 -28
- data/src/core/ext/xds/xds_route_config.h +11 -2
- data/src/core/ext/xds/xds_routing.cc +16 -0
- data/src/core/ext/xds/xds_routing.h +7 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +56 -7
- data/src/core/lib/address_utils/parse_address.cc +5 -8
- data/src/core/lib/address_utils/parse_address.h +3 -2
- data/src/core/lib/address_utils/sockaddr_utils.cc +60 -26
- data/src/core/lib/address_utils/sockaddr_utils.h +9 -4
- data/src/core/lib/avl/avl.h +6 -4
- data/src/core/lib/backoff/backoff.cc +1 -1
- data/src/core/lib/backoff/backoff.h +1 -1
- data/src/core/lib/channel/call_finalization.h +4 -0
- data/src/core/lib/channel/call_tracer.h +11 -5
- data/src/core/lib/channel/channel_args.cc +41 -22
- data/src/core/lib/channel/channel_args.h +34 -3
- data/src/core/lib/channel/channel_args_preconditioning.cc +4 -3
- data/src/core/lib/channel/channel_args_preconditioning.h +3 -2
- data/src/core/lib/channel/channel_fwd.h +26 -0
- data/src/core/lib/channel/channel_stack.cc +45 -7
- data/src/core/lib/channel/channel_stack.h +45 -9
- data/src/core/lib/channel/channel_stack_builder.cc +9 -19
- data/src/core/lib/channel/channel_stack_builder.h +17 -32
- data/src/core/lib/channel/channel_stack_builder_impl.cc +38 -43
- data/src/core/lib/channel/channel_stack_builder_impl.h +4 -6
- data/src/core/lib/channel/channel_trace.cc +8 -13
- data/src/core/lib/channel/channel_trace.h +6 -3
- data/src/core/lib/channel/channelz.cc +10 -14
- data/src/core/lib/channel/channelz.h +15 -7
- data/src/core/lib/channel/channelz_registry.cc +11 -19
- data/src/core/lib/channel/channelz_registry.h +10 -9
- data/src/core/lib/channel/connected_channel.cc +22 -31
- data/src/core/lib/channel/connected_channel.h +2 -0
- data/src/core/lib/channel/promise_based_filter.cc +451 -190
- data/src/core/lib/channel/promise_based_filter.h +162 -27
- data/src/core/lib/channel/status_util.cc +2 -0
- data/src/core/lib/channel/status_util.h +0 -3
- data/src/core/lib/compression/compression.cc +6 -1
- data/src/core/lib/compression/compression_internal.cc +48 -16
- data/src/core/lib/compression/compression_internal.h +4 -3
- data/src/core/lib/compression/message_compress.cc +3 -1
- data/src/core/lib/compression/message_compress.h +2 -3
- data/src/core/lib/config/core_configuration.cc +3 -0
- data/src/core/lib/config/core_configuration.h +2 -1
- data/src/core/lib/debug/stats.cc +9 -9
- data/src/core/lib/debug/stats.h +2 -1
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/stats_data.h +0 -4
- data/src/core/lib/debug/trace.h +13 -12
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +4 -2
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +3 -2
- data/src/core/lib/event_engine/default_event_engine_factory.cc +8 -2
- data/src/core/lib/event_engine/event_engine.cc +29 -14
- data/src/core/lib/event_engine/event_engine_factory.h +5 -0
- data/src/core/lib/event_engine/handle_containers.h +67 -0
- data/src/core/lib/event_engine/iomgr_engine/iomgr_engine.cc +159 -0
- data/src/core/lib/event_engine/iomgr_engine/iomgr_engine.h +122 -0
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +123 -0
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +70 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.cc +62 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.h +81 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.cc +312 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.h +193 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.cc +107 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.h +56 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.cc +254 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.h +111 -0
- data/src/core/lib/event_engine/memory_allocator.cc +12 -4
- data/src/core/lib/{iomgr/event_engine → event_engine}/promise.h +27 -9
- data/src/core/lib/event_engine/resolved_address.cc +4 -2
- data/src/core/lib/event_engine/slice.cc +102 -0
- data/src/core/lib/event_engine/slice_buffer.cc +50 -0
- data/src/core/lib/{iomgr/event_engine/pollset.h → event_engine/trace.cc} +3 -10
- data/src/core/lib/{iomgr/endpoint_pair_event_engine.cc → event_engine/trace.h} +12 -14
- data/src/core/lib/gpr/log.cc +5 -0
- data/src/core/lib/gpr/time_posix.cc +6 -9
- data/src/core/lib/gpr/time_windows.cc +10 -7
- data/src/core/lib/gpr/tls.h +3 -5
- data/src/core/lib/gprpp/bitset.h +5 -1
- data/src/core/lib/gprpp/chunked_vector.h +4 -0
- data/src/core/lib/gprpp/construct_destruct.h +1 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +1 -4
- data/src/core/lib/gprpp/examine_stack.h +0 -1
- data/src/core/lib/gprpp/fork.cc +3 -6
- data/src/core/lib/gprpp/global_config.h +2 -4
- data/src/core/lib/gprpp/global_config_env.cc +3 -2
- data/src/core/lib/gprpp/global_config_env.h +3 -1
- data/src/core/lib/gprpp/global_config_generic.h +0 -4
- data/src/core/lib/gprpp/host_port.cc +2 -0
- data/src/core/lib/gprpp/manual_constructor.h +0 -68
- data/src/core/lib/gprpp/match.h +2 -0
- data/src/core/lib/gprpp/memory.h +1 -5
- data/src/core/lib/gprpp/orphanable.h +1 -4
- data/src/core/lib/gprpp/ref_counted.h +1 -3
- data/src/core/lib/gprpp/ref_counted_ptr.h +1 -1
- data/src/core/lib/gprpp/stat.h +0 -2
- data/src/core/lib/gprpp/stat_posix.cc +7 -2
- data/src/core/lib/gprpp/status_helper.cc +50 -32
- data/src/core/lib/gprpp/status_helper.h +4 -0
- data/src/core/lib/gprpp/sync.h +3 -1
- data/src/core/lib/gprpp/table.h +10 -0
- data/src/core/lib/gprpp/thd.h +2 -5
- data/src/core/lib/gprpp/thd_posix.cc +4 -2
- data/src/core/lib/gprpp/thd_windows.cc +2 -0
- data/src/core/lib/gprpp/time.cc +16 -0
- data/src/core/lib/gprpp/time.h +10 -1
- data/src/core/lib/gprpp/time_util.cc +4 -0
- data/src/core/lib/gprpp/time_util.h +1 -1
- data/src/core/lib/gprpp/unique_type_name.h +104 -0
- data/src/core/lib/http/format_request.cc +34 -4
- data/src/core/lib/http/format_request.h +3 -1
- data/src/core/lib/http/httpcli.cc +106 -93
- data/src/core/lib/http/httpcli.h +58 -10
- data/src/core/lib/http/httpcli_security_connector.cc +19 -8
- data/src/core/lib/http/httpcli_ssl_credentials.h +3 -1
- data/src/core/lib/http/parser.cc +6 -7
- data/src/core/lib/http/parser.h +3 -0
- data/src/core/lib/iomgr/call_combiner.cc +2 -2
- data/src/core/lib/iomgr/endpoint.cc +4 -4
- data/src/core/lib/iomgr/endpoint.h +7 -5
- data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -6
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
- data/src/core/lib/iomgr/error.cc +11 -9
- data/src/core/lib/iomgr/error.h +9 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +57 -18
- data/src/core/lib/iomgr/ev_epoll1_linux.h +1 -1
- data/src/core/lib/iomgr/ev_poll_posix.cc +77 -52
- data/src/core/lib/iomgr/ev_poll_posix.h +2 -2
- data/src/core/lib/iomgr/ev_posix.cc +55 -96
- data/src/core/lib/iomgr/ev_posix.h +5 -3
- data/src/core/lib/iomgr/exec_ctx.h +1 -2
- data/src/core/lib/iomgr/fork_posix.cc +1 -1
- data/src/core/lib/iomgr/internal_errqueue.cc +38 -47
- data/src/core/lib/iomgr/internal_errqueue.h +1 -6
- data/src/core/lib/iomgr/iomgr.cc +7 -1
- data/src/core/{ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc → lib/iomgr/iomgr_fwd.h} +9 -12
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -0
- data/src/core/lib/iomgr/load_file.cc +1 -1
- data/src/core/lib/iomgr/pollset_set.h +1 -2
- data/src/core/lib/iomgr/port.h +25 -6
- data/src/core/lib/iomgr/resolve_address.cc +8 -0
- data/src/core/lib/iomgr/resolve_address.h +21 -14
- data/src/core/lib/iomgr/resolve_address_impl.h +2 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +9 -15
- data/src/core/lib/iomgr/resolve_address_posix.h +5 -2
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -15
- data/src/core/lib/iomgr/resolve_address_windows.h +5 -2
- data/src/core/lib/iomgr/sockaddr.h +2 -3
- data/src/core/lib/iomgr/sockaddr_posix.h +2 -0
- data/src/core/lib/iomgr/sockaddr_windows.h +2 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -2
- data/src/core/lib/iomgr/tcp_client.cc +12 -7
- data/src/core/lib/iomgr/tcp_client.h +24 -13
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +24 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +154 -29
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_windows.cc +27 -16
- data/src/core/lib/iomgr/tcp_posix.cc +96 -52
- data/src/core/lib/iomgr/tcp_server_posix.cc +33 -19
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +41 -38
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -6
- data/src/core/lib/iomgr/tcp_server_windows.cc +20 -12
- data/src/core/lib/iomgr/tcp_windows.cc +12 -9
- data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +15 -12
- data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -2
- data/src/core/lib/iomgr/work_serializer.h +2 -3
- data/src/core/lib/json/json.h +1 -2
- data/src/core/lib/json/json_reader.cc +9 -1
- data/src/core/lib/json/json_util.cc +7 -0
- data/src/core/lib/json/json_util.h +10 -1
- data/src/core/lib/json/json_writer.cc +6 -1
- data/src/core/lib/matchers/matchers.cc +6 -3
- data/src/core/lib/matchers/matchers.h +2 -0
- data/src/core/lib/promise/activity.cc +1 -2
- data/src/core/lib/promise/activity.h +13 -19
- data/src/core/lib/promise/arena_promise.h +11 -1
- data/src/core/lib/promise/call_push_pull.h +4 -0
- data/src/core/lib/promise/context.h +1 -1
- data/src/core/lib/promise/detail/basic_seq.h +2 -2
- data/src/core/lib/promise/detail/promise_factory.h +0 -1
- data/src/core/lib/promise/latch.h +0 -1
- data/src/core/lib/promise/loop.h +2 -0
- data/src/core/lib/promise/promise.h +1 -0
- data/src/core/lib/promise/race.h +0 -1
- data/src/core/lib/promise/seq.h +0 -2
- data/src/core/lib/promise/sleep.cc +38 -31
- data/src/core/lib/promise/sleep.h +32 -22
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resolver/resolver.cc +5 -0
- data/src/core/lib/resolver/resolver.h +3 -0
- data/src/core/lib/resolver/resolver_factory.h +6 -4
- data/src/core/lib/resolver/resolver_registry.cc +2 -9
- data/src/core/lib/resolver/resolver_registry.h +12 -1
- data/src/core/lib/resolver/server_address.cc +17 -3
- data/src/core/lib/resolver/server_address.h +13 -6
- data/src/core/lib/resource_quota/api.cc +14 -1
- data/src/core/lib/resource_quota/api.h +4 -1
- data/src/core/lib/resource_quota/arena.cc +0 -6
- data/src/core/lib/resource_quota/arena.h +1 -2
- data/src/core/lib/resource_quota/memory_quota.cc +62 -62
- data/src/core/lib/resource_quota/memory_quota.h +35 -30
- data/src/core/lib/resource_quota/resource_quota.h +8 -0
- data/src/core/lib/resource_quota/thread_quota.cc +2 -0
- data/src/core/lib/resource_quota/thread_quota.h +4 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +7 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +4 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +9 -3
- data/src/core/lib/security/authorization/evaluate_args.h +6 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +6 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +7 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +15 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +12 -1
- data/src/core/lib/security/authorization/matchers.cc +9 -1
- data/src/core/lib/security/authorization/matchers.h +7 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +5 -0
- data/src/core/lib/security/authorization/rbac_policy.h +7 -0
- data/src/core/lib/security/context/security_context.cc +5 -2
- data/src/core/lib/security/context/security_context.h +14 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +12 -4
- data/src/core/lib/security/credentials/alts/alts_credentials.h +8 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +1 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -4
- data/src/core/lib/security/credentials/call_creds_util.cc +10 -0
- data/src/core/lib/security/credentials/call_creds_util.h +1 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +7 -1
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +10 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +11 -7
- data/src/core/lib/security/credentials/composite/composite_credentials.h +21 -6
- data/src/core/lib/security/credentials/credentials.cc +4 -8
- data/src/core/lib/security/credentials/credentials.h +27 -18
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +108 -9
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +18 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +9 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +27 -9
- data/src/core/lib/security/credentials/external/external_account_credentials.h +11 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +12 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +6 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +22 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +10 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +21 -9
- data/src/core/lib/security/credentials/fake/fake_credentials.h +15 -3
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +51 -24
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +12 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +13 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.h +12 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +12 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +9 -4
- data/src/core/lib/security/credentials/jwt/json_token.cc +5 -2
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +14 -7
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +16 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +28 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -2
- data/src/core/lib/security/credentials/local/local_credentials.cc +12 -5
- data/src/core/lib/security/credentials/local/local_credentials.h +9 -2
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +36 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +24 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +12 -8
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +25 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -2
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +17 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +6 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +39 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +14 -11
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +35 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +34 -11
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +17 -2
- data/src/core/lib/security/credentials/tls/tls_credentials.h +7 -3
- data/src/core/lib/security/credentials/tls/tls_utils.cc +2 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +1 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +20 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.h +19 -5
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +22 -2
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +6 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +18 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +9 -0
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +17 -2
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +5 -3
- data/src/core/lib/security/security_connector/{load_system_roots_linux.cc → load_system_roots_supported.cc} +27 -19
- data/src/core/lib/security/security_connector/{load_system_roots_linux.h → load_system_roots_supported.h} +5 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -3
- data/src/core/lib/security/security_connector/local/local_security_connector.h +6 -2
- data/src/core/lib/security/security_connector/security_connector.cc +20 -18
- data/src/core/lib/security/security_connector/security_connector.h +19 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +19 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +12 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +10 -7
- data/src/core/lib/security/security_connector/ssl_utils_config.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -13
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +23 -3
- data/src/core/lib/security/transport/auth_filters.h +7 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +24 -17
- data/src/core/lib/security/transport/secure_endpoint.cc +81 -20
- data/src/core/lib/security/transport/secure_endpoint.h +4 -3
- data/src/core/lib/security/transport/security_handshaker.cc +49 -16
- data/src/core/lib/security/transport/security_handshaker.h +5 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +29 -6
- data/src/core/lib/security/util/json_util.cc +3 -2
- data/src/core/lib/security/util/json_util.h +0 -2
- data/src/core/lib/service_config/service_config.h +4 -8
- data/src/core/lib/service_config/service_config_call_data.h +6 -2
- data/src/core/lib/service_config/service_config_impl.cc +13 -6
- data/src/core/lib/service_config/service_config_impl.h +9 -4
- data/src/core/lib/service_config/service_config_parser.cc +8 -2
- data/src/core/lib/service_config/service_config_parser.h +7 -0
- data/src/core/lib/slice/b64.cc +1 -1
- data/src/core/lib/slice/b64.h +2 -0
- data/src/core/lib/slice/percent_encoding.cc +4 -1
- data/src/core/lib/slice/percent_encoding.h +0 -6
- data/src/core/lib/slice/slice.cc +2 -1
- data/src/core/lib/slice/slice.h +10 -5
- data/src/core/lib/slice/slice_api.cc +1 -1
- data/src/core/lib/slice/slice_buffer.cc +79 -23
- data/src/core/lib/slice/slice_buffer.h +137 -0
- data/src/core/lib/slice/slice_buffer_api.cc +35 -0
- data/src/core/lib/slice/slice_internal.h +4 -3
- data/src/core/lib/slice/slice_refcount.h +2 -3
- data/src/core/lib/slice/slice_refcount_base.h +2 -3
- data/src/core/lib/slice/slice_string_helpers.cc +0 -16
- data/src/core/lib/slice/slice_string_helpers.h +1 -8
- data/src/core/lib/surface/builtins.cc +7 -2
- data/src/core/lib/surface/byte_buffer.cc +7 -1
- data/src/core/lib/surface/byte_buffer_reader.cc +4 -4
- data/src/core/lib/surface/call.cc +90 -137
- data/src/core/lib/surface/call.h +21 -3
- data/src/core/lib/surface/call_details.cc +4 -4
- data/src/core/lib/surface/call_log_batch.cc +7 -1
- data/src/core/lib/surface/call_test_only.h +4 -1
- data/src/core/lib/surface/channel.cc +179 -242
- data/src/core/lib/surface/channel.h +97 -58
- data/src/core/lib/surface/channel_init.h +2 -0
- data/src/core/lib/surface/channel_ping.cc +8 -2
- data/src/core/lib/surface/channel_stack_type.cc +0 -2
- data/src/core/lib/surface/channel_stack_type.h +0 -2
- data/src/core/lib/surface/completion_queue.cc +29 -20
- data/src/core/lib/surface/completion_queue.h +7 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -0
- data/src/core/lib/surface/completion_queue_factory.h +1 -3
- data/src/core/lib/surface/event_string.cc +1 -7
- data/src/core/lib/surface/event_string.h +1 -1
- data/src/core/lib/surface/init.cc +17 -46
- data/src/core/lib/surface/init.h +0 -8
- data/src/core/lib/surface/lame_client.cc +63 -109
- data/src/core/lib/surface/lame_client.h +41 -3
- data/src/core/lib/surface/metadata_array.cc +2 -0
- data/src/core/lib/surface/server.cc +83 -64
- data/src/core/lib/surface/server.h +42 -9
- data/src/core/lib/surface/validate_metadata.cc +3 -6
- data/src/core/lib/surface/validate_metadata.h +3 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +3 -1
- data/src/core/lib/transport/bdp_estimator.h +2 -3
- data/src/core/lib/transport/connectivity_state.cc +6 -4
- data/src/core/lib/transport/connectivity_state.h +2 -3
- data/src/core/lib/transport/error_utils.cc +16 -8
- data/src/core/lib/transport/error_utils.h +5 -1
- data/src/core/lib/{channel → transport}/handshaker.cc +12 -7
- data/src/core/lib/{channel → transport}/handshaker.h +13 -6
- data/src/core/lib/{channel → transport}/handshaker_factory.h +9 -10
- data/src/core/lib/{channel → transport}/handshaker_registry.cc +5 -1
- data/src/core/lib/{channel → transport}/handshaker_registry.h +5 -4
- data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.cc +28 -14
- data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.h +3 -3
- data/src/core/lib/transport/metadata_batch.cc +287 -0
- data/src/core/lib/transport/metadata_batch.h +133 -264
- data/src/core/lib/transport/parsed_metadata.cc +2 -0
- data/src/core/lib/transport/parsed_metadata.h +10 -3
- data/src/core/lib/transport/status_conversion.cc +2 -0
- data/src/core/lib/transport/status_conversion.h +2 -2
- data/src/core/lib/transport/tcp_connect_handshaker.cc +253 -0
- data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
- data/src/core/lib/transport/timeout_encoding.cc +2 -6
- data/src/core/lib/transport/timeout_encoding.h +5 -1
- data/src/core/lib/transport/transport.cc +18 -20
- data/src/core/lib/transport/transport.h +48 -16
- data/src/core/lib/transport/transport_fwd.h +20 -0
- data/src/core/lib/transport/transport_impl.h +11 -0
- data/src/core/lib/transport/transport_op_string.cc +17 -18
- data/src/core/lib/uri/uri_parser.cc +11 -3
- data/src/core/lib/uri/uri_parser.h +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +11 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +9 -1
- data/src/core/tsi/fake_transport_security.cc +13 -1
- data/src/core/tsi/fake_transport_security.h +6 -0
- data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -0
- data/src/core/tsi/ssl_transport_security.cc +1 -1
- data/src/core/tsi/transport_security_grpc.cc +3 -2
- data/src/core/tsi/transport_security_grpc.h +5 -2
- data/src/ruby/ext/grpc/ext-export-truffleruby.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.clang +1 -0
- data/src/ruby/ext/grpc/ext-export.gcc +1 -0
- data/src/ruby/ext/grpc/extconf.rb +50 -19
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/2.5/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/2.6/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/2.7/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.0/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.1/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/errors.rb +1 -1
- data/src/ruby/lib/grpc/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +23 -23
- data/third_party/abseil-cpp/absl/algorithm/container.h +1 -1
- data/third_party/abseil-cpp/absl/base/attributes.h +49 -22
- data/third_party/abseil-cpp/absl/base/casts.h +61 -68
- data/third_party/abseil-cpp/absl/base/config.h +182 -41
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +67 -2
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +3 -3
- data/third_party/abseil-cpp/absl/base/internal/endian.h +17 -62
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +2 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +54 -0
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +29 -22
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +13 -12
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -5
- data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
- data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +0 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +2 -1
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +6 -7
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -3
- data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
- data/third_party/abseil-cpp/absl/base/log_severity.h +51 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +19 -11
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +2 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +11 -4
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +510 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +20 -9
- data/third_party/abseil-cpp/absl/container/internal/common.h +6 -5
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +10 -28
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +68 -20
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +29 -11
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +59 -38
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +4 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +515 -184
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -88
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +4 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +2 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +20 -18
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +15 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +6 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +46 -7
- data/third_party/abseil-cpp/absl/functional/bind_front.h +10 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -1
- data/third_party/abseil-cpp/absl/hash/hash.h +82 -8
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +218 -23
- data/third_party/abseil-cpp/absl/numeric/bits.h +2 -1
- data/third_party/abseil-cpp/absl/numeric/int128.cc +4 -2
- data/third_party/abseil-cpp/absl/numeric/int128.h +2 -2
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +21 -6
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +4 -4
- data/third_party/abseil-cpp/absl/random/distributions.h +3 -3
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +3 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +59 -48
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/randen.h +5 -11
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -2
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +48 -23
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +24 -26
- data/third_party/abseil-cpp/absl/random/internal/traits.h +53 -5
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +5 -5
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +33 -48
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +9 -10
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +7 -4
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -2
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +4 -3
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +17 -0
- data/third_party/abseil-cpp/absl/status/status.cc +174 -2
- data/third_party/abseil-cpp/absl/status/status.h +22 -12
- data/third_party/abseil-cpp/absl/status/statusor.h +9 -3
- data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
- data/third_party/abseil-cpp/absl/strings/cord.cc +194 -913
- data/third_party/abseil-cpp/absl/strings/cord.h +202 -81
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +572 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +20 -32
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +123 -88
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +149 -49
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +44 -59
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +3 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +5 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +7 -74
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +54 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +102 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +58 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +11 -38
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +6 -5
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +38 -7
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +4 -5
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +5 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +10 -2
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/numbers.cc +8 -8
- data/third_party/abseil-cpp/absl/strings/numbers.h +26 -23
- data/third_party/abseil-cpp/absl/strings/str_cat.h +20 -13
- data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -2
- data/third_party/abseil-cpp/absl/strings/string_view.cc +2 -13
- data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
- data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.h +10 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +9 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -25
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +10 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -40
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +17 -9
- data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +5 -4
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +11 -7
- data/third_party/abseil-cpp/absl/time/time.h +16 -12
- data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +3 -3
- data/third_party/abseil-cpp/absl/types/optional.h +17 -14
- data/third_party/abseil-cpp/absl/types/span.h +2 -1
- metadata +67 -36
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +0 -31
- data/src/core/lib/event_engine/sockaddr.cc +0 -40
- data/src/core/lib/event_engine/sockaddr.h +0 -44
- data/src/core/lib/gprpp/capture.h +0 -76
- data/src/core/lib/iomgr/event_engine/closure.cc +0 -77
- data/src/core/lib/iomgr/event_engine/closure.h +0 -42
- data/src/core/lib/iomgr/event_engine/endpoint.cc +0 -172
- data/src/core/lib/iomgr/event_engine/endpoint.h +0 -52
- data/src/core/lib/iomgr/event_engine/iomgr.cc +0 -85
- data/src/core/lib/iomgr/event_engine/pollset.cc +0 -87
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +0 -47
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +0 -37
- data/src/core/lib/iomgr/event_engine/resolver.cc +0 -133
- data/src/core/lib/iomgr/event_engine/resolver.h +0 -56
- data/src/core/lib/iomgr/event_engine/tcp.cc +0 -296
- data/src/core/lib/iomgr/event_engine/timer.cc +0 -62
- data/src/core/lib/slice/slice_split.cc +0 -100
- data/src/core/lib/slice/slice_split.h +0 -40
- data/src/core/lib/transport/byte_stream.cc +0 -164
- data/src/core/lib/transport/byte_stream.h +0 -166
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -50
@@ -14,15 +14,17 @@
|
|
14
14
|
|
15
15
|
#include "absl/base/internal/raw_logging.h"
|
16
16
|
|
17
|
-
#include <stddef.h>
|
18
17
|
#include <cstdarg>
|
18
|
+
#include <cstddef>
|
19
19
|
#include <cstdio>
|
20
20
|
#include <cstdlib>
|
21
21
|
#include <cstring>
|
22
|
+
#include <string>
|
22
23
|
|
23
24
|
#include "absl/base/attributes.h"
|
24
25
|
#include "absl/base/config.h"
|
25
26
|
#include "absl/base/internal/atomic_hook.h"
|
27
|
+
#include "absl/base/internal/errno_saver.h"
|
26
28
|
#include "absl/base/log_severity.h"
|
27
29
|
|
28
30
|
// We know how to perform low-level writes to stderr in POSIX and Windows. For
|
@@ -36,8 +38,8 @@
|
|
36
38
|
// This preprocessor token is also defined in raw_io.cc. If you need to copy
|
37
39
|
// this, consider moving both to config.h instead.
|
38
40
|
#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
|
39
|
-
defined(__Fuchsia__) || defined(__native_client__) ||
|
40
|
-
defined(__EMSCRIPTEN__) || defined(__ASYLO__)
|
41
|
+
defined(__Fuchsia__) || defined(__native_client__) || \
|
42
|
+
defined(__OpenBSD__) || defined(__EMSCRIPTEN__) || defined(__ASYLO__)
|
41
43
|
|
42
44
|
#include <unistd.h>
|
43
45
|
|
@@ -50,7 +52,8 @@
|
|
50
52
|
// ABSL_HAVE_SYSCALL_WRITE is defined when the platform provides the syscall
|
51
53
|
// syscall(SYS_write, /*int*/ fd, /*char* */ buf, /*size_t*/ len);
|
52
54
|
// for low level operations that want to avoid libc.
|
53
|
-
#if (defined(__linux__) || defined(__FreeBSD__)
|
55
|
+
#if (defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__)) && \
|
56
|
+
!defined(__ANDROID__)
|
54
57
|
#include <sys/syscall.h>
|
55
58
|
#define ABSL_HAVE_SYSCALL_WRITE 1
|
56
59
|
#define ABSL_LOW_LEVEL_WRITE_SUPPORTED 1
|
@@ -76,13 +79,6 @@ namespace {
|
|
76
79
|
// Explicitly `#error` out when not `ABSL_LOW_LEVEL_WRITE_SUPPORTED`, except for
|
77
80
|
// a selected set of platforms for which we expect not to be able to raw log.
|
78
81
|
|
79
|
-
ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES
|
80
|
-
absl::base_internal::AtomicHook<LogPrefixHook>
|
81
|
-
log_prefix_hook;
|
82
|
-
ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES
|
83
|
-
absl::base_internal::AtomicHook<AbortHook>
|
84
|
-
abort_hook;
|
85
|
-
|
86
82
|
#ifdef ABSL_LOW_LEVEL_WRITE_SUPPORTED
|
87
83
|
constexpr char kTruncated[] = " ... (message truncated)\n";
|
88
84
|
|
@@ -130,6 +126,18 @@ bool DoRawLog(char** buf, int* size, const char* format, ...) {
|
|
130
126
|
return true;
|
131
127
|
}
|
132
128
|
|
129
|
+
bool DefaultLogFilterAndPrefix(absl::LogSeverity, const char* file, int line,
|
130
|
+
char** buf, int* buf_size) {
|
131
|
+
DoRawLog(buf, buf_size, "[%s : %d] RAW: ", file, line);
|
132
|
+
return true;
|
133
|
+
}
|
134
|
+
|
135
|
+
ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES
|
136
|
+
absl::base_internal::AtomicHook<LogFilterAndPrefixHook>
|
137
|
+
log_filter_and_prefix_hook(DefaultLogFilterAndPrefix);
|
138
|
+
ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES
|
139
|
+
absl::base_internal::AtomicHook<AbortHook> abort_hook;
|
140
|
+
|
133
141
|
void RawLogVA(absl::LogSeverity severity, const char* file, int line,
|
134
142
|
const char* format, va_list ap) ABSL_PRINTF_ATTRIBUTE(4, 0);
|
135
143
|
void RawLogVA(absl::LogSeverity severity, const char* file, int line,
|
@@ -150,14 +158,7 @@ void RawLogVA(absl::LogSeverity severity, const char* file, int line,
|
|
150
158
|
}
|
151
159
|
#endif
|
152
160
|
|
153
|
-
|
154
|
-
if (log_prefix_hook_ptr) {
|
155
|
-
enabled = log_prefix_hook_ptr(severity, file, line, &buf, &size);
|
156
|
-
} else {
|
157
|
-
if (enabled) {
|
158
|
-
DoRawLog(&buf, &size, "[%s : %d] RAW: ", file, line);
|
159
|
-
}
|
160
|
-
}
|
161
|
+
enabled = log_filter_and_prefix_hook(severity, file, line, &buf, &size);
|
161
162
|
const char* const prefix_end = buf;
|
162
163
|
|
163
164
|
#ifdef ABSL_LOW_LEVEL_WRITE_SUPPORTED
|
@@ -168,11 +169,12 @@ void RawLogVA(absl::LogSeverity severity, const char* file, int line,
|
|
168
169
|
} else {
|
169
170
|
DoRawLog(&buf, &size, "%s", kTruncated);
|
170
171
|
}
|
171
|
-
|
172
|
+
AsyncSignalSafeWriteToStderr(buffer, strlen(buffer));
|
172
173
|
}
|
173
174
|
#else
|
174
175
|
static_cast<void>(format);
|
175
176
|
static_cast<void>(ap);
|
177
|
+
static_cast<void>(enabled);
|
176
178
|
#endif
|
177
179
|
|
178
180
|
// Abort the process after logging a FATAL message, even if the output itself
|
@@ -195,8 +197,11 @@ void DefaultInternalLog(absl::LogSeverity severity, const char* file, int line,
|
|
195
197
|
|
196
198
|
} // namespace
|
197
199
|
|
198
|
-
void
|
200
|
+
void AsyncSignalSafeWriteToStderr(const char* s, size_t len) {
|
201
|
+
absl::base_internal::ErrnoSaver errno_saver;
|
199
202
|
#if defined(ABSL_HAVE_SYSCALL_WRITE)
|
203
|
+
// We prefer calling write via `syscall` to minimize the risk of libc doing
|
204
|
+
// something "helpful".
|
200
205
|
syscall(SYS_write, STDERR_FILENO, s, len);
|
201
206
|
#elif defined(ABSL_HAVE_POSIX_WRITE)
|
202
207
|
write(STDERR_FILENO, s, len);
|
@@ -229,7 +234,9 @@ ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES ABSL_DLL
|
|
229
234
|
absl::base_internal::AtomicHook<InternalLogFunction>
|
230
235
|
internal_log_function(DefaultInternalLog);
|
231
236
|
|
232
|
-
void
|
237
|
+
void RegisterLogFilterAndPrefixHook(LogFilterAndPrefixHook func) {
|
238
|
+
log_filter_and_prefix_hook.Store(func);
|
239
|
+
}
|
233
240
|
|
234
241
|
void RegisterAbortHook(AbortHook func) { abort_hook.Store(func); }
|
235
242
|
|
@@ -109,12 +109,9 @@ namespace raw_logging_internal {
|
|
109
109
|
void RawLog(absl::LogSeverity severity, const char* file, int line,
|
110
110
|
const char* format, ...) ABSL_PRINTF_ATTRIBUTE(4, 5);
|
111
111
|
|
112
|
-
// Writes the provided buffer directly to stderr, in a safe, low-level
|
113
|
-
//
|
114
|
-
|
115
|
-
// not malloc. If the platform supports the SYS_write syscall, we invoke that
|
116
|
-
// directly to side-step any libc interception.
|
117
|
-
void SafeWriteToStderr(const char *s, size_t len);
|
112
|
+
// Writes the provided buffer directly to stderr, in a signal-safe, low-level
|
113
|
+
// manner.
|
114
|
+
void AsyncSignalSafeWriteToStderr(const char* s, size_t len);
|
118
115
|
|
119
116
|
// compile-time function to get the "base" filename, that is, the part of
|
120
117
|
// a filename after the last "/" or "\" path separator. The search starts at
|
@@ -148,11 +145,12 @@ bool RawLoggingFullySupported();
|
|
148
145
|
// 'severity' is the severity level of the message being written.
|
149
146
|
// 'file' and 'line' are the file and line number where the ABSL_RAW_LOG macro
|
150
147
|
// was located.
|
151
|
-
// '
|
152
|
-
// hook writes a prefix, it must increment *
|
148
|
+
// 'buf' and 'buf_size' are pointers to the buffer and buffer size. If the
|
149
|
+
// hook writes a prefix, it must increment *buf and decrement *buf_size
|
153
150
|
// accordingly.
|
154
|
-
using
|
155
|
-
|
151
|
+
using LogFilterAndPrefixHook = bool (*)(absl::LogSeverity severity,
|
152
|
+
const char* file, int line, char** buf,
|
153
|
+
int* buf_size);
|
156
154
|
|
157
155
|
// Function type for a raw_logging customization hook called to abort a process
|
158
156
|
// when a FATAL message is logged. If the provided AbortHook() returns, the
|
@@ -162,7 +160,10 @@ using LogPrefixHook = bool (*)(absl::LogSeverity severity, const char* file,
|
|
162
160
|
// was located.
|
163
161
|
// The NUL-terminated logged message lives in the buffer between 'buf_start'
|
164
162
|
// and 'buf_end'. 'prefix_end' points to the first non-prefix character of the
|
165
|
-
// buffer (as written by the
|
163
|
+
// buffer (as written by the LogFilterAndPrefixHook.)
|
164
|
+
//
|
165
|
+
// The lifetime of the filename and message buffers will not end while the
|
166
|
+
// process remains alive.
|
166
167
|
using AbortHook = void (*)(const char* file, int line, const char* buf_start,
|
167
168
|
const char* prefix_end, const char* buf_end);
|
168
169
|
|
@@ -184,7 +185,7 @@ ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES ABSL_DLL extern base_internal::AtomicHook<
|
|
184
185
|
//
|
185
186
|
// These functions are safe to call at any point during initialization; they do
|
186
187
|
// not block or malloc, and are async-signal safe.
|
187
|
-
void
|
188
|
+
void RegisterLogFilterAndPrefixHook(LogFilterAndPrefixHook func);
|
188
189
|
void RegisterAbortHook(AbortHook func);
|
189
190
|
void RegisterInternalLogFunction(InternalLogFunction func);
|
190
191
|
|
@@ -19,6 +19,7 @@
|
|
19
19
|
#include <limits>
|
20
20
|
|
21
21
|
#include "absl/base/attributes.h"
|
22
|
+
#include "absl/base/config.h"
|
22
23
|
#include "absl/base/internal/atomic_hook.h"
|
23
24
|
#include "absl/base/internal/cycleclock.h"
|
24
25
|
#include "absl/base/internal/spinlock_wait.h"
|
@@ -66,12 +67,14 @@ void RegisterSpinLockProfiler(void (*fn)(const void *contendedlock,
|
|
66
67
|
submit_profile_data.Store(fn);
|
67
68
|
}
|
68
69
|
|
70
|
+
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
69
71
|
// Static member variable definitions.
|
70
72
|
constexpr uint32_t SpinLock::kSpinLockHeld;
|
71
73
|
constexpr uint32_t SpinLock::kSpinLockCooperative;
|
72
74
|
constexpr uint32_t SpinLock::kSpinLockDisabledScheduling;
|
73
75
|
constexpr uint32_t SpinLock::kSpinLockSleeper;
|
74
76
|
constexpr uint32_t SpinLock::kWaitTimeMask;
|
77
|
+
#endif
|
75
78
|
|
76
79
|
// Uncommon constructors.
|
77
80
|
SpinLock::SpinLock(base_internal::SchedulingMode mode)
|
@@ -120,6 +120,14 @@ class ABSL_LOCKABLE SpinLock {
|
|
120
120
|
return (lockword_.load(std::memory_order_relaxed) & kSpinLockHeld) != 0;
|
121
121
|
}
|
122
122
|
|
123
|
+
// Return immediately if this thread holds the SpinLock exclusively.
|
124
|
+
// Otherwise, report an error by crashing with a diagnostic.
|
125
|
+
inline void AssertHeld() const ABSL_ASSERT_EXCLUSIVE_LOCK() {
|
126
|
+
if (!IsHeld()) {
|
127
|
+
ABSL_RAW_LOG(FATAL, "thread should hold the lock on SpinLock");
|
128
|
+
}
|
129
|
+
}
|
130
|
+
|
123
131
|
protected:
|
124
132
|
// These should not be exported except for testing.
|
125
133
|
|
@@ -57,13 +57,10 @@ static_assert(sizeof(std::atomic<uint32_t>) == sizeof(int),
|
|
57
57
|
extern "C" {
|
58
58
|
|
59
59
|
ABSL_ATTRIBUTE_WEAK void ABSL_INTERNAL_C_SYMBOL(AbslInternalSpinLockDelay)(
|
60
|
-
std::atomic<uint32_t> *w, uint32_t value, int
|
60
|
+
std::atomic<uint32_t> *w, uint32_t value, int,
|
61
61
|
absl::base_internal::SchedulingMode) {
|
62
62
|
absl::base_internal::ErrnoSaver errno_saver;
|
63
|
-
|
64
|
-
tm.tv_sec = 0;
|
65
|
-
tm.tv_nsec = absl::base_internal::SpinLockSuggestedDelayNS(loop);
|
66
|
-
syscall(SYS_futex, w, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, value, &tm);
|
63
|
+
syscall(SYS_futex, w, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, value, nullptr);
|
67
64
|
}
|
68
65
|
|
69
66
|
ABSL_ATTRIBUTE_WEAK void ABSL_INTERNAL_C_SYMBOL(AbslInternalSpinLockWake)(
|
@@ -0,0 +1,88 @@
|
|
1
|
+
// Copyright 2020 The Abseil Authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#include "absl/base/internal/strerror.h"
|
16
|
+
|
17
|
+
#include <array>
|
18
|
+
#include <cerrno>
|
19
|
+
#include <cstddef>
|
20
|
+
#include <cstdio>
|
21
|
+
#include <cstring>
|
22
|
+
#include <string>
|
23
|
+
#include <type_traits>
|
24
|
+
|
25
|
+
#include "absl/base/internal/errno_saver.h"
|
26
|
+
|
27
|
+
namespace absl {
|
28
|
+
ABSL_NAMESPACE_BEGIN
|
29
|
+
namespace base_internal {
|
30
|
+
namespace {
|
31
|
+
|
32
|
+
const char* StrErrorAdaptor(int errnum, char* buf, size_t buflen) {
|
33
|
+
#if defined(_WIN32)
|
34
|
+
int rc = strerror_s(buf, buflen, errnum);
|
35
|
+
buf[buflen - 1] = '\0'; // guarantee NUL termination
|
36
|
+
if (rc == 0 && strncmp(buf, "Unknown error", buflen) == 0) *buf = '\0';
|
37
|
+
return buf;
|
38
|
+
#else
|
39
|
+
// The type of `ret` is platform-specific; both of these branches must compile
|
40
|
+
// either way but only one will execute on any given platform:
|
41
|
+
auto ret = strerror_r(errnum, buf, buflen);
|
42
|
+
if (std::is_same<decltype(ret), int>::value) {
|
43
|
+
// XSI `strerror_r`; `ret` is `int`:
|
44
|
+
if (ret) *buf = '\0';
|
45
|
+
return buf;
|
46
|
+
} else {
|
47
|
+
// GNU `strerror_r`; `ret` is `char *`:
|
48
|
+
return reinterpret_cast<const char*>(ret);
|
49
|
+
}
|
50
|
+
#endif
|
51
|
+
}
|
52
|
+
|
53
|
+
std::string StrErrorInternal(int errnum) {
|
54
|
+
char buf[100];
|
55
|
+
const char* str = StrErrorAdaptor(errnum, buf, sizeof buf);
|
56
|
+
if (*str == '\0') {
|
57
|
+
snprintf(buf, sizeof buf, "Unknown error %d", errnum);
|
58
|
+
str = buf;
|
59
|
+
}
|
60
|
+
return str;
|
61
|
+
}
|
62
|
+
|
63
|
+
// kSysNerr is the number of errors from a recent glibc. `StrError()` falls back
|
64
|
+
// to `StrErrorAdaptor()` if the value is larger than this.
|
65
|
+
constexpr int kSysNerr = 135;
|
66
|
+
|
67
|
+
std::array<std::string, kSysNerr>* NewStrErrorTable() {
|
68
|
+
auto* table = new std::array<std::string, kSysNerr>;
|
69
|
+
for (int i = 0; i < static_cast<int>(table->size()); ++i) {
|
70
|
+
(*table)[i] = StrErrorInternal(i);
|
71
|
+
}
|
72
|
+
return table;
|
73
|
+
}
|
74
|
+
|
75
|
+
} // namespace
|
76
|
+
|
77
|
+
std::string StrError(int errnum) {
|
78
|
+
absl::base_internal::ErrnoSaver errno_saver;
|
79
|
+
static const auto* table = NewStrErrorTable();
|
80
|
+
if (errnum >= 0 && errnum < static_cast<int>(table->size())) {
|
81
|
+
return (*table)[errnum];
|
82
|
+
}
|
83
|
+
return StrErrorInternal(errnum);
|
84
|
+
}
|
85
|
+
|
86
|
+
} // namespace base_internal
|
87
|
+
ABSL_NAMESPACE_END
|
88
|
+
} // namespace absl
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// Copyright 2020 The Abseil Authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef ABSL_BASE_INTERNAL_STRERROR_H_
|
16
|
+
#define ABSL_BASE_INTERNAL_STRERROR_H_
|
17
|
+
|
18
|
+
#include <string>
|
19
|
+
|
20
|
+
#include "absl/base/config.h"
|
21
|
+
|
22
|
+
namespace absl {
|
23
|
+
ABSL_NAMESPACE_BEGIN
|
24
|
+
namespace base_internal {
|
25
|
+
|
26
|
+
// A portable and thread-safe alternative to C89's `strerror`.
|
27
|
+
//
|
28
|
+
// The C89 specification of `strerror` is not suitable for use in a
|
29
|
+
// multi-threaded application as the returned string may be changed by calls to
|
30
|
+
// `strerror` from another thread. The many non-stdlib alternatives differ
|
31
|
+
// enough in their names, availability, and semantics to justify this wrapper
|
32
|
+
// around them. `errno` will not be modified by a call to `absl::StrError`.
|
33
|
+
std::string StrError(int errnum);
|
34
|
+
|
35
|
+
} // namespace base_internal
|
36
|
+
ABSL_NAMESPACE_END
|
37
|
+
} // namespace absl
|
38
|
+
|
39
|
+
#endif // ABSL_BASE_INTERNAL_STRERROR_H_
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
#include "absl/base/internal/thread_identity.h"
|
16
16
|
|
17
|
-
#
|
17
|
+
#if !defined(_WIN32) || defined(__MINGW32__)
|
18
18
|
#include <pthread.h>
|
19
19
|
#include <signal.h>
|
20
20
|
#endif
|
@@ -56,6 +56,7 @@ void AllocateThreadIdentityKey(ThreadIdentityReclaimerFunction reclaimer) {
|
|
56
56
|
// *different* instances of this ptr.
|
57
57
|
// Apple platforms have the visibility attribute, but issue a compile warning
|
58
58
|
// that protected visibility is unsupported.
|
59
|
+
ABSL_CONST_INIT // Must come before __attribute__((visibility("protected")))
|
59
60
|
#if ABSL_HAVE_ATTRIBUTE(visibility) && !defined(__APPLE__)
|
60
61
|
__attribute__((visibility("protected")))
|
61
62
|
#endif // ABSL_HAVE_ATTRIBUTE(visibility) && !defined(__APPLE__)
|
@@ -24,8 +24,13 @@
|
|
24
24
|
#ifdef __GLIBC__
|
25
25
|
#include <sys/platform/ppc.h>
|
26
26
|
#elif defined(__FreeBSD__)
|
27
|
-
|
27
|
+
// clang-format off
|
28
|
+
// This order does actually matter =(.
|
28
29
|
#include <sys/types.h>
|
30
|
+
#include <sys/sysctl.h>
|
31
|
+
// clang-format on
|
32
|
+
|
33
|
+
#include "absl/base/call_once.h"
|
29
34
|
#endif
|
30
35
|
#endif
|
31
36
|
|
@@ -49,12 +54,6 @@ double UnscaledCycleClock::Frequency() {
|
|
49
54
|
|
50
55
|
#elif defined(__x86_64__)
|
51
56
|
|
52
|
-
int64_t UnscaledCycleClock::Now() {
|
53
|
-
uint64_t low, high;
|
54
|
-
__asm__ volatile("rdtsc" : "=a"(low), "=d"(high));
|
55
|
-
return (high << 32) | low;
|
56
|
-
}
|
57
|
-
|
58
57
|
double UnscaledCycleClock::Frequency() {
|
59
58
|
return base_internal::NominalCPUFrequency();
|
60
59
|
}
|
@@ -47,7 +47,7 @@
|
|
47
47
|
// The following platforms have an implementation of a hardware counter.
|
48
48
|
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
|
49
49
|
defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
|
50
|
-
defined(_M_IX86) || defined(_M_X64)
|
50
|
+
defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
|
51
51
|
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
|
52
52
|
#else
|
53
53
|
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 0
|
@@ -59,8 +59,7 @@
|
|
59
59
|
// CycleClock that runs at atleast 1 MHz. We've found some Android
|
60
60
|
// ARM64 devices where this is not the case, so we disable it by
|
61
61
|
// default on Android ARM64.
|
62
|
-
#if defined(__native_client__) ||
|
63
|
-
(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || \
|
62
|
+
#if defined(__native_client__) || (defined(__APPLE__)) || \
|
64
63
|
(defined(__ANDROID__) && defined(__aarch64__))
|
65
64
|
#define ABSL_USE_UNSCALED_CYCLECLOCK_DEFAULT 0
|
66
65
|
#else
|
@@ -115,6 +114,16 @@ class UnscaledCycleClock {
|
|
115
114
|
friend class base_internal::UnscaledCycleClockWrapperForInitializeFrequency;
|
116
115
|
};
|
117
116
|
|
117
|
+
#if defined(__x86_64__)
|
118
|
+
|
119
|
+
inline int64_t UnscaledCycleClock::Now() {
|
120
|
+
uint64_t low, high;
|
121
|
+
__asm__ volatile("rdtsc" : "=a"(low), "=d"(high));
|
122
|
+
return (high << 32) | low;
|
123
|
+
}
|
124
|
+
|
125
|
+
#endif
|
126
|
+
|
118
127
|
} // namespace base_internal
|
119
128
|
ABSL_NAMESPACE_END
|
120
129
|
} // namespace absl
|
@@ -16,6 +16,8 @@
|
|
16
16
|
|
17
17
|
#include <ostream>
|
18
18
|
|
19
|
+
#include "absl/base/attributes.h"
|
20
|
+
|
19
21
|
namespace absl {
|
20
22
|
ABSL_NAMESPACE_BEGIN
|
21
23
|
|
@@ -23,5 +25,31 @@ std::ostream& operator<<(std::ostream& os, absl::LogSeverity s) {
|
|
23
25
|
if (s == absl::NormalizeLogSeverity(s)) return os << absl::LogSeverityName(s);
|
24
26
|
return os << "absl::LogSeverity(" << static_cast<int>(s) << ")";
|
25
27
|
}
|
28
|
+
|
29
|
+
std::ostream& operator<<(std::ostream& os, absl::LogSeverityAtLeast s) {
|
30
|
+
switch (s) {
|
31
|
+
case absl::LogSeverityAtLeast::kInfo:
|
32
|
+
case absl::LogSeverityAtLeast::kWarning:
|
33
|
+
case absl::LogSeverityAtLeast::kError:
|
34
|
+
case absl::LogSeverityAtLeast::kFatal:
|
35
|
+
return os << ">=" << static_cast<absl::LogSeverity>(s);
|
36
|
+
case absl::LogSeverityAtLeast::kInfinity:
|
37
|
+
return os << "INFINITY";
|
38
|
+
}
|
39
|
+
return os;
|
40
|
+
}
|
41
|
+
|
42
|
+
std::ostream& operator<<(std::ostream& os, absl::LogSeverityAtMost s) {
|
43
|
+
switch (s) {
|
44
|
+
case absl::LogSeverityAtMost::kInfo:
|
45
|
+
case absl::LogSeverityAtMost::kWarning:
|
46
|
+
case absl::LogSeverityAtMost::kError:
|
47
|
+
case absl::LogSeverityAtMost::kFatal:
|
48
|
+
return os << "<=" << static_cast<absl::LogSeverity>(s);
|
49
|
+
case absl::LogSeverityAtMost::kNegativeInfinity:
|
50
|
+
return os << "NEGATIVE_INFINITY";
|
51
|
+
}
|
52
|
+
return os;
|
53
|
+
}
|
26
54
|
ABSL_NAMESPACE_END
|
27
55
|
} // namespace absl
|
@@ -115,6 +115,57 @@ constexpr absl::LogSeverity NormalizeLogSeverity(int s) {
|
|
115
115
|
// unspecified; do not rely on it.
|
116
116
|
std::ostream& operator<<(std::ostream& os, absl::LogSeverity s);
|
117
117
|
|
118
|
+
// Enums representing a lower bound for LogSeverity. APIs that only operate on
|
119
|
+
// messages of at least a certain level (for example, `SetMinLogLevel()`) use
|
120
|
+
// this type to specify that level. absl::LogSeverityAtLeast::kInfinity is
|
121
|
+
// a level above all threshold levels and therefore no log message will
|
122
|
+
// ever meet this threshold.
|
123
|
+
enum class LogSeverityAtLeast : int {
|
124
|
+
kInfo = static_cast<int>(absl::LogSeverity::kInfo),
|
125
|
+
kWarning = static_cast<int>(absl::LogSeverity::kWarning),
|
126
|
+
kError = static_cast<int>(absl::LogSeverity::kError),
|
127
|
+
kFatal = static_cast<int>(absl::LogSeverity::kFatal),
|
128
|
+
kInfinity = 1000,
|
129
|
+
};
|
130
|
+
|
131
|
+
std::ostream& operator<<(std::ostream& os, absl::LogSeverityAtLeast s);
|
132
|
+
|
133
|
+
// Enums representing an upper bound for LogSeverity. APIs that only operate on
|
134
|
+
// messages of at most a certain level (for example, buffer all messages at or
|
135
|
+
// below a certain level) use this type to specify that level.
|
136
|
+
// absl::LogSeverityAtMost::kNegativeInfinity is a level below all threshold
|
137
|
+
// levels and therefore will exclude all log messages.
|
138
|
+
enum class LogSeverityAtMost : int {
|
139
|
+
kNegativeInfinity = -1000,
|
140
|
+
kInfo = static_cast<int>(absl::LogSeverity::kInfo),
|
141
|
+
kWarning = static_cast<int>(absl::LogSeverity::kWarning),
|
142
|
+
kError = static_cast<int>(absl::LogSeverity::kError),
|
143
|
+
kFatal = static_cast<int>(absl::LogSeverity::kFatal),
|
144
|
+
};
|
145
|
+
|
146
|
+
std::ostream& operator<<(std::ostream& os, absl::LogSeverityAtMost s);
|
147
|
+
|
148
|
+
#define COMPOP(op1, op2, T) \
|
149
|
+
constexpr bool operator op1(absl::T lhs, absl::LogSeverity rhs) { \
|
150
|
+
return static_cast<absl::LogSeverity>(lhs) op1 rhs; \
|
151
|
+
} \
|
152
|
+
constexpr bool operator op2(absl::LogSeverity lhs, absl::T rhs) { \
|
153
|
+
return lhs op2 static_cast<absl::LogSeverity>(rhs); \
|
154
|
+
}
|
155
|
+
|
156
|
+
// Comparisons between `LogSeverity` and `LogSeverityAtLeast`/
|
157
|
+
// `LogSeverityAtMost` are only supported in one direction.
|
158
|
+
// Valid checks are:
|
159
|
+
// LogSeverity >= LogSeverityAtLeast
|
160
|
+
// LogSeverity < LogSeverityAtLeast
|
161
|
+
// LogSeverity <= LogSeverityAtMost
|
162
|
+
// LogSeverity > LogSeverityAtMost
|
163
|
+
COMPOP(>, <, LogSeverityAtLeast)
|
164
|
+
COMPOP(<=, >=, LogSeverityAtLeast)
|
165
|
+
COMPOP(<, >, LogSeverityAtMost)
|
166
|
+
COMPOP(>=, <=, LogSeverityAtMost)
|
167
|
+
#undef COMPOP
|
168
|
+
|
118
169
|
ABSL_NAMESPACE_END
|
119
170
|
} // namespace absl
|
120
171
|
|
@@ -181,35 +181,43 @@
|
|
181
181
|
#define ABSL_PREDICT_TRUE(x) (x)
|
182
182
|
#endif
|
183
183
|
|
184
|
-
//
|
184
|
+
// ABSL_ASSUME(cond)
|
185
|
+
//
|
185
186
|
// Informs the compiler that a condition is always true and that it can assume
|
186
|
-
// it to be true for optimization purposes.
|
187
|
-
//
|
187
|
+
// it to be true for optimization purposes.
|
188
|
+
//
|
189
|
+
// WARNING: If the condition is false, the program can produce undefined and
|
190
|
+
// potentially dangerous behavior.
|
191
|
+
//
|
188
192
|
// In !NDEBUG mode, the condition is checked with an assert().
|
189
|
-
//
|
190
|
-
//
|
193
|
+
//
|
194
|
+
// NOTE: The expression must not have side effects, as it may only be evaluated
|
195
|
+
// in some compilation modes and not others. Some compilers may issue a warning
|
196
|
+
// if the compiler cannot prove the expression has no side effects. For example,
|
197
|
+
// the expression should not use a function call since the compiler cannot prove
|
198
|
+
// that a function call does not have side effects.
|
191
199
|
//
|
192
200
|
// Example:
|
193
201
|
//
|
194
202
|
// int x = ...;
|
195
|
-
//
|
203
|
+
// ABSL_ASSUME(x >= 0);
|
196
204
|
// // The compiler can optimize the division to a simple right shift using the
|
197
205
|
// // assumption specified above.
|
198
206
|
// int y = x / 16;
|
199
207
|
//
|
200
208
|
#if !defined(NDEBUG)
|
201
|
-
#define
|
209
|
+
#define ABSL_ASSUME(cond) assert(cond)
|
202
210
|
#elif ABSL_HAVE_BUILTIN(__builtin_assume)
|
203
|
-
#define
|
211
|
+
#define ABSL_ASSUME(cond) __builtin_assume(cond)
|
204
212
|
#elif defined(__GNUC__) || ABSL_HAVE_BUILTIN(__builtin_unreachable)
|
205
|
-
#define
|
213
|
+
#define ABSL_ASSUME(cond) \
|
206
214
|
do { \
|
207
215
|
if (!(cond)) __builtin_unreachable(); \
|
208
216
|
} while (0)
|
209
217
|
#elif defined(_MSC_VER)
|
210
|
-
#define
|
218
|
+
#define ABSL_ASSUME(cond) __assume(cond)
|
211
219
|
#else
|
212
|
-
#define
|
220
|
+
#define ABSL_ASSUME(cond) \
|
213
221
|
do { \
|
214
222
|
static_cast<void>(false && (cond)); \
|
215
223
|
} while (0)
|
@@ -154,8 +154,8 @@
|
|
154
154
|
|
155
155
|
// ABSL_LOCKS_EXCLUDED()
|
156
156
|
//
|
157
|
-
// Documents the locks
|
158
|
-
//
|
157
|
+
// Documents the locks that cannot be held by callers of this function, as they
|
158
|
+
// might be acquired by this function (Abseil's `Mutex` locks are
|
159
159
|
// non-reentrant).
|
160
160
|
#if ABSL_HAVE_ATTRIBUTE(locks_excluded)
|
161
161
|
#define ABSL_LOCKS_EXCLUDED(...) __attribute__((locks_excluded(__VA_ARGS__)))
|
@@ -489,12 +489,14 @@ class FixedArray {
|
|
489
489
|
Storage storage_;
|
490
490
|
};
|
491
491
|
|
492
|
+
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
492
493
|
template <typename T, size_t N, typename A>
|
493
494
|
constexpr size_t FixedArray<T, N, A>::kInlineBytesDefault;
|
494
495
|
|
495
496
|
template <typename T, size_t N, typename A>
|
496
497
|
constexpr typename FixedArray<T, N, A>::size_type
|
497
498
|
FixedArray<T, N, A>::inline_elements;
|
499
|
+
#endif
|
498
500
|
|
499
501
|
template <typename T, size_t N, typename A>
|
500
502
|
void FixedArray<T, N, A>::NonEmptyInlinedStorage::AnnotateConstruct(
|