grpc 1.37.1 → 1.38.0.pre1
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 +64 -58
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +5 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +628 -3101
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +36 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +84 -61
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- 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/native/dns_resolver.cc +17 -9
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -11
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +43 -28
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +16 -15
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +31 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +101 -93
- data/src/core/ext/xds/xds_api.h +6 -6
- data/src/core/ext/xds/xds_bootstrap.cc +97 -159
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +310 -178
- data/src/core/ext/xds/xds_client.h +41 -27
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +3 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -11
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +10 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/event_engine/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +180 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/exec_ctx.cc +4 -4
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +11 -10
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +36 -34
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +39 -39
- data/src/core/lib/matchers/matchers.h +28 -28
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +22 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +33 -32
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/surface/call.cc +46 -45
- data/src/core/lib/surface/call.h +2 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +28 -22
- data/src/core/lib/surface/server.h +16 -15
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +19 -8
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/tsi/alts/crypt/gsec.h +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +477 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +185 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +68 -45
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
@@ -270,7 +270,7 @@ void grpc_fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
|
|
270
270
|
g_event_engine->fd_orphan(fd, on_done, release_fd, reason);
|
271
271
|
}
|
272
272
|
|
273
|
-
void grpc_fd_shutdown(grpc_fd* fd,
|
273
|
+
void grpc_fd_shutdown(grpc_fd* fd, grpc_error_handle why) {
|
274
274
|
GRPC_POLLING_API_TRACE("fd_shutdown(%d)", grpc_fd_wrapped_fd(fd));
|
275
275
|
GRPC_FD_TRACE("fd_shutdown(%d)", grpc_fd_wrapped_fd(fd));
|
276
276
|
g_event_engine->fd_shutdown(fd, why);
|
@@ -315,19 +315,20 @@ static void pollset_destroy(grpc_pollset* pollset) {
|
|
315
315
|
g_event_engine->pollset_destroy(pollset);
|
316
316
|
}
|
317
317
|
|
318
|
-
static
|
319
|
-
|
320
|
-
|
318
|
+
static grpc_error_handle pollset_work(grpc_pollset* pollset,
|
319
|
+
grpc_pollset_worker** worker,
|
320
|
+
grpc_millis deadline) {
|
321
321
|
GRPC_POLLING_API_TRACE("pollset_work(%p, %" PRId64 ") begin", pollset,
|
322
322
|
deadline);
|
323
|
-
|
323
|
+
grpc_error_handle err =
|
324
|
+
g_event_engine->pollset_work(pollset, worker, deadline);
|
324
325
|
GRPC_POLLING_API_TRACE("pollset_work(%p, %" PRId64 ") end", pollset,
|
325
326
|
deadline);
|
326
327
|
return err;
|
327
328
|
}
|
328
329
|
|
329
|
-
static
|
330
|
-
|
330
|
+
static grpc_error_handle pollset_kick(grpc_pollset* pollset,
|
331
|
+
grpc_pollset_worker* specific_worker) {
|
331
332
|
GRPC_POLLING_API_TRACE("pollset_kick(%p, %p)", pollset, specific_worker);
|
332
333
|
return g_event_engine->pollset_kick(pollset, specific_worker);
|
333
334
|
}
|
@@ -406,7 +407,7 @@ bool grpc_is_any_background_poller_thread(void) {
|
|
406
407
|
}
|
407
408
|
|
408
409
|
bool grpc_add_closure_to_background_poller(grpc_closure* closure,
|
409
|
-
|
410
|
+
grpc_error_handle error) {
|
410
411
|
return g_event_engine->add_closure_to_background_poller(closure, error);
|
411
412
|
}
|
412
413
|
|
@@ -52,7 +52,7 @@ typedef struct grpc_event_engine_vtable {
|
|
52
52
|
int (*fd_wrapped_fd)(grpc_fd* fd);
|
53
53
|
void (*fd_orphan)(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
|
54
54
|
const char* reason);
|
55
|
-
void (*fd_shutdown)(grpc_fd* fd,
|
55
|
+
void (*fd_shutdown)(grpc_fd* fd, grpc_error_handle why);
|
56
56
|
void (*fd_notify_on_read)(grpc_fd* fd, grpc_closure* closure);
|
57
57
|
void (*fd_notify_on_write)(grpc_fd* fd, grpc_closure* closure);
|
58
58
|
void (*fd_notify_on_error)(grpc_fd* fd, grpc_closure* closure);
|
@@ -64,11 +64,11 @@ typedef struct grpc_event_engine_vtable {
|
|
64
64
|
void (*pollset_init)(grpc_pollset* pollset, gpr_mu** mu);
|
65
65
|
void (*pollset_shutdown)(grpc_pollset* pollset, grpc_closure* closure);
|
66
66
|
void (*pollset_destroy)(grpc_pollset* pollset);
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
67
|
+
grpc_error_handle (*pollset_work)(grpc_pollset* pollset,
|
68
|
+
grpc_pollset_worker** worker,
|
69
|
+
grpc_millis deadline);
|
70
|
+
grpc_error_handle (*pollset_kick)(grpc_pollset* pollset,
|
71
|
+
grpc_pollset_worker* specific_worker);
|
72
72
|
void (*pollset_add_fd)(grpc_pollset* pollset, struct grpc_fd* fd);
|
73
73
|
|
74
74
|
grpc_pollset_set* (*pollset_set_create)(void);
|
@@ -88,7 +88,7 @@ typedef struct grpc_event_engine_vtable {
|
|
88
88
|
void (*shutdown_background_closure)(void);
|
89
89
|
void (*shutdown_engine)(void);
|
90
90
|
bool (*add_closure_to_background_poller)(grpc_closure* closure,
|
91
|
-
|
91
|
+
grpc_error_handle error);
|
92
92
|
} grpc_event_engine_vtable;
|
93
93
|
|
94
94
|
/* register a new event engine factory */
|
@@ -139,7 +139,7 @@ void grpc_fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
|
|
139
139
|
bool grpc_fd_is_shutdown(grpc_fd* fd);
|
140
140
|
|
141
141
|
/* Cause any current and future callbacks to fail. */
|
142
|
-
void grpc_fd_shutdown(grpc_fd* fd,
|
142
|
+
void grpc_fd_shutdown(grpc_fd* fd, grpc_error_handle why);
|
143
143
|
|
144
144
|
/* Register read interest, causing read_cb to be called once when fd becomes
|
145
145
|
readable, on deadline specified by deadline, or on shutdown triggered by
|
@@ -195,7 +195,7 @@ bool grpc_is_any_background_poller_thread();
|
|
195
195
|
* that the closure may or may not run yet when this function returns, and the
|
196
196
|
* closure should not be blocking or long-running. */
|
197
197
|
bool grpc_add_closure_to_background_poller(grpc_closure* closure,
|
198
|
-
|
198
|
+
grpc_error_handle error);
|
199
199
|
|
200
200
|
/* Shut down all the closures registered in the background poller. */
|
201
201
|
void grpc_shutdown_background_closure();
|
@@ -27,7 +27,7 @@
|
|
27
27
|
#include "src/core/lib/iomgr/combiner.h"
|
28
28
|
#include "src/core/lib/profiling/timers.h"
|
29
29
|
|
30
|
-
static void exec_ctx_run(grpc_closure* closure,
|
30
|
+
static void exec_ctx_run(grpc_closure* closure, grpc_error_handle error) {
|
31
31
|
#ifndef NDEBUG
|
32
32
|
closure->scheduled = false;
|
33
33
|
if (grpc_trace_closure.enabled()) {
|
@@ -46,7 +46,7 @@ static void exec_ctx_run(grpc_closure* closure, grpc_error* error) {
|
|
46
46
|
GRPC_ERROR_UNREF(error);
|
47
47
|
}
|
48
48
|
|
49
|
-
static void exec_ctx_sched(grpc_closure* closure,
|
49
|
+
static void exec_ctx_sched(grpc_closure* closure, grpc_error_handle error) {
|
50
50
|
grpc_closure_list_append(grpc_core::ExecCtx::Get()->closure_list(), closure,
|
51
51
|
error);
|
52
52
|
}
|
@@ -152,7 +152,7 @@ bool ExecCtx::Flush() {
|
|
152
152
|
closure_list_.head = closure_list_.tail = nullptr;
|
153
153
|
while (c != nullptr) {
|
154
154
|
grpc_closure* next = c->next_data.next;
|
155
|
-
|
155
|
+
grpc_error_handle error = c->error_data.error;
|
156
156
|
did_something = true;
|
157
157
|
exec_ctx_run(c, error);
|
158
158
|
c = next;
|
@@ -174,7 +174,7 @@ grpc_millis ExecCtx::Now() {
|
|
174
174
|
}
|
175
175
|
|
176
176
|
void ExecCtx::Run(const DebugLocation& location, grpc_closure* closure,
|
177
|
-
|
177
|
+
grpc_error_handle error) {
|
178
178
|
(void)location;
|
179
179
|
if (closure == nullptr) {
|
180
180
|
GRPC_ERROR_UNREF(error);
|
@@ -57,27 +57,27 @@ GPR_TLS_DECL(g_this_thread_state);
|
|
57
57
|
|
58
58
|
Executor* executors[static_cast<size_t>(ExecutorType::NUM_EXECUTORS)];
|
59
59
|
|
60
|
-
void default_enqueue_short(grpc_closure* closure,
|
60
|
+
void default_enqueue_short(grpc_closure* closure, grpc_error_handle error) {
|
61
61
|
executors[static_cast<size_t>(ExecutorType::DEFAULT)]->Enqueue(
|
62
62
|
closure, error, true /* is_short */);
|
63
63
|
}
|
64
64
|
|
65
|
-
void default_enqueue_long(grpc_closure* closure,
|
65
|
+
void default_enqueue_long(grpc_closure* closure, grpc_error_handle error) {
|
66
66
|
executors[static_cast<size_t>(ExecutorType::DEFAULT)]->Enqueue(
|
67
67
|
closure, error, false /* is_short */);
|
68
68
|
}
|
69
69
|
|
70
|
-
void resolver_enqueue_short(grpc_closure* closure,
|
70
|
+
void resolver_enqueue_short(grpc_closure* closure, grpc_error_handle error) {
|
71
71
|
executors[static_cast<size_t>(ExecutorType::RESOLVER)]->Enqueue(
|
72
72
|
closure, error, true /* is_short */);
|
73
73
|
}
|
74
74
|
|
75
|
-
void resolver_enqueue_long(grpc_closure* closure,
|
75
|
+
void resolver_enqueue_long(grpc_closure* closure, grpc_error_handle error) {
|
76
76
|
executors[static_cast<size_t>(ExecutorType::RESOLVER)]->Enqueue(
|
77
77
|
closure, error, false /* is_short */);
|
78
78
|
}
|
79
79
|
|
80
|
-
using EnqueueFunc = void (*)(grpc_closure* closure,
|
80
|
+
using EnqueueFunc = void (*)(grpc_closure* closure, grpc_error_handle error);
|
81
81
|
|
82
82
|
const EnqueueFunc
|
83
83
|
executor_enqueue_fns_[static_cast<size_t>(ExecutorType::NUM_EXECUTORS)]
|
@@ -115,7 +115,7 @@ size_t Executor::RunClosures(const char* executor_name,
|
|
115
115
|
grpc_closure* c = list.head;
|
116
116
|
while (c != nullptr) {
|
117
117
|
grpc_closure* next = c->next_data.next;
|
118
|
-
|
118
|
+
grpc_error_handle error = c->error_data.error;
|
119
119
|
#ifndef NDEBUG
|
120
120
|
EXECUTOR_TRACE("(%s) run %p [created by %s:%d]", executor_name, c,
|
121
121
|
c->file_created, c->line_created);
|
@@ -251,7 +251,7 @@ void Executor::ThreadMain(void* arg) {
|
|
251
251
|
gpr_tls_set(&g_this_thread_state, reinterpret_cast<intptr_t>(nullptr));
|
252
252
|
}
|
253
253
|
|
254
|
-
void Executor::Enqueue(grpc_closure* closure,
|
254
|
+
void Executor::Enqueue(grpc_closure* closure, grpc_error_handle error,
|
255
255
|
bool is_short) {
|
256
256
|
bool retry_push;
|
257
257
|
if (is_short) {
|
@@ -404,7 +404,7 @@ void Executor::InitAll() {
|
|
404
404
|
EXECUTOR_TRACE0("Executor::InitAll() done");
|
405
405
|
}
|
406
406
|
|
407
|
-
void Executor::Run(grpc_closure* closure,
|
407
|
+
void Executor::Run(grpc_closure* closure, grpc_error_handle error,
|
408
408
|
ExecutorType executor_type, ExecutorJobType job_type) {
|
409
409
|
executor_enqueue_fns_[static_cast<size_t>(executor_type)]
|
410
410
|
[static_cast<size_t>(job_type)](closure, error);
|
@@ -70,7 +70,7 @@ class Executor {
|
|
70
70
|
|
71
71
|
/** Enqueue the closure onto the executor. is_short is true if the closure is
|
72
72
|
* a short job (i.e expected to not block and complete quickly) */
|
73
|
-
void Enqueue(grpc_closure* closure,
|
73
|
+
void Enqueue(grpc_closure* closure, grpc_error_handle error, bool is_short);
|
74
74
|
|
75
75
|
// TODO(sreek): Currently we have two executors (available globally): The
|
76
76
|
// default executor and the resolver executor.
|
@@ -83,7 +83,7 @@ class Executor {
|
|
83
83
|
// Initialize ALL the executors
|
84
84
|
static void InitAll();
|
85
85
|
|
86
|
-
static void Run(grpc_closure* closure,
|
86
|
+
static void Run(grpc_closure* closure, grpc_error_handle error,
|
87
87
|
ExecutorType executor_type = ExecutorType::DEFAULT,
|
88
88
|
ExecutorJobType job_type = ExecutorJobType::SHORT);
|
89
89
|
|
data/src/core/lib/iomgr/iomgr.cc
CHANGED
@@ -169,7 +169,7 @@ bool grpc_iomgr_is_any_background_poller_thread() {
|
|
169
169
|
}
|
170
170
|
|
171
171
|
bool grpc_iomgr_add_closure_to_background_poller(grpc_closure* closure,
|
172
|
-
|
172
|
+
grpc_error_handle error) {
|
173
173
|
return grpc_iomgr_platform_add_closure_to_background_poller(closure, error);
|
174
174
|
}
|
175
175
|
|
data/src/core/lib/iomgr/iomgr.h
CHANGED
@@ -52,7 +52,7 @@ bool grpc_iomgr_is_any_background_poller_thread();
|
|
52
52
|
* that the closure may or may not run yet when this function returns, and the
|
53
53
|
* closure should not be blocking or long-running. */
|
54
54
|
bool grpc_iomgr_add_closure_to_background_poller(grpc_closure* closure,
|
55
|
-
|
55
|
+
grpc_error_handle error);
|
56
56
|
|
57
57
|
/* Exposed only for testing */
|
58
58
|
size_t grpc_iomgr_count_objects_for_testing();
|
@@ -45,7 +45,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
|
|
45
45
|
return false;
|
46
46
|
}
|
47
47
|
static bool iomgr_platform_add_closure_to_background_poller(
|
48
|
-
grpc_closure* /*closure*/,
|
48
|
+
grpc_closure* /*closure*/, grpc_error_handle /*error*/) {
|
49
49
|
return false;
|
50
50
|
}
|
51
51
|
|
@@ -50,8 +50,8 @@ bool grpc_iomgr_platform_is_any_background_poller_thread() {
|
|
50
50
|
return iomgr_platform_vtable->is_any_background_poller_thread();
|
51
51
|
}
|
52
52
|
|
53
|
-
bool grpc_iomgr_platform_add_closure_to_background_poller(
|
54
|
-
|
53
|
+
bool grpc_iomgr_platform_add_closure_to_background_poller(
|
54
|
+
grpc_closure* closure, grpc_error_handle error) {
|
55
55
|
return iomgr_platform_vtable->add_closure_to_background_poller(closure,
|
56
56
|
error);
|
57
57
|
}
|
@@ -38,7 +38,7 @@ typedef struct grpc_iomgr_platform_vtable {
|
|
38
38
|
void (*shutdown_background_closure)(void);
|
39
39
|
bool (*is_any_background_poller_thread)(void);
|
40
40
|
bool (*add_closure_to_background_poller)(grpc_closure* closure,
|
41
|
-
|
41
|
+
grpc_error_handle error);
|
42
42
|
} grpc_iomgr_platform_vtable;
|
43
43
|
|
44
44
|
void grpc_iomgr_register_object(grpc_iomgr_object* obj, const char* name);
|
@@ -65,8 +65,8 @@ bool grpc_iomgr_platform_is_any_background_poller_thread(void);
|
|
65
65
|
/** Return true if the closure is registered into the background poller. Note
|
66
66
|
* that the closure may or may not run yet when this function returns, and the
|
67
67
|
* closure should not be blocking or long-running. */
|
68
|
-
bool grpc_iomgr_platform_add_closure_to_background_poller(
|
69
|
-
|
68
|
+
bool grpc_iomgr_platform_add_closure_to_background_poller(
|
69
|
+
grpc_closure* closure, grpc_error_handle error);
|
70
70
|
|
71
71
|
bool grpc_iomgr_abort_on_leaks(void);
|
72
72
|
|
@@ -59,7 +59,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
|
|
59
59
|
}
|
60
60
|
|
61
61
|
static bool iomgr_platform_add_closure_to_background_poller(
|
62
|
-
grpc_closure* closure,
|
62
|
+
grpc_closure* closure, grpc_error_handle error) {
|
63
63
|
return grpc_add_closure_to_background_poller(closure, error);
|
64
64
|
}
|
65
65
|
|
@@ -72,7 +72,7 @@ static bool apple_iomgr_platform_is_any_background_poller_thread(void) {
|
|
72
72
|
}
|
73
73
|
|
74
74
|
static bool apple_iomgr_platform_add_closure_to_background_poller(
|
75
|
-
grpc_closure* closure,
|
75
|
+
grpc_closure* closure, grpc_error_handle error) {
|
76
76
|
return false;
|
77
77
|
}
|
78
78
|
|
@@ -105,7 +105,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
|
|
105
105
|
}
|
106
106
|
|
107
107
|
static bool iomgr_platform_add_closure_to_background_poller(
|
108
|
-
grpc_closure* closure,
|
108
|
+
grpc_closure* closure, grpc_error_handle error) {
|
109
109
|
return grpc_add_closure_to_background_poller(closure, error);
|
110
110
|
}
|
111
111
|
|
@@ -79,7 +79,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
|
|
79
79
|
}
|
80
80
|
|
81
81
|
static bool iomgr_platform_add_closure_to_background_poller(
|
82
|
-
grpc_closure* closure,
|
82
|
+
grpc_closure* closure, grpc_error_handle error) {
|
83
83
|
return false;
|
84
84
|
}
|
85
85
|
|
@@ -30,14 +30,14 @@
|
|
30
30
|
#include "src/core/lib/gpr/string.h"
|
31
31
|
#include "src/core/lib/iomgr/block_annotate.h"
|
32
32
|
|
33
|
-
|
34
|
-
|
33
|
+
grpc_error_handle grpc_load_file(const char* filename, int add_null_terminator,
|
34
|
+
grpc_slice* output) {
|
35
35
|
unsigned char* contents = nullptr;
|
36
36
|
size_t contents_size = 0;
|
37
37
|
grpc_slice result = grpc_empty_slice();
|
38
38
|
FILE* file;
|
39
39
|
size_t bytes_read = 0;
|
40
|
-
|
40
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
41
41
|
|
42
42
|
GRPC_SCHEDULING_START_BLOCKING_REGION;
|
43
43
|
file = fopen(filename, "rb");
|
@@ -67,7 +67,7 @@ end:
|
|
67
67
|
*output = result;
|
68
68
|
if (file != nullptr) fclose(file);
|
69
69
|
if (error != GRPC_ERROR_NONE) {
|
70
|
-
|
70
|
+
grpc_error_handle error_out =
|
71
71
|
grpc_error_set_str(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
72
72
|
"Failed to load file", &error, 1),
|
73
73
|
GRPC_ERROR_STR_FILENAME,
|
@@ -29,7 +29,7 @@
|
|
29
29
|
|
30
30
|
/* Loads the content of a file into a slice. add_null_terminator will add
|
31
31
|
a NULL terminator if non-zero. */
|
32
|
-
|
33
|
-
|
32
|
+
grpc_error_handle grpc_load_file(const char* filename, int add_null_terminator,
|
33
|
+
grpc_slice* output);
|
34
34
|
|
35
35
|
#endif /* GRPC_CORE_LIB_IOMGR_LOAD_FILE_H */
|
@@ -77,7 +77,7 @@ void LockfreeEvent::DestroyEvent() {
|
|
77
77
|
do {
|
78
78
|
curr = gpr_atm_no_barrier_load(&state_);
|
79
79
|
if (curr & kShutdownBit) {
|
80
|
-
GRPC_ERROR_UNREF((
|
80
|
+
GRPC_ERROR_UNREF((grpc_error_handle)(curr & ~kShutdownBit));
|
81
81
|
} else {
|
82
82
|
GPR_ASSERT(curr == kClosureNotReady || curr == kClosureReady);
|
83
83
|
}
|
@@ -139,8 +139,8 @@ void LockfreeEvent::NotifyOn(grpc_closure* closure) {
|
|
139
139
|
contains a pointer to the shutdown-error). If the fd is shutdown,
|
140
140
|
schedule the closure with the shutdown error */
|
141
141
|
if ((curr & kShutdownBit) > 0) {
|
142
|
-
|
143
|
-
reinterpret_cast<
|
142
|
+
grpc_error_handle shutdown_err =
|
143
|
+
reinterpret_cast<grpc_error_handle>(curr & ~kShutdownBit);
|
144
144
|
ExecCtx::Run(DEBUG_LOCATION, closure,
|
145
145
|
GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
146
146
|
"FD Shutdown", &shutdown_err, 1));
|
@@ -159,7 +159,7 @@ void LockfreeEvent::NotifyOn(grpc_closure* closure) {
|
|
159
159
|
GPR_UNREACHABLE_CODE(return );
|
160
160
|
}
|
161
161
|
|
162
|
-
bool LockfreeEvent::SetShutdown(
|
162
|
+
bool LockfreeEvent::SetShutdown(grpc_error_handle shutdown_error) {
|
163
163
|
gpr_atm new_state = reinterpret_cast<gpr_atm>(shutdown_error) | kShutdownBit;
|
164
164
|
|
165
165
|
while (true) {
|
@@ -167,7 +167,7 @@ bool LockfreeEvent::SetShutdown(grpc_error* shutdown_error) {
|
|
167
167
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
168
168
|
gpr_log(GPR_DEBUG,
|
169
169
|
"LockfreeEvent::SetShutdown: %p curr=%" PRIxPTR " err=%s",
|
170
|
-
&state_, curr,
|
170
|
+
&state_, curr, grpc_error_std_string(shutdown_error).c_str());
|
171
171
|
}
|
172
172
|
switch (curr) {
|
173
173
|
case kClosureReady:
|
@@ -56,7 +56,7 @@ class LockfreeEvent {
|
|
56
56
|
|
57
57
|
// Sets the shutdown state. If a closure had been provided by NotifyOn and has
|
58
58
|
// not yet been scheduled, it will be scheduled with \a shutdown_error.
|
59
|
-
bool SetShutdown(
|
59
|
+
bool SetShutdown(grpc_error_handle shutdown_error);
|
60
60
|
|
61
61
|
// Signals that the event has been received.
|
62
62
|
void SetReady();
|
@@ -42,14 +42,14 @@ void grpc_pollset_destroy(grpc_pollset* pollset) {
|
|
42
42
|
grpc_pollset_impl->destroy(pollset);
|
43
43
|
}
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
|
45
|
+
grpc_error_handle grpc_pollset_work(grpc_pollset* pollset,
|
46
|
+
grpc_pollset_worker** worker,
|
47
|
+
grpc_millis deadline) {
|
48
48
|
return grpc_pollset_impl->work(pollset, worker, deadline);
|
49
49
|
}
|
50
50
|
|
51
|
-
|
52
|
-
|
51
|
+
grpc_error_handle grpc_pollset_kick(grpc_pollset* pollset,
|
52
|
+
grpc_pollset_worker* specific_worker) {
|
53
53
|
return grpc_pollset_impl->kick(pollset, specific_worker);
|
54
54
|
}
|
55
55
|
|
@@ -44,10 +44,10 @@ typedef struct grpc_pollset_vtable {
|
|
44
44
|
void (*init)(grpc_pollset* pollset, gpr_mu** mu);
|
45
45
|
void (*shutdown)(grpc_pollset* pollset, grpc_closure* closure);
|
46
46
|
void (*destroy)(grpc_pollset* pollset);
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
47
|
+
grpc_error_handle (*work)(grpc_pollset* pollset, grpc_pollset_worker** worker,
|
48
|
+
grpc_millis deadline);
|
49
|
+
grpc_error_handle (*kick)(grpc_pollset* pollset,
|
50
|
+
grpc_pollset_worker* specific_worker);
|
51
51
|
size_t (*pollset_size)(void);
|
52
52
|
} grpc_pollset_vtable;
|
53
53
|
|
@@ -86,14 +86,14 @@ void grpc_pollset_destroy(grpc_pollset* pollset);
|
|
86
86
|
May call grpc_closure_list_run on grpc_closure_list, without holding the
|
87
87
|
pollset
|
88
88
|
lock */
|
89
|
-
|
90
|
-
|
91
|
-
|
89
|
+
grpc_error_handle grpc_pollset_work(grpc_pollset* pollset,
|
90
|
+
grpc_pollset_worker** worker,
|
91
|
+
grpc_millis deadline) GRPC_MUST_USE_RESULT;
|
92
92
|
|
93
93
|
/* Break one polling thread out of polling work for this pollset.
|
94
94
|
If specific_worker is non-NULL, then kick that worker. */
|
95
|
-
|
96
|
-
|
95
|
+
grpc_error_handle grpc_pollset_kick(grpc_pollset* pollset,
|
96
|
+
grpc_pollset_worker* specific_worker)
|
97
97
|
GRPC_MUST_USE_RESULT;
|
98
98
|
|
99
99
|
#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_H */
|