grpc 1.18.0 → 1.22.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +4731 -7404
- data/etc/roots.pem +146 -0
- data/include/grpc/grpc.h +11 -6
- data/include/grpc/grpc_security.h +297 -4
- data/include/grpc/grpc_security_constants.h +1 -1
- data/include/grpc/impl/codegen/byte_buffer.h +13 -0
- data/include/grpc/impl/codegen/gpr_types.h +1 -1
- data/include/grpc/impl/codegen/grpc_types.h +30 -7
- data/include/grpc/impl/codegen/port_platform.h +88 -7
- data/include/grpc/impl/codegen/slice.h +2 -22
- data/include/grpc/impl/codegen/status.h +2 -1
- data/include/grpc/impl/codegen/sync_posix.h +18 -0
- data/include/grpc/slice.h +3 -3
- data/src/core/ext/filters/client_channel/backup_poller.cc +21 -16
- data/src/core/ext/filters/client_channel/backup_poller.h +8 -2
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +3 -1
- data/src/core/ext/filters/client_channel/client_channel.cc +2435 -1557
- data/src/core/ext/filters/client_channel/client_channel.h +2 -10
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -89
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +8 -33
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +22 -34
- data/src/core/ext/filters/client_channel/client_channel_factory.h +19 -38
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +9 -11
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +179 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +68 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +59 -55
- data/src/core/ext/filters/client_channel/health/health_check_client.h +20 -9
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +146 -157
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +29 -32
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +844 -859
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +3 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +2 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +16 -12
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +185 -312
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +143 -375
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +192 -245
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +1554 -955
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_secure.cc +0 -43
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.cc +14 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy.cc +115 -22
- data/src/core/ext/filters/client_channel/lb_policy.h +260 -129
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +5 -2
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +107 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +10 -3
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +96 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +56 -0
- data/src/core/ext/filters/client_channel/parse_address.cc +24 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +121 -122
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +84 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +179 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +24 -10
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +111 -47
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +7 -13
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +39 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +0 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -64
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +28 -0
- data/src/core/{lib/iomgr/network_status_tracker.cc → ext/filters/client_channel/resolver/dns/dns_resolver_selection.h} +8 -15
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +36 -82
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +111 -72
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +13 -8
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +28 -63
- data/src/core/ext/filters/client_channel/resolver.cc +54 -1
- data/src/core/ext/filters/client_channel/resolver.h +52 -23
- data/src/core/ext/filters/client_channel/resolver_factory.h +3 -1
- data/src/core/ext/filters/client_channel/resolver_registry.cc +5 -2
- data/src/core/ext/filters/client_channel/resolver_registry.h +5 -4
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +368 -241
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +58 -76
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +543 -0
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +139 -0
- data/src/core/ext/filters/client_channel/server_address.cc +4 -54
- data/src/core/ext/filters/client_channel/server_address.h +1 -13
- data/src/core/ext/filters/client_channel/service_config.cc +329 -0
- data/src/core/ext/filters/client_channel/service_config.h +205 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +803 -838
- data/src/core/ext/filters/client_channel/subchannel.h +295 -128
- data/src/core/ext/filters/client_channel/subchannel_interface.h +113 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +97 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +94 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +3 -4
- data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
- data/src/core/ext/filters/http/client/http_client_filter.cc +7 -5
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +6 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +4 -3
- data/src/core/ext/filters/http/server/http_server_filter.cc +18 -12
- data/src/core/ext/filters/max_age/max_age_filter.cc +5 -2
- data/src/core/ext/filters/message_size/message_size_filter.cc +119 -77
- data/src/core/ext/filters/message_size/message_size_filter.h +33 -0
- data/src/core/ext/transport/chttp2/alpn/alpn.h +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +13 -12
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +45 -47
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +134 -143
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +68 -21
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +4 -4
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +7 -6
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +4 -3
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +9 -7
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +156 -94
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +33 -37
- data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +3 -2
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -4
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +8 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -4
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +74 -55
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +33 -11
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +3 -2
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +7 -14
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +10 -1
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +9 -5
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +9 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +43 -30
- data/src/core/ext/transport/chttp2/transport/parsing.cc +52 -70
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +70 -33
- data/src/core/ext/transport/inproc/inproc_transport.cc +26 -18
- data/src/core/lib/channel/channel_args.cc +2 -101
- data/src/core/lib/channel/channel_args.h +3 -37
- data/src/core/lib/channel/channel_stack.h +10 -6
- data/src/core/lib/channel/channel_trace.cc +4 -4
- data/src/core/lib/channel/channel_trace.h +4 -4
- data/src/core/lib/channel/channelz.cc +168 -38
- data/src/core/lib/channel/channelz.h +40 -44
- data/src/core/lib/channel/channelz_registry.cc +75 -107
- data/src/core/lib/channel/channelz_registry.h +10 -28
- data/src/core/lib/channel/connected_channel.cc +2 -2
- data/src/core/lib/channel/context.h +2 -2
- data/src/core/lib/channel/handshaker.cc +151 -218
- data/src/core/lib/channel/handshaker.h +110 -101
- data/src/core/lib/channel/handshaker_factory.h +11 -19
- data/src/core/lib/channel/handshaker_registry.cc +67 -51
- data/src/core/lib/channel/handshaker_registry.h +21 -16
- data/src/core/lib/compression/algorithm_metadata.h +3 -3
- data/src/core/lib/compression/compression.cc +14 -9
- data/src/core/lib/compression/compression_args.cc +127 -0
- data/src/core/lib/compression/compression_args.h +55 -0
- data/src/core/lib/compression/compression_internal.cc +16 -12
- data/src/core/lib/compression/compression_internal.h +1 -1
- data/src/core/lib/compression/stream_compression.cc +3 -2
- data/src/core/lib/compression/stream_compression.h +2 -2
- data/src/core/lib/compression/stream_compression_gzip.cc +9 -9
- data/src/core/lib/debug/trace.cc +13 -7
- data/src/core/lib/debug/trace.h +14 -1
- data/src/core/lib/gpr/arena.h +13 -9
- data/src/core/lib/gpr/cpu_posix.cc +5 -3
- data/src/core/lib/gpr/env.h +3 -6
- data/src/core/lib/gpr/env_linux.cc +6 -1
- data/src/core/lib/gpr/env_posix.cc +5 -0
- data/src/core/lib/gpr/env_windows.cc +7 -5
- data/src/core/lib/gpr/log.cc +9 -13
- data/src/core/lib/gpr/log_posix.cc +2 -1
- data/src/core/lib/gpr/string.cc +20 -7
- data/src/core/lib/gpr/string.h +10 -3
- data/src/core/lib/gpr/sync_posix.cc +65 -4
- data/src/core/lib/gpr/time.cc +8 -0
- data/src/core/lib/gpr/time_posix.cc +21 -2
- data/src/core/lib/gprpp/arena.cc +103 -0
- data/src/core/lib/gprpp/arena.h +121 -0
- data/src/core/lib/gprpp/atomic.h +75 -5
- data/src/core/lib/gprpp/fork.cc +13 -32
- data/src/core/lib/gprpp/fork.h +5 -1
- data/src/core/lib/gprpp/global_config.h +96 -0
- data/src/core/lib/gprpp/global_config_custom.h +29 -0
- data/src/core/lib/gprpp/global_config_env.cc +135 -0
- data/src/core/lib/gprpp/global_config_env.h +131 -0
- data/src/core/lib/gprpp/global_config_generic.h +44 -0
- data/src/core/lib/gprpp/inlined_vector.h +8 -0
- data/src/core/lib/gprpp/map.h +436 -0
- data/src/core/lib/gprpp/memory.h +2 -2
- data/src/core/lib/gprpp/optional.h +48 -0
- data/src/core/lib/gprpp/orphanable.h +6 -5
- data/src/core/lib/gprpp/{mutex_lock.h → pair.h} +15 -19
- data/src/core/lib/gprpp/ref_counted.h +36 -17
- data/src/core/lib/gprpp/sync.h +126 -0
- data/src/core/lib/gprpp/thd.h +42 -7
- data/src/core/lib/gprpp/thd_posix.cc +31 -13
- data/src/core/lib/gprpp/thd_windows.cc +47 -34
- data/src/core/lib/http/httpcli.cc +6 -5
- data/src/core/lib/http/httpcli_security_connector.cc +13 -15
- data/src/core/lib/http/parser.cc +3 -2
- data/src/core/lib/http/parser.h +2 -1
- data/src/core/lib/iomgr/buffer_list.cc +182 -24
- data/src/core/lib/iomgr/buffer_list.h +72 -10
- data/src/core/lib/iomgr/call_combiner.cc +84 -90
- data/src/core/lib/iomgr/call_combiner.h +75 -82
- data/src/core/lib/iomgr/cfstream_handle.cc +203 -0
- data/src/core/lib/iomgr/cfstream_handle.h +86 -0
- data/src/core/lib/iomgr/combiner.cc +11 -3
- data/src/core/lib/iomgr/combiner.h +1 -1
- data/src/core/lib/iomgr/endpoint.cc +2 -2
- data/src/core/lib/iomgr/endpoint.h +3 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +375 -0
- data/src/core/lib/iomgr/endpoint_cfstream.h +49 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +2 -2
- data/src/core/lib/iomgr/error.cc +21 -17
- data/src/core/lib/iomgr/error.h +36 -6
- data/src/core/lib/iomgr/error_cfstream.cc +52 -0
- data/src/core/lib/iomgr/error_cfstream.h +31 -0
- data/src/core/lib/iomgr/error_internal.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +44 -28
- data/src/core/lib/iomgr/ev_epollex_linux.cc +173 -194
- data/src/core/lib/iomgr/ev_poll_posix.cc +16 -487
- data/src/core/lib/iomgr/ev_posix.cc +29 -19
- data/src/core/lib/iomgr/ev_posix.h +19 -3
- data/src/core/lib/iomgr/ev_windows.cc +2 -2
- data/src/core/lib/iomgr/exec_ctx.cc +1 -0
- data/src/core/lib/iomgr/exec_ctx.h +137 -8
- data/src/core/lib/iomgr/executor.cc +147 -95
- data/src/core/lib/iomgr/executor.h +55 -49
- data/src/core/lib/iomgr/fork_posix.cc +6 -5
- data/src/core/lib/{gprpp/atomic_with_std.h → iomgr/grpc_if_nametoindex.h} +8 -13
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +42 -0
- data/src/core/lib/iomgr/{network_status_tracker.h → grpc_if_nametoindex_unsupported.cc} +15 -9
- data/src/core/lib/iomgr/internal_errqueue.cc +3 -5
- data/src/core/lib/iomgr/internal_errqueue.h +105 -3
- data/src/core/lib/iomgr/iomgr.cc +20 -13
- data/src/core/lib/iomgr/iomgr.h +15 -0
- data/src/core/lib/iomgr/iomgr_custom.cc +17 -3
- data/src/core/lib/iomgr/iomgr_custom.h +2 -0
- data/src/core/lib/iomgr/iomgr_internal.cc +10 -0
- data/src/core/lib/iomgr/iomgr_internal.h +12 -0
- data/src/core/lib/iomgr/iomgr_posix.cc +19 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +93 -0
- data/src/core/lib/iomgr/iomgr_windows.cc +18 -2
- data/src/core/lib/iomgr/lockfree_event.cc +4 -4
- data/src/core/lib/iomgr/port.h +35 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +4 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +2 -1
- data/src/core/lib/iomgr/resource_quota.cc +40 -37
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +6 -2
- data/src/core/lib/iomgr/socket_windows.cc +19 -0
- data/src/core/lib/iomgr/socket_windows.h +8 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +216 -0
- data/src/core/lib/iomgr/tcp_client_custom.cc +2 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_client_windows.cc +7 -5
- data/src/core/lib/iomgr/tcp_custom.cc +10 -14
- data/src/core/lib/iomgr/tcp_posix.cc +256 -140
- data/src/core/lib/iomgr/tcp_server.cc +5 -0
- data/src/core/lib/iomgr/tcp_server.h +24 -0
- data/src/core/lib/iomgr/tcp_server_custom.cc +14 -12
- data/src/core/lib/iomgr/tcp_server_posix.cc +86 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_server_windows.cc +13 -11
- data/src/core/lib/iomgr/tcp_uv.cc +5 -7
- data/src/core/lib/iomgr/tcp_windows.cc +8 -14
- data/src/core/lib/iomgr/timer.h +2 -1
- data/src/core/lib/iomgr/timer_generic.cc +16 -16
- data/src/core/lib/iomgr/timer_manager.cc +20 -11
- data/src/core/lib/iomgr/udp_server.cc +8 -6
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +1 -19
- data/src/core/lib/json/json.cc +1 -4
- data/src/core/lib/profiling/basic_timers.cc +10 -4
- data/src/core/lib/security/context/security_context.cc +6 -7
- data/src/core/lib/security/context/security_context.h +3 -4
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.h +4 -0
- data/src/core/lib/security/credentials/credentials.h +9 -1
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +15 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +2 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +10 -6
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +3 -3
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +9 -8
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +20 -2
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +192 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +210 -0
- data/src/core/lib/security/credentials/tls/spiffe_credentials.cc +129 -0
- data/src/core/lib/security/credentials/tls/spiffe_credentials.h +62 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -8
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -12
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +7 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +10 -8
- data/src/core/lib/security/security_connector/security_connector.cc +0 -1
- data/src/core/lib/security/security_connector/security_connector.h +3 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +39 -38
- data/src/core/lib/security/security_connector/ssl_utils.cc +164 -26
- data/src/core/lib/security/security_connector/ssl_utils.h +70 -1
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.cc +426 -0
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.h +122 -0
- data/src/core/lib/security/transport/auth_filters.h +5 -2
- data/src/core/lib/security/transport/client_auth_filter.cc +55 -50
- data/src/core/lib/security/transport/secure_endpoint.cc +6 -6
- data/src/core/lib/security/transport/security_handshaker.cc +271 -303
- data/src/core/lib/security/transport/security_handshaker.h +11 -2
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -3
- data/src/core/lib/slice/b64.h +2 -2
- data/src/core/lib/slice/percent_encoding.cc +3 -3
- data/src/core/lib/slice/percent_encoding.h +3 -3
- data/src/core/lib/slice/slice.cc +174 -122
- data/src/core/lib/slice/slice_buffer.cc +54 -21
- data/src/core/lib/slice/slice_hash_table.h +4 -4
- data/src/core/lib/slice/slice_intern.cc +49 -107
- data/src/core/lib/slice/slice_internal.h +264 -3
- data/src/core/lib/slice/slice_string_helpers.cc +10 -1
- data/src/core/lib/slice/slice_string_helpers.h +3 -1
- data/src/core/lib/slice/slice_utils.h +50 -0
- data/src/core/lib/slice/slice_weak_hash_table.h +6 -6
- data/src/core/lib/surface/api_trace.h +1 -1
- data/src/core/lib/surface/byte_buffer_reader.cc +17 -0
- data/src/core/lib/surface/call.cc +67 -46
- data/src/core/lib/surface/call.h +7 -2
- data/src/core/lib/surface/call_details.cc +0 -1
- data/src/core/lib/surface/channel.cc +89 -97
- data/src/core/lib/surface/channel.h +60 -6
- data/src/core/lib/surface/channel_init.h +5 -0
- data/src/core/lib/surface/completion_queue.cc +221 -216
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/init.cc +82 -33
- data/src/core/lib/surface/init.h +1 -0
- data/src/core/lib/surface/init_secure.cc +1 -1
- data/src/core/lib/surface/lame_client.cc +5 -7
- data/src/core/lib/surface/server.cc +42 -47
- data/src/core/lib/surface/validate_metadata.cc +14 -8
- data/src/core/lib/surface/validate_metadata.h +13 -2
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/lib/transport/bdp_estimator.cc +3 -3
- data/src/core/lib/transport/bdp_estimator.h +2 -2
- data/src/core/lib/transport/connectivity_state.cc +10 -40
- data/src/core/lib/transport/connectivity_state.h +0 -8
- data/src/core/lib/transport/error_utils.cc +12 -0
- data/src/core/lib/transport/metadata.cc +258 -267
- data/src/core/lib/transport/metadata.h +227 -16
- data/src/core/lib/transport/metadata_batch.cc +1 -1
- data/src/core/lib/transport/metadata_batch.h +1 -1
- data/src/core/lib/transport/static_metadata.cc +477 -399
- data/src/core/lib/transport/static_metadata.h +273 -182
- data/src/core/lib/transport/status_metadata.cc +3 -3
- data/src/core/lib/transport/timeout_encoding.cc +1 -1
- data/src/core/lib/transport/timeout_encoding.h +1 -1
- data/src/core/lib/transport/transport.cc +39 -72
- data/src/core/lib/transport/transport.h +59 -24
- data/src/core/lib/transport/transport_impl.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +3 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +4 -3
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +1 -1
- data/src/core/tsi/fake_transport_security.cc +4 -4
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +1 -1
- data/src/core/tsi/ssl_transport_security.cc +12 -10
- data/src/core/tsi/ssl_transport_security.h +24 -4
- data/src/ruby/bin/math_pb.rb +18 -16
- data/src/ruby/ext/grpc/extconf.rb +12 -4
- data/src/ruby/ext/grpc/rb_call_credentials.c +8 -5
- data/src/ruby/ext/grpc/rb_channel.c +14 -10
- data/src/ruby/ext/grpc/rb_channel_credentials.c +8 -4
- data/src/ruby/ext/grpc/rb_compression_options.c +9 -7
- data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc.c +23 -24
- data/src/ruby/ext/grpc/rb_grpc.h +4 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +24 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +36 -0
- data/src/ruby/ext/grpc/rb_server.c +8 -4
- data/src/ruby/lib/grpc/errors.rb +22 -3
- data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_server.rb +2 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/README.md +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +13 -10
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +18 -0
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +3 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +58 -56
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -0
- data/src/ruby/spec/errors_spec.rb +141 -0
- data/third_party/cares/cares/ares.h +12 -0
- data/third_party/cares/cares/ares_create_query.c +5 -1
- data/third_party/cares/cares/ares_data.c +74 -73
- data/third_party/cares/cares/ares_destroy.c +6 -1
- data/third_party/cares/cares/ares_gethostbyaddr.c +5 -5
- data/third_party/cares/cares/ares_gethostbyname.c +15 -4
- data/third_party/cares/cares/ares_getnameinfo.c +11 -0
- data/third_party/cares/cares/ares_init.c +274 -173
- data/third_party/cares/cares/ares_library_init.c +21 -3
- data/third_party/cares/cares/ares_options.c +6 -2
- data/third_party/cares/cares/ares_parse_naptr_reply.c +7 -6
- data/third_party/cares/cares/ares_parse_ptr_reply.c +4 -2
- data/third_party/cares/cares/ares_platform.c +7 -0
- data/third_party/cares/cares/ares_private.h +19 -11
- data/third_party/cares/cares/ares_process.c +27 -2
- data/third_party/cares/cares/ares_rules.h +1 -1
- data/third_party/cares/cares/ares_search.c +7 -0
- data/third_party/cares/cares/ares_send.c +6 -0
- data/third_party/cares/cares/ares_strsplit.c +174 -0
- data/third_party/cares/cares/ares_strsplit.h +43 -0
- data/third_party/cares/cares/ares_version.h +4 -4
- data/third_party/cares/cares/config-win32.h +1 -1
- data/third_party/cares/cares/inet_ntop.c +2 -3
- data/third_party/cares/config_darwin/ares_config.h +3 -0
- data/third_party/cares/config_freebsd/ares_config.h +3 -0
- data/third_party/cares/config_linux/ares_config.h +3 -0
- data/third_party/cares/config_openbsd/ares_config.h +3 -0
- metadata +83 -48
- data/src/core/ext/filters/client_channel/request_routing.cc +0 -936
- data/src/core/ext/filters/client_channel/request_routing.h +0 -177
- data/src/core/ext/filters/client_channel/subchannel_index.cc +0 -248
- data/src/core/ext/filters/client_channel/subchannel_index.h +0 -76
- data/src/core/lib/channel/handshaker_factory.cc +0 -42
- data/src/core/lib/gpr/arena.cc +0 -192
- data/src/core/lib/gprpp/atomic_with_atm.h +0 -57
- data/src/core/lib/iomgr/wakeup_fd_cv.cc +0 -107
- data/src/core/lib/iomgr/wakeup_fd_cv.h +0 -69
- data/src/core/lib/transport/service_config.cc +0 -106
- data/src/core/lib/transport/service_config.h +0 -249
@@ -0,0 +1,31 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2018 gRPC authors.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
|
19
|
+
#ifndef GRPC_CORE_LIB_IOMGR_ERROR_CFSTREAM_H
|
20
|
+
#define GRPC_CORE_LIB_IOMGR_ERROR_CFSTREAM_H
|
21
|
+
|
22
|
+
#ifdef GRPC_CFSTREAM
|
23
|
+
// Create an error from Apple Core Foundation CFError object
|
24
|
+
#define GRPC_ERROR_CREATE_FROM_CFERROR(error, desc) \
|
25
|
+
grpc_error_create_from_cferror(__FILE__, __LINE__, \
|
26
|
+
static_cast<void*>((error)), (desc))
|
27
|
+
grpc_error* grpc_error_create_from_cferror(const char* file, int line,
|
28
|
+
void* arg, const char* desc);
|
29
|
+
#endif /* GRPC_CFSTREAM */
|
30
|
+
|
31
|
+
#endif /* GRPC_CORE_LIB_IOMGR_ERROR_CFSTREAM_H */
|
@@ -49,7 +49,7 @@ struct grpc_error {
|
|
49
49
|
uint8_t strs[GRPC_ERROR_STR_MAX];
|
50
50
|
uint8_t times[GRPC_ERROR_TIME_MAX];
|
51
51
|
// The child errors are stored in the arena, but are effectively a linked list
|
52
|
-
// structure, since they are contained
|
52
|
+
// structure, since they are contained within grpc_linked_error objects.
|
53
53
|
uint8_t first_err;
|
54
54
|
uint8_t last_err;
|
55
55
|
// The arena is dynamically reallocated with a grow factor of 1.5.
|
@@ -213,7 +213,7 @@ struct grpc_pollset {
|
|
213
213
|
poll */
|
214
214
|
bool seen_inactive;
|
215
215
|
bool shutting_down; /* Is the pollset shutting down ? */
|
216
|
-
grpc_closure* shutdown_closure; /* Called after
|
216
|
+
grpc_closure* shutdown_closure; /* Called after shutdown is complete */
|
217
217
|
|
218
218
|
/* Number of workers who are *about-to* attach themselves to the pollset
|
219
219
|
* worker list */
|
@@ -351,7 +351,7 @@ static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
|
|
351
351
|
grpc_iomgr_register_object(&new_fd->iomgr_object, fd_name);
|
352
352
|
fork_fd_list_add_grpc_fd(new_fd);
|
353
353
|
#ifndef NDEBUG
|
354
|
-
if (grpc_trace_fd_refcount
|
354
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_fd_refcount)) {
|
355
355
|
gpr_log(GPR_DEBUG, "FD %d %p create %s", fd, new_fd, fd_name);
|
356
356
|
}
|
357
357
|
#endif
|
@@ -383,6 +383,13 @@ static void fd_shutdown_internal(grpc_fd* fd, grpc_error* why,
|
|
383
383
|
if (fd->read_closure->SetShutdown(GRPC_ERROR_REF(why))) {
|
384
384
|
if (!releasing_fd) {
|
385
385
|
shutdown(fd->fd, SHUT_RDWR);
|
386
|
+
} else {
|
387
|
+
/* we need a dummy event for earlier linux versions. */
|
388
|
+
epoll_event dummy_event;
|
389
|
+
if (epoll_ctl(g_epoll_set.epfd, EPOLL_CTL_DEL, fd->fd, &dummy_event) !=
|
390
|
+
0) {
|
391
|
+
gpr_log(GPR_ERROR, "epoll_ctl failed: %s", strerror(errno));
|
392
|
+
}
|
386
393
|
}
|
387
394
|
fd->write_closure->SetShutdown(GRPC_ERROR_REF(why));
|
388
395
|
fd->error_closure->SetShutdown(GRPC_ERROR_REF(why));
|
@@ -724,7 +731,7 @@ static grpc_error* do_epoll_wait(grpc_pollset* ps, grpc_millis deadline) {
|
|
724
731
|
|
725
732
|
GRPC_STATS_INC_POLL_EVENTS_RETURNED(r);
|
726
733
|
|
727
|
-
if (grpc_polling_trace
|
734
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
728
735
|
gpr_log(GPR_INFO, "ps: %p poll got %d events", ps, r);
|
729
736
|
}
|
730
737
|
|
@@ -744,7 +751,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|
744
751
|
worker->schedule_on_end_work = (grpc_closure_list)GRPC_CLOSURE_LIST_INIT;
|
745
752
|
pollset->begin_refs++;
|
746
753
|
|
747
|
-
if (grpc_polling_trace
|
754
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
748
755
|
gpr_log(GPR_INFO, "PS:%p BEGIN_STARTS:%p", pollset, worker);
|
749
756
|
}
|
750
757
|
|
@@ -763,7 +770,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|
763
770
|
retry_lock_neighborhood:
|
764
771
|
gpr_mu_lock(&neighborhood->mu);
|
765
772
|
gpr_mu_lock(&pollset->mu);
|
766
|
-
if (grpc_polling_trace
|
773
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
767
774
|
gpr_log(GPR_INFO, "PS:%p BEGIN_REORG:%p kick_state=%s is_reassigning=%d",
|
768
775
|
pollset, worker, kick_state_string(worker->state),
|
769
776
|
is_reassigning);
|
@@ -815,7 +822,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|
815
822
|
worker->initialized_cv = true;
|
816
823
|
gpr_cv_init(&worker->cv);
|
817
824
|
while (worker->state == UNKICKED && !pollset->shutting_down) {
|
818
|
-
if (grpc_polling_trace
|
825
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
819
826
|
gpr_log(GPR_INFO, "PS:%p BEGIN_WAIT:%p kick_state=%s shutdown=%d",
|
820
827
|
pollset, worker, kick_state_string(worker->state),
|
821
828
|
pollset->shutting_down);
|
@@ -832,7 +839,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|
832
839
|
grpc_core::ExecCtx::Get()->InvalidateNow();
|
833
840
|
}
|
834
841
|
|
835
|
-
if (grpc_polling_trace
|
842
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
836
843
|
gpr_log(GPR_INFO,
|
837
844
|
"PS:%p BEGIN_DONE:%p kick_state=%s shutdown=%d "
|
838
845
|
"kicked_without_poller: %d",
|
@@ -875,7 +882,7 @@ static bool check_neighborhood_for_available_poller(
|
|
875
882
|
case UNKICKED:
|
876
883
|
if (gpr_atm_no_barrier_cas(&g_active_poller, 0,
|
877
884
|
(gpr_atm)inspect_worker)) {
|
878
|
-
if (grpc_polling_trace
|
885
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
879
886
|
gpr_log(GPR_INFO, " .. choose next poller to be %p",
|
880
887
|
inspect_worker);
|
881
888
|
}
|
@@ -886,7 +893,7 @@ static bool check_neighborhood_for_available_poller(
|
|
886
893
|
gpr_cv_signal(&inspect_worker->cv);
|
887
894
|
}
|
888
895
|
} else {
|
889
|
-
if (grpc_polling_trace
|
896
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
890
897
|
gpr_log(GPR_INFO, " .. beaten to choose next poller");
|
891
898
|
}
|
892
899
|
}
|
@@ -904,7 +911,7 @@ static bool check_neighborhood_for_available_poller(
|
|
904
911
|
} while (!found_worker && inspect_worker != inspect->root_worker);
|
905
912
|
}
|
906
913
|
if (!found_worker) {
|
907
|
-
if (grpc_polling_trace
|
914
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
908
915
|
gpr_log(GPR_INFO, " .. mark pollset %p inactive", inspect);
|
909
916
|
}
|
910
917
|
inspect->seen_inactive = true;
|
@@ -924,7 +931,7 @@ static bool check_neighborhood_for_available_poller(
|
|
924
931
|
static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
925
932
|
grpc_pollset_worker** worker_hdl) {
|
926
933
|
GPR_TIMER_SCOPE("end_worker", 0);
|
927
|
-
if (grpc_polling_trace
|
934
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
928
935
|
gpr_log(GPR_INFO, "PS:%p END_WORKER:%p", pollset, worker);
|
929
936
|
}
|
930
937
|
if (worker_hdl != nullptr) *worker_hdl = nullptr;
|
@@ -934,7 +941,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|
934
941
|
grpc_core::ExecCtx::Get()->closure_list());
|
935
942
|
if (gpr_atm_no_barrier_load(&g_active_poller) == (gpr_atm)worker) {
|
936
943
|
if (worker->next != worker && worker->next->state == UNKICKED) {
|
937
|
-
if (grpc_polling_trace
|
944
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
938
945
|
gpr_log(GPR_INFO, " .. choose next poller to be peer %p", worker);
|
939
946
|
}
|
940
947
|
GPR_ASSERT(worker->next->initialized_cv);
|
@@ -986,7 +993,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
|
|
986
993
|
if (worker->initialized_cv) {
|
987
994
|
gpr_cv_destroy(&worker->cv);
|
988
995
|
}
|
989
|
-
if (grpc_polling_trace
|
996
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
990
997
|
gpr_log(GPR_INFO, " .. remove worker");
|
991
998
|
}
|
992
999
|
if (EMPTIED == worker_remove(pollset, worker)) {
|
@@ -1024,7 +1031,7 @@ static grpc_error* pollset_work(grpc_pollset* ps,
|
|
1024
1031
|
process the pending epoll events.
|
1025
1032
|
|
1026
1033
|
The reason for decoupling do_epoll_wait and process_epoll_events is to
|
1027
|
-
better
|
1034
|
+
better distribute the work (i.e handling epoll events) across multiple
|
1028
1035
|
threads
|
1029
1036
|
|
1030
1037
|
process_epoll_events() returns very quickly: It just queues the work on
|
@@ -1055,7 +1062,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1055
1062
|
GPR_TIMER_SCOPE("pollset_kick", 0);
|
1056
1063
|
GRPC_STATS_INC_POLLSET_KICK();
|
1057
1064
|
grpc_error* ret_err = GRPC_ERROR_NONE;
|
1058
|
-
if (grpc_polling_trace
|
1065
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1059
1066
|
gpr_strvec log;
|
1060
1067
|
gpr_strvec_init(&log);
|
1061
1068
|
char* tmp;
|
@@ -1088,7 +1095,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1088
1095
|
if (root_worker == nullptr) {
|
1089
1096
|
GRPC_STATS_INC_POLLSET_KICKED_WITHOUT_POLLER();
|
1090
1097
|
pollset->kicked_without_poller = true;
|
1091
|
-
if (grpc_polling_trace
|
1098
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1092
1099
|
gpr_log(GPR_INFO, " .. kicked_without_poller");
|
1093
1100
|
}
|
1094
1101
|
goto done;
|
@@ -1096,14 +1103,14 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1096
1103
|
grpc_pollset_worker* next_worker = root_worker->next;
|
1097
1104
|
if (root_worker->state == KICKED) {
|
1098
1105
|
GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
|
1099
|
-
if (grpc_polling_trace
|
1106
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1100
1107
|
gpr_log(GPR_INFO, " .. already kicked %p", root_worker);
|
1101
1108
|
}
|
1102
1109
|
SET_KICK_STATE(root_worker, KICKED);
|
1103
1110
|
goto done;
|
1104
1111
|
} else if (next_worker->state == KICKED) {
|
1105
1112
|
GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
|
1106
|
-
if (grpc_polling_trace
|
1113
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1107
1114
|
gpr_log(GPR_INFO, " .. already kicked %p", next_worker);
|
1108
1115
|
}
|
1109
1116
|
SET_KICK_STATE(next_worker, KICKED);
|
@@ -1114,7 +1121,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1114
1121
|
root_worker == (grpc_pollset_worker*)gpr_atm_no_barrier_load(
|
1115
1122
|
&g_active_poller)) {
|
1116
1123
|
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
|
1117
|
-
if (grpc_polling_trace
|
1124
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1118
1125
|
gpr_log(GPR_INFO, " .. kicked %p", root_worker);
|
1119
1126
|
}
|
1120
1127
|
SET_KICK_STATE(root_worker, KICKED);
|
@@ -1122,7 +1129,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1122
1129
|
goto done;
|
1123
1130
|
} else if (next_worker->state == UNKICKED) {
|
1124
1131
|
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
|
1125
|
-
if (grpc_polling_trace
|
1132
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1126
1133
|
gpr_log(GPR_INFO, " .. kicked %p", next_worker);
|
1127
1134
|
}
|
1128
1135
|
GPR_ASSERT(next_worker->initialized_cv);
|
@@ -1131,7 +1138,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1131
1138
|
goto done;
|
1132
1139
|
} else if (next_worker->state == DESIGNATED_POLLER) {
|
1133
1140
|
if (root_worker->state != DESIGNATED_POLLER) {
|
1134
|
-
if (grpc_polling_trace
|
1141
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1135
1142
|
gpr_log(
|
1136
1143
|
GPR_INFO,
|
1137
1144
|
" .. kicked root non-poller %p (initialized_cv=%d) (poller=%p)",
|
@@ -1145,7 +1152,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1145
1152
|
goto done;
|
1146
1153
|
} else {
|
1147
1154
|
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
|
1148
|
-
if (grpc_polling_trace
|
1155
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1149
1156
|
gpr_log(GPR_INFO, " .. non-root poller %p (root=%p)", next_worker,
|
1150
1157
|
root_worker);
|
1151
1158
|
}
|
@@ -1161,7 +1168,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1161
1168
|
}
|
1162
1169
|
} else {
|
1163
1170
|
GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
|
1164
|
-
if (grpc_polling_trace
|
1171
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1165
1172
|
gpr_log(GPR_INFO, " .. kicked while waking up");
|
1166
1173
|
}
|
1167
1174
|
goto done;
|
@@ -1171,14 +1178,14 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1171
1178
|
}
|
1172
1179
|
|
1173
1180
|
if (specific_worker->state == KICKED) {
|
1174
|
-
if (grpc_polling_trace
|
1181
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1175
1182
|
gpr_log(GPR_INFO, " .. specific worker already kicked");
|
1176
1183
|
}
|
1177
1184
|
goto done;
|
1178
1185
|
} else if (gpr_tls_get(&g_current_thread_worker) ==
|
1179
1186
|
(intptr_t)specific_worker) {
|
1180
1187
|
GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
|
1181
|
-
if (grpc_polling_trace
|
1188
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1182
1189
|
gpr_log(GPR_INFO, " .. mark %p kicked", specific_worker);
|
1183
1190
|
}
|
1184
1191
|
SET_KICK_STATE(specific_worker, KICKED);
|
@@ -1186,7 +1193,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1186
1193
|
} else if (specific_worker ==
|
1187
1194
|
(grpc_pollset_worker*)gpr_atm_no_barrier_load(&g_active_poller)) {
|
1188
1195
|
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
|
1189
|
-
if (grpc_polling_trace
|
1196
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1190
1197
|
gpr_log(GPR_INFO, " .. kick active poller");
|
1191
1198
|
}
|
1192
1199
|
SET_KICK_STATE(specific_worker, KICKED);
|
@@ -1194,7 +1201,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1194
1201
|
goto done;
|
1195
1202
|
} else if (specific_worker->initialized_cv) {
|
1196
1203
|
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
|
1197
|
-
if (grpc_polling_trace
|
1204
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1198
1205
|
gpr_log(GPR_INFO, " .. kick waiting worker");
|
1199
1206
|
}
|
1200
1207
|
SET_KICK_STATE(specific_worker, KICKED);
|
@@ -1202,7 +1209,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
|
|
1202
1209
|
goto done;
|
1203
1210
|
} else {
|
1204
1211
|
GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
|
1205
|
-
if (grpc_polling_trace
|
1212
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
|
1206
1213
|
gpr_log(GPR_INFO, " .. kick non-waiting worker");
|
1207
1214
|
}
|
1208
1215
|
SET_KICK_STATE(specific_worker, KICKED);
|
@@ -1242,8 +1249,15 @@ static void pollset_set_del_pollset_set(grpc_pollset_set* bag,
|
|
1242
1249
|
* Event engine binding
|
1243
1250
|
*/
|
1244
1251
|
|
1252
|
+
static bool is_any_background_poller_thread(void) { return false; }
|
1253
|
+
|
1245
1254
|
static void shutdown_background_closure(void) {}
|
1246
1255
|
|
1256
|
+
static bool add_closure_to_background_poller(grpc_closure* closure,
|
1257
|
+
grpc_error* error) {
|
1258
|
+
return false;
|
1259
|
+
}
|
1260
|
+
|
1247
1261
|
static void shutdown_engine(void) {
|
1248
1262
|
fd_global_shutdown();
|
1249
1263
|
pollset_global_shutdown();
|
@@ -1287,8 +1301,10 @@ static const grpc_event_engine_vtable vtable = {
|
|
1287
1301
|
pollset_set_add_fd,
|
1288
1302
|
pollset_set_del_fd,
|
1289
1303
|
|
1304
|
+
is_any_background_poller_thread,
|
1290
1305
|
shutdown_background_closure,
|
1291
1306
|
shutdown_engine,
|
1307
|
+
add_closure_to_background_poller,
|
1292
1308
|
};
|
1293
1309
|
|
1294
1310
|
/* Called by the child process's post-fork handler to close open fds, including
|