grpc 1.8.7 → 1.9.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 +549 -325
- data/include/grpc/impl/codegen/grpc_types.h +1 -2
- data/include/grpc/impl/codegen/port_platform.h +46 -5
- data/include/grpc/impl/codegen/slice.h +1 -2
- data/include/grpc/module.modulemap +0 -2
- data/include/grpc/slice_buffer.h +1 -2
- data/include/grpc/support/log.h +4 -2
- data/include/grpc/support/thd.h +4 -1
- data/include/grpc/support/tls.h +6 -0
- data/include/grpc/support/tls_gcc.h +5 -40
- data/include/grpc/support/tls_msvc.h +9 -0
- data/include/grpc/support/tls_pthread.h +9 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +32 -29
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -2
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +26 -32
- data/src/core/ext/filters/client_channel/client_channel.cc +325 -356
- data/src/core/ext/filters/client_channel/client_channel.h +4 -12
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +9 -14
- data/src/core/ext/filters/client_channel/client_channel_factory.h +7 -20
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +7 -10
- data/src/core/ext/filters/client_channel/connector.cc +6 -7
- data/src/core/ext/filters/client_channel/connector.h +6 -16
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +38 -50
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -8
- data/src/core/ext/filters/client_channel/http_proxy.cc +9 -13
- data/src/core/ext/filters/client_channel/http_proxy.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy.cc +72 -94
- data/src/core/ext/filters/client_channel/lb_policy.h +83 -92
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +474 -591
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +2 -10
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +0 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +0 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +9 -12
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +160 -182
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -221
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +24 -35
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +9 -20
- data/src/core/ext/filters/client_channel/lb_policy_factory.cc +6 -9
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +4 -15
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -9
- data/src/core/ext/filters/client_channel/parse_address.cc +1 -1
- data/src/core/ext/filters/client_channel/parse_address.h +0 -8
- data/src/core/ext/filters/client_channel/proxy_mapper.cc +6 -8
- data/src/core/ext/filters/client_channel/proxy_mapper.h +6 -16
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +13 -17
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +2 -12
- data/src/core/ext/filters/client_channel/resolver.cc +11 -13
- data/src/core/ext/filters/client_channel/resolver.h +14 -25
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +57 -70
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +23 -31
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +27 -45
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +9 -11
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +53 -66
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +25 -33
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -9
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +26 -35
- data/src/core/ext/filters/client_channel/resolver_factory.cc +2 -3
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -12
- data/src/core/ext/filters/client_channel/resolver_registry.cc +12 -15
- data/src/core/ext/filters/client_channel/resolver_registry.h +3 -12
- data/src/core/ext/filters/client_channel/retry_throttle.h +0 -8
- data/src/core/ext/filters/client_channel/subchannel.cc +289 -301
- data/src/core/ext/filters/client_channel/subchannel.h +57 -84
- data/src/core/ext/filters/client_channel/subchannel_index.cc +30 -33
- data/src/core/ext/filters/client_channel/subchannel_index.h +4 -16
- data/src/core/ext/filters/client_channel/uri_parser.cc +13 -17
- data/src/core/ext/filters/client_channel/uri_parser.h +1 -10
- data/src/core/ext/filters/deadline/deadline_filter.cc +49 -67
- data/src/core/ext/filters/deadline/deadline_filter.h +4 -14
- data/src/core/ext/filters/http/client/http_client_filter.cc +60 -77
- data/src/core/ext/filters/http/client/http_client_filter.h +0 -8
- data/src/core/ext/filters/http/http_filters_plugin.cc +4 -6
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +63 -79
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +57 -71
- data/src/core/ext/filters/http/server/http_server_filter.h +0 -8
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +19 -24
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +0 -8
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +3 -3
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +0 -8
- data/src/core/ext/filters/max_age/max_age_filter.cc +49 -62
- data/src/core/ext/filters/max_age/max_age_filter.h +0 -8
- data/src/core/ext/filters/message_size/message_size_filter.cc +23 -29
- data/src/core/ext/filters/message_size/message_size_filter.h +0 -8
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +0 -8
- data/src/core/ext/filters/workarounds/workaround_utils.h +0 -8
- data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -8
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +33 -40
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -8
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +15 -17
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +8 -8
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +23 -28
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +50 -57
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +1 -10
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -10
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -11
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -9
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +10 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +516 -636
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -11
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +29 -13
- data/src/core/ext/transport/chttp2/transport/flow_control.h +196 -53
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +31 -33
- data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -12
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -9
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +8 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -11
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +63 -81
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +230 -318
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -19
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +14 -20
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +5 -16
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -7
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +0 -8
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +8 -11
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +4 -13
- data/src/core/ext/transport/chttp2/transport/internal.h +51 -75
- data/src/core/ext/transport/chttp2/transport/parsing.cc +83 -109
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -8
- data/src/core/ext/transport/chttp2/transport/varint.h +0 -8
- data/src/core/ext/transport/chttp2/transport/writing.cc +61 -65
- data/src/core/ext/transport/inproc/inproc_plugin.cc +2 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +177 -188
- data/src/core/ext/transport/inproc/inproc_transport.h +0 -8
- data/src/core/lib/backoff/backoff.cc +39 -44
- data/src/core/lib/backoff/backoff.h +61 -57
- data/src/core/lib/channel/channel_args.cc +8 -10
- data/src/core/lib/channel/channel_args.h +4 -13
- data/src/core/lib/channel/channel_stack.cc +19 -27
- data/src/core/lib/channel/channel_stack.h +27 -47
- data/src/core/lib/channel/channel_stack_builder.cc +11 -14
- data/src/core/lib/channel/channel_stack_builder.h +4 -15
- data/src/core/lib/channel/connected_channel.cc +23 -36
- data/src/core/lib/channel/connected_channel.h +1 -10
- data/src/core/lib/channel/handshaker.cc +31 -40
- data/src/core/lib/channel/handshaker.h +14 -25
- data/src/core/lib/channel/handshaker_factory.cc +6 -6
- data/src/core/lib/channel/handshaker_factory.h +5 -15
- data/src/core/lib/channel/handshaker_registry.cc +9 -13
- data/src/core/lib/channel/handshaker_registry.h +2 -11
- data/src/core/lib/compression/algorithm_metadata.h +0 -8
- data/src/core/lib/compression/message_compress.cc +19 -23
- data/src/core/lib/compression/message_compress.h +2 -12
- data/src/core/lib/compression/stream_compression.cc +1 -1
- data/src/core/lib/compression/stream_compression.h +0 -8
- data/src/core/lib/compression/stream_compression_gzip.cc +12 -11
- data/src/core/lib/compression/stream_compression_gzip.h +0 -8
- data/src/core/lib/compression/stream_compression_identity.h +0 -8
- data/src/core/lib/debug/stats.cc +4 -4
- data/src/core/lib/debug/stats.h +9 -19
- data/src/core/lib/debug/stats_data.cc +85 -116
- data/src/core/lib/debug/stats_data.h +236 -312
- data/src/core/lib/debug/trace.cc +1 -1
- data/src/core/lib/debug/trace.h +0 -12
- data/src/core/lib/{support → gpr++}/abstract.h +8 -3
- data/src/core/lib/{support → gpr++}/atomic.h +5 -5
- data/src/core/lib/{support → gpr++}/atomic_with_atm.h +3 -3
- data/src/core/lib/{support → gpr++}/atomic_with_std.h +3 -3
- data/src/core/lib/gpr++/debug_location.h +52 -0
- data/src/core/lib/gpr++/inlined_vector.h +112 -0
- data/src/core/lib/{support → gpr++}/manual_constructor.h +2 -2
- data/src/core/lib/{support → gpr++}/memory.h +3 -3
- data/src/core/lib/gpr++/orphanable.h +171 -0
- data/src/core/lib/gpr++/ref_counted.h +133 -0
- data/src/core/lib/gpr++/ref_counted_ptr.h +99 -0
- data/src/core/lib/{support → gpr}/alloc.cc +0 -0
- data/src/core/lib/{support → gpr}/arena.cc +1 -1
- data/src/core/lib/{support → gpr}/arena.h +3 -11
- data/src/core/lib/{support → gpr}/atm.cc +0 -0
- data/src/core/lib/{support → gpr}/avl.cc +0 -0
- data/src/core/lib/{support → gpr}/cmdline.cc +1 -1
- data/src/core/lib/{support → gpr}/cpu_iphone.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_linux.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_windows.cc +0 -0
- data/src/core/lib/{support → gpr}/env.h +3 -11
- data/src/core/lib/{support → gpr}/env_linux.cc +2 -2
- data/src/core/lib/{support → gpr}/env_posix.cc +4 -4
- data/src/core/lib/{support → gpr}/env_windows.cc +3 -3
- data/src/core/lib/{support → gpr}/fork.cc +3 -3
- data/src/core/lib/{support → gpr}/fork.h +3 -3
- data/src/core/lib/{support → gpr}/host_port.cc +1 -1
- data/src/core/lib/{support → gpr}/log.cc +3 -3
- data/src/core/lib/{support → gpr}/log_android.cc +3 -3
- data/src/core/lib/{support → gpr}/log_linux.cc +1 -1
- data/src/core/lib/{support → gpr}/log_posix.cc +5 -5
- data/src/core/lib/{support → gpr}/log_windows.cc +3 -3
- data/src/core/lib/{support → gpr}/mpscq.cc +1 -1
- data/src/core/lib/{support → gpr}/mpscq.h +3 -10
- data/src/core/lib/{support → gpr}/murmur_hash.cc +1 -1
- data/src/core/lib/{support → gpr}/murmur_hash.h +3 -11
- data/src/core/lib/{support → gpr}/spinlock.h +3 -3
- data/src/core/lib/{support → gpr}/string.cc +1 -1
- data/src/core/lib/{support → gpr}/string.h +3 -10
- data/src/core/lib/{support → gpr}/string_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/string_util_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/string_windows.cc +1 -1
- data/src/core/lib/{support → gpr}/string_windows.h +3 -11
- data/src/core/lib/{support → gpr}/subprocess_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/subprocess_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/sync.cc +0 -0
- data/src/core/lib/{support → gpr}/sync_posix.cc +10 -1
- data/src/core/lib/{support → gpr}/sync_windows.cc +0 -0
- data/src/core/lib/{support → gpr}/thd.cc +0 -0
- data/src/core/lib/{support → gpr}/thd_internal.h +3 -3
- data/src/core/lib/{support → gpr}/thd_posix.cc +18 -2
- data/src/core/lib/{support → gpr}/thd_windows.cc +2 -1
- data/src/core/lib/{support → gpr}/time.cc +0 -0
- data/src/core/lib/{support → gpr}/time_posix.cc +2 -4
- data/src/core/lib/{support → gpr}/time_precise.cc +1 -1
- data/src/core/lib/{support → gpr}/time_precise.h +3 -11
- data/src/core/lib/{support → gpr}/time_windows.cc +1 -3
- data/src/core/lib/{support → gpr}/tls_pthread.cc +0 -0
- data/src/core/lib/{support → gpr}/tmpfile.h +3 -11
- data/src/core/lib/{support → gpr}/tmpfile_msys.cc +2 -2
- data/src/core/lib/{support → gpr}/tmpfile_posix.cc +2 -2
- data/src/core/lib/{support → gpr}/tmpfile_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/wrap_memcpy.cc +0 -0
- data/src/core/lib/http/format_request.cc +1 -1
- data/src/core/lib/http/format_request.h +0 -8
- data/src/core/lib/http/httpcli.cc +55 -74
- data/src/core/lib/http/httpcli.h +13 -22
- data/src/core/lib/http/httpcli_security_connector.cc +27 -33
- data/src/core/lib/http/parser.h +0 -8
- data/src/core/lib/iomgr/block_annotate.h +10 -17
- data/src/core/lib/iomgr/call_combiner.cc +14 -17
- data/src/core/lib/iomgr/call_combiner.h +16 -34
- data/src/core/lib/iomgr/closure.h +24 -37
- data/src/core/lib/iomgr/combiner.cc +62 -66
- data/src/core/lib/iomgr/combiner.h +6 -16
- data/src/core/lib/iomgr/endpoint.cc +15 -21
- data/src/core/lib/iomgr/endpoint.h +16 -33
- data/src/core/lib/iomgr/endpoint_pair.h +0 -8
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +4 -5
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +4 -6
- data/src/core/lib/iomgr/error.cc +2 -6
- data/src/core/lib/iomgr/error.h +4 -9
- data/src/core/lib/iomgr/error_internal.h +0 -8
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +110 -117
- data/src/core/lib/iomgr/ev_epoll1_linux.h +0 -8
- data/src/core/lib/iomgr/ev_epollex_linux.cc +111 -141
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -8
- data/src/core/lib/iomgr/ev_epollsig_linux.cc +83 -109
- data/src/core/lib/iomgr/ev_epollsig_linux.h +2 -10
- data/src/core/lib/iomgr/ev_poll_posix.cc +103 -125
- data/src/core/lib/iomgr/ev_poll_posix.h +0 -8
- data/src/core/lib/iomgr/ev_posix.cc +35 -50
- data/src/core/lib/iomgr/ev_posix.h +27 -53
- data/src/core/lib/iomgr/exec_ctx.cc +46 -78
- data/src/core/lib/iomgr/exec_ctx.h +127 -60
- data/src/core/lib/iomgr/executor.cc +34 -38
- data/src/core/lib/iomgr/executor.h +3 -11
- data/src/core/lib/iomgr/fork_posix.cc +13 -12
- data/src/core/lib/iomgr/gethostname.h +0 -8
- data/src/core/lib/iomgr/gethostname_sysconf.cc +1 -1
- data/src/core/lib/iomgr/iocp_windows.cc +14 -16
- data/src/core/lib/iomgr/iocp_windows.h +1 -10
- data/src/core/lib/iomgr/iomgr.cc +60 -59
- data/src/core/lib/iomgr/iomgr.h +3 -12
- data/src/core/lib/iomgr/iomgr_internal.h +0 -8
- data/src/core/lib/iomgr/iomgr_uv.cc +2 -3
- data/src/core/lib/iomgr/iomgr_uv.h +0 -8
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +1 -1
- data/src/core/lib/iomgr/load_file.h +0 -8
- data/src/core/lib/iomgr/lockfree_event.cc +7 -8
- data/src/core/lib/iomgr/lockfree_event.h +3 -3
- data/src/core/lib/iomgr/polling_entity.cc +6 -10
- data/src/core/lib/iomgr/polling_entity.h +2 -11
- data/src/core/lib/iomgr/pollset.h +4 -13
- data/src/core/lib/iomgr/pollset_set.h +5 -18
- data/src/core/lib/iomgr/pollset_set_uv.cc +5 -10
- data/src/core/lib/iomgr/pollset_set_windows.cc +5 -10
- data/src/core/lib/iomgr/pollset_uv.cc +8 -9
- data/src/core/lib/iomgr/pollset_uv.h +0 -8
- data/src/core/lib/iomgr/pollset_windows.cc +14 -15
- data/src/core/lib/iomgr/pollset_windows.h +0 -8
- data/src/core/lib/iomgr/port.h +6 -1
- data/src/core/lib/iomgr/resolve_address.h +1 -10
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -12
- data/src/core/lib/iomgr/resolve_address_uv.cc +7 -8
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -9
- data/src/core/lib/iomgr/resource_quota.cc +77 -107
- data/src/core/lib/iomgr/resource_quota.h +8 -25
- data/src/core/lib/iomgr/sockaddr_utils.cc +1 -1
- data/src/core/lib/iomgr/sockaddr_utils.h +0 -8
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.h +0 -8
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.h +1 -9
- data/src/core/lib/iomgr/socket_utils.h +0 -8
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.h +0 -8
- data/src/core/lib/iomgr/socket_windows.cc +8 -11
- data/src/core/lib/iomgr/socket_windows.h +3 -14
- data/src/core/lib/iomgr/tcp_client.h +1 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +94 -78
- data/src/core/lib/iomgr/tcp_client_posix.h +36 -8
- data/src/core/lib/iomgr/tcp_client_uv.cc +16 -23
- data/src/core/lib/iomgr/tcp_client_windows.cc +22 -25
- data/src/core/lib/iomgr/tcp_posix.cc +131 -153
- data/src/core/lib/iomgr/tcp_posix.h +3 -12
- data/src/core/lib/iomgr/tcp_server.h +6 -17
- data/src/core/lib/iomgr/tcp_server_posix.cc +31 -35
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -8
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
- data/src/core/lib/iomgr/tcp_server_uv.cc +23 -34
- data/src/core/lib/iomgr/tcp_server_windows.cc +24 -34
- data/src/core/lib/iomgr/tcp_uv.cc +42 -56
- data/src/core/lib/iomgr/tcp_uv.h +0 -8
- data/src/core/lib/iomgr/tcp_windows.cc +43 -50
- data/src/core/lib/iomgr/tcp_windows.h +1 -9
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -8
- data/src/core/lib/iomgr/timer.h +6 -15
- data/src/core/lib/iomgr/timer_generic.cc +22 -27
- data/src/core/lib/iomgr/timer_heap.h +0 -8
- data/src/core/lib/iomgr/timer_manager.cc +17 -19
- data/src/core/lib/iomgr/timer_manager.h +0 -8
- data/src/core/lib/iomgr/timer_uv.cc +12 -14
- data/src/core/lib/iomgr/udp_server.cc +148 -54
- data/src/core/lib/iomgr/udp_server.h +16 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +0 -8
- data/src/core/lib/iomgr/wakeup_fd_cv.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_cv.h +12 -20
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +0 -8
- data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -8
- data/src/core/lib/json/json.h +0 -8
- data/src/core/lib/json/json_reader.h +0 -8
- data/src/core/lib/json/json_writer.h +0 -8
- data/src/core/lib/profiling/basic_timers.cc +3 -2
- data/src/core/lib/profiling/timers.h +0 -8
- data/src/core/lib/security/context/security_context.cc +9 -10
- data/src/core/lib/security/context/security_context.h +0 -8
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +23 -28
- data/src/core/lib/security/credentials/composite/composite_credentials.h +0 -8
- data/src/core/lib/security/credentials/credentials.cc +33 -42
- data/src/core/lib/security/credentials/credentials.h +24 -43
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +16 -22
- data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -8
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +28 -34
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +0 -8
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -13
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +0 -8
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +14 -20
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -10
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +56 -72
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +5 -17
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +47 -55
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +3 -12
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +23 -28
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +8 -13
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -8
- data/src/core/lib/security/transport/auth_filters.h +0 -8
- data/src/core/lib/security/transport/client_auth_filter.cc +45 -54
- data/src/core/lib/security/transport/lb_targets_info.cc +2 -2
- data/src/core/lib/security/transport/lb_targets_info.h +0 -8
- data/src/core/lib/security/transport/secure_endpoint.cc +54 -68
- data/src/core/lib/security/transport/secure_endpoint.h +0 -8
- data/src/core/lib/security/transport/security_connector.cc +62 -86
- data/src/core/lib/security/transport/security_connector.h +22 -39
- data/src/core/lib/security/transport/security_handshaker.cc +83 -106
- data/src/core/lib/security/transport/security_handshaker.h +1 -10
- data/src/core/lib/security/transport/server_auth_filter.cc +31 -38
- data/src/core/lib/security/transport/tsi_error.h +0 -8
- data/src/core/lib/security/util/json_util.h +0 -8
- data/src/core/lib/slice/b64.cc +5 -6
- data/src/core/lib/slice/b64.h +3 -12
- data/src/core/lib/slice/percent_encoding.h +0 -8
- data/src/core/lib/slice/slice.cc +8 -9
- data/src/core/lib/slice/slice_buffer.cc +11 -16
- data/src/core/lib/slice/slice_hash_table.cc +5 -7
- data/src/core/lib/slice/slice_hash_table.h +2 -12
- data/src/core/lib/slice/slice_intern.cc +4 -5
- data/src/core/lib/slice/slice_internal.h +4 -15
- data/src/core/lib/slice/slice_string_helpers.cc +1 -1
- data/src/core/lib/slice/slice_string_helpers.h +1 -9
- data/src/core/lib/surface/alarm.cc +11 -14
- data/src/core/lib/surface/alarm_internal.h +0 -8
- data/src/core/lib/surface/byte_buffer.cc +2 -3
- data/src/core/lib/surface/byte_buffer_reader.cc +7 -9
- data/src/core/lib/surface/call.cc +198 -241
- data/src/core/lib/surface/call.h +9 -23
- data/src/core/lib/surface/call_details.cc +3 -4
- data/src/core/lib/surface/call_log_batch.cc +1 -1
- data/src/core/lib/surface/call_test_only.h +0 -8
- data/src/core/lib/surface/channel.cc +53 -64
- data/src/core/lib/surface/channel.h +12 -23
- data/src/core/lib/surface/channel_init.cc +2 -3
- data/src/core/lib/surface/channel_init.h +2 -12
- data/src/core/lib/surface/channel_ping.cc +7 -9
- data/src/core/lib/surface/channel_stack_type.h +0 -8
- data/src/core/lib/surface/completion_queue.cc +158 -176
- data/src/core/lib/surface/completion_queue.h +9 -20
- data/src/core/lib/surface/completion_queue_factory.h +0 -8
- data/src/core/lib/surface/event_string.cc +1 -1
- data/src/core/lib/surface/event_string.h +0 -8
- data/src/core/lib/surface/init.cc +27 -25
- data/src/core/lib/surface/init.h +0 -8
- data/src/core/lib/surface/init_secure.cc +2 -2
- data/src/core/lib/surface/lame_client.cc +30 -33
- data/src/core/lib/surface/lame_client.h +0 -8
- data/src/core/lib/surface/server.cc +151 -203
- data/src/core/lib/surface/server.h +7 -16
- data/src/core/lib/surface/validate_metadata.h +0 -8
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.h +1 -1
- data/src/core/lib/transport/byte_stream.cc +24 -38
- data/src/core/lib/transport/byte_stream.h +10 -25
- data/src/core/lib/transport/connectivity_state.cc +9 -13
- data/src/core/lib/transport/connectivity_state.h +4 -14
- data/src/core/lib/transport/error_utils.cc +6 -6
- data/src/core/lib/transport/error_utils.h +2 -11
- data/src/core/lib/transport/metadata.cc +21 -23
- data/src/core/lib/transport/metadata.h +8 -20
- data/src/core/lib/transport/metadata_batch.cc +34 -45
- data/src/core/lib/transport/metadata_batch.h +18 -32
- data/src/core/lib/transport/service_config.cc +11 -15
- data/src/core/lib/transport/service_config.h +3 -13
- data/src/core/lib/transport/static_metadata.cc +1 -1
- data/src/core/lib/transport/static_metadata.h +1 -7
- data/src/core/lib/transport/status_conversion.cc +2 -3
- data/src/core/lib/transport/status_conversion.h +1 -10
- data/src/core/lib/transport/timeout_encoding.cc +1 -1
- data/src/core/lib/transport/timeout_encoding.h +1 -9
- data/src/core/lib/transport/transport.cc +36 -50
- data/src/core/lib/transport/transport.h +28 -30
- data/src/core/lib/transport/transport_impl.h +12 -23
- data/src/core/lib/transport/transport_op_string.cc +2 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +34 -34
- data/src/core/tsi/fake_transport_security.cc +7 -10
- data/src/core/tsi/fake_transport_security.h +0 -8
- data/src/core/tsi/gts_transport_security.cc +2 -2
- data/src/core/tsi/gts_transport_security.h +0 -8
- data/src/core/tsi/ssl_transport_security.cc +3 -0
- data/src/core/tsi/ssl_transport_security.h +0 -8
- data/src/core/tsi/ssl_types.h +0 -8
- data/src/core/tsi/transport_security.h +1 -9
- data/src/core/tsi/transport_security_adapter.h +0 -8
- data/src/core/tsi/transport_security_grpc.cc +11 -18
- data/src/core/tsi/transport_security_grpc.h +9 -21
- data/src/core/tsi/transport_security_interface.h +0 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +0 -30
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -48
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/channel_connection_spec.rb +2 -1
- data/src/ruby/spec/client_auth_spec.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +2 -2
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/interceptor_registry_spec.rb +1 -1
- data/src/ruby/spec/generic/rpc_server_spec.rb +12 -12
- data/src/ruby/spec/google_rpc_status_utils_spec.rb +3 -2
- data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
- data/src/ruby/spec/server_spec.rb +9 -9
- data/src/ruby/spec/support/helpers.rb +35 -1
- metadata +68 -66
- data/include/grpc/impl/codegen/exec_ctx_fwd.h +0 -26
- data/include/grpc/support/histogram.h +0 -64
- data/src/core/lib/support/histogram.cc +0 -227
@@ -21,15 +21,7 @@
|
|
21
21
|
|
22
22
|
#include "src/core/lib/iomgr/ev_posix.h"
|
23
23
|
|
24
|
-
#ifdef __cplusplus
|
25
|
-
extern "C" {
|
26
|
-
#endif
|
27
|
-
|
28
24
|
const grpc_event_engine_vtable* grpc_init_poll_posix(bool explicit_request);
|
29
25
|
const grpc_event_engine_vtable* grpc_init_poll_cv_posix(bool explicit_request);
|
30
26
|
|
31
|
-
#ifdef __cplusplus
|
32
|
-
}
|
33
|
-
#endif
|
34
|
-
|
35
27
|
#endif /* GRPC_CORE_LIB_IOMGR_EV_POLL_POSIX_H */
|
@@ -30,11 +30,11 @@
|
|
30
30
|
#include <grpc/support/useful.h>
|
31
31
|
|
32
32
|
#include "src/core/lib/debug/trace.h"
|
33
|
+
#include "src/core/lib/gpr/env.h"
|
33
34
|
#include "src/core/lib/iomgr/ev_epoll1_linux.h"
|
34
35
|
#include "src/core/lib/iomgr/ev_epollex_linux.h"
|
35
36
|
#include "src/core/lib/iomgr/ev_epollsig_linux.h"
|
36
37
|
#include "src/core/lib/iomgr/ev_poll_posix.h"
|
37
|
-
#include "src/core/lib/support/env.h"
|
38
38
|
|
39
39
|
grpc_core::TraceFlag grpc_polling_trace(false,
|
40
40
|
"polling"); /* Disabled by default */
|
@@ -46,7 +46,7 @@ grpc_poll_function_type grpc_poll_function = poll;
|
|
46
46
|
|
47
47
|
grpc_wakeup_fd grpc_global_wakeup_fd;
|
48
48
|
|
49
|
-
static const grpc_event_engine_vtable* g_event_engine;
|
49
|
+
static const grpc_event_engine_vtable* g_event_engine = nullptr;
|
50
50
|
static const char* g_poll_strategy_name = nullptr;
|
51
51
|
|
52
52
|
typedef const grpc_event_engine_vtable* (*event_engine_factory_fn)(
|
@@ -59,8 +59,6 @@ typedef struct {
|
|
59
59
|
|
60
60
|
namespace {
|
61
61
|
|
62
|
-
extern "C" {
|
63
|
-
|
64
62
|
grpc_poll_function_type real_poll_function;
|
65
63
|
|
66
64
|
int dummy_poll(struct pollfd fds[], nfds_t nfds, int timeout) {
|
@@ -72,7 +70,6 @@ int dummy_poll(struct pollfd fds[], nfds_t nfds, int timeout) {
|
|
72
70
|
return -1;
|
73
71
|
}
|
74
72
|
}
|
75
|
-
} // extern "C"
|
76
73
|
|
77
74
|
const grpc_event_engine_vtable* init_non_polling(bool explicit_request) {
|
78
75
|
if (!explicit_request) {
|
@@ -187,28 +184,25 @@ int grpc_fd_wrapped_fd(grpc_fd* fd) {
|
|
187
184
|
return g_event_engine->fd_wrapped_fd(fd);
|
188
185
|
}
|
189
186
|
|
190
|
-
void grpc_fd_orphan(
|
191
|
-
|
192
|
-
g_event_engine->fd_orphan(
|
193
|
-
reason);
|
187
|
+
void grpc_fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
|
188
|
+
bool already_closed, const char* reason) {
|
189
|
+
g_event_engine->fd_orphan(fd, on_done, release_fd, already_closed, reason);
|
194
190
|
}
|
195
191
|
|
196
|
-
void grpc_fd_shutdown(
|
197
|
-
g_event_engine->fd_shutdown(
|
192
|
+
void grpc_fd_shutdown(grpc_fd* fd, grpc_error* why) {
|
193
|
+
g_event_engine->fd_shutdown(fd, why);
|
198
194
|
}
|
199
195
|
|
200
196
|
bool grpc_fd_is_shutdown(grpc_fd* fd) {
|
201
197
|
return g_event_engine->fd_is_shutdown(fd);
|
202
198
|
}
|
203
199
|
|
204
|
-
void grpc_fd_notify_on_read(
|
205
|
-
|
206
|
-
g_event_engine->fd_notify_on_read(exec_ctx, fd, closure);
|
200
|
+
void grpc_fd_notify_on_read(grpc_fd* fd, grpc_closure* closure) {
|
201
|
+
g_event_engine->fd_notify_on_read(fd, closure);
|
207
202
|
}
|
208
203
|
|
209
|
-
void grpc_fd_notify_on_write(
|
210
|
-
|
211
|
-
g_event_engine->fd_notify_on_write(exec_ctx, fd, closure);
|
204
|
+
void grpc_fd_notify_on_write(grpc_fd* fd, grpc_closure* closure) {
|
205
|
+
g_event_engine->fd_notify_on_write(fd, closure);
|
212
206
|
}
|
213
207
|
|
214
208
|
size_t grpc_pollset_size(void) { return g_event_engine->pollset_size; }
|
@@ -217,72 +211,63 @@ void grpc_pollset_init(grpc_pollset* pollset, gpr_mu** mu) {
|
|
217
211
|
g_event_engine->pollset_init(pollset, mu);
|
218
212
|
}
|
219
213
|
|
220
|
-
void grpc_pollset_shutdown(
|
221
|
-
|
222
|
-
g_event_engine->pollset_shutdown(exec_ctx, pollset, closure);
|
214
|
+
void grpc_pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
|
215
|
+
g_event_engine->pollset_shutdown(pollset, closure);
|
223
216
|
}
|
224
217
|
|
225
|
-
void grpc_pollset_destroy(
|
226
|
-
g_event_engine->pollset_destroy(
|
218
|
+
void grpc_pollset_destroy(grpc_pollset* pollset) {
|
219
|
+
g_event_engine->pollset_destroy(pollset);
|
227
220
|
}
|
228
221
|
|
229
|
-
grpc_error* grpc_pollset_work(
|
222
|
+
grpc_error* grpc_pollset_work(grpc_pollset* pollset,
|
230
223
|
grpc_pollset_worker** worker,
|
231
224
|
grpc_millis deadline) {
|
232
|
-
return g_event_engine->pollset_work(
|
225
|
+
return g_event_engine->pollset_work(pollset, worker, deadline);
|
233
226
|
}
|
234
227
|
|
235
|
-
grpc_error* grpc_pollset_kick(
|
228
|
+
grpc_error* grpc_pollset_kick(grpc_pollset* pollset,
|
236
229
|
grpc_pollset_worker* specific_worker) {
|
237
|
-
return g_event_engine->pollset_kick(
|
230
|
+
return g_event_engine->pollset_kick(pollset, specific_worker);
|
238
231
|
}
|
239
232
|
|
240
|
-
void grpc_pollset_add_fd(
|
241
|
-
|
242
|
-
g_event_engine->pollset_add_fd(exec_ctx, pollset, fd);
|
233
|
+
void grpc_pollset_add_fd(grpc_pollset* pollset, struct grpc_fd* fd) {
|
234
|
+
g_event_engine->pollset_add_fd(pollset, fd);
|
243
235
|
}
|
244
236
|
|
245
237
|
grpc_pollset_set* grpc_pollset_set_create(void) {
|
246
238
|
return g_event_engine->pollset_set_create();
|
247
239
|
}
|
248
240
|
|
249
|
-
void grpc_pollset_set_destroy(
|
250
|
-
|
251
|
-
g_event_engine->pollset_set_destroy(exec_ctx, pollset_set);
|
241
|
+
void grpc_pollset_set_destroy(grpc_pollset_set* pollset_set) {
|
242
|
+
g_event_engine->pollset_set_destroy(pollset_set);
|
252
243
|
}
|
253
244
|
|
254
|
-
void grpc_pollset_set_add_pollset(
|
255
|
-
grpc_pollset_set* pollset_set,
|
245
|
+
void grpc_pollset_set_add_pollset(grpc_pollset_set* pollset_set,
|
256
246
|
grpc_pollset* pollset) {
|
257
|
-
g_event_engine->pollset_set_add_pollset(
|
247
|
+
g_event_engine->pollset_set_add_pollset(pollset_set, pollset);
|
258
248
|
}
|
259
249
|
|
260
|
-
void grpc_pollset_set_del_pollset(
|
261
|
-
grpc_pollset_set* pollset_set,
|
250
|
+
void grpc_pollset_set_del_pollset(grpc_pollset_set* pollset_set,
|
262
251
|
grpc_pollset* pollset) {
|
263
|
-
g_event_engine->pollset_set_del_pollset(
|
252
|
+
g_event_engine->pollset_set_del_pollset(pollset_set, pollset);
|
264
253
|
}
|
265
254
|
|
266
|
-
void grpc_pollset_set_add_pollset_set(
|
267
|
-
grpc_pollset_set* bag,
|
255
|
+
void grpc_pollset_set_add_pollset_set(grpc_pollset_set* bag,
|
268
256
|
grpc_pollset_set* item) {
|
269
|
-
g_event_engine->pollset_set_add_pollset_set(
|
257
|
+
g_event_engine->pollset_set_add_pollset_set(bag, item);
|
270
258
|
}
|
271
259
|
|
272
|
-
void grpc_pollset_set_del_pollset_set(
|
273
|
-
grpc_pollset_set* bag,
|
260
|
+
void grpc_pollset_set_del_pollset_set(grpc_pollset_set* bag,
|
274
261
|
grpc_pollset_set* item) {
|
275
|
-
g_event_engine->pollset_set_del_pollset_set(
|
262
|
+
g_event_engine->pollset_set_del_pollset_set(bag, item);
|
276
263
|
}
|
277
264
|
|
278
|
-
void grpc_pollset_set_add_fd(
|
279
|
-
|
280
|
-
g_event_engine->pollset_set_add_fd(exec_ctx, pollset_set, fd);
|
265
|
+
void grpc_pollset_set_add_fd(grpc_pollset_set* pollset_set, grpc_fd* fd) {
|
266
|
+
g_event_engine->pollset_set_add_fd(pollset_set, fd);
|
281
267
|
}
|
282
268
|
|
283
|
-
void grpc_pollset_set_del_fd(
|
284
|
-
|
285
|
-
g_event_engine->pollset_set_del_fd(exec_ctx, pollset_set, fd);
|
269
|
+
void grpc_pollset_set_del_fd(grpc_pollset_set* pollset_set, grpc_fd* fd) {
|
270
|
+
g_event_engine->pollset_set_del_fd(pollset_set, fd);
|
286
271
|
}
|
287
272
|
|
288
273
|
#endif // GRPC_POSIX_SOCKET
|
@@ -27,10 +27,6 @@
|
|
27
27
|
#include "src/core/lib/iomgr/pollset_set.h"
|
28
28
|
#include "src/core/lib/iomgr/wakeup_fd_posix.h"
|
29
29
|
|
30
|
-
#ifdef __cplusplus
|
31
|
-
extern "C" {
|
32
|
-
#endif
|
33
|
-
|
34
30
|
extern grpc_core::TraceFlag grpc_polling_trace; /* Disabled by default */
|
35
31
|
|
36
32
|
typedef struct grpc_fd grpc_fd;
|
@@ -40,48 +36,36 @@ typedef struct grpc_event_engine_vtable {
|
|
40
36
|
|
41
37
|
grpc_fd* (*fd_create)(int fd, const char* name);
|
42
38
|
int (*fd_wrapped_fd)(grpc_fd* fd);
|
43
|
-
void (*fd_orphan)(
|
44
|
-
|
45
|
-
void (*fd_shutdown)(
|
46
|
-
void (*fd_notify_on_read)(
|
47
|
-
|
48
|
-
void (*fd_notify_on_write)(grpc_exec_ctx* exec_ctx, grpc_fd* fd,
|
49
|
-
grpc_closure* closure);
|
39
|
+
void (*fd_orphan)(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
|
40
|
+
bool already_closed, const char* reason);
|
41
|
+
void (*fd_shutdown)(grpc_fd* fd, grpc_error* why);
|
42
|
+
void (*fd_notify_on_read)(grpc_fd* fd, grpc_closure* closure);
|
43
|
+
void (*fd_notify_on_write)(grpc_fd* fd, grpc_closure* closure);
|
50
44
|
bool (*fd_is_shutdown)(grpc_fd* fd);
|
51
|
-
grpc_pollset* (*fd_get_read_notifier_pollset)(
|
52
|
-
grpc_fd* fd);
|
45
|
+
grpc_pollset* (*fd_get_read_notifier_pollset)(grpc_fd* fd);
|
53
46
|
|
54
47
|
void (*pollset_init)(grpc_pollset* pollset, gpr_mu** mu);
|
55
|
-
void (*pollset_shutdown)(
|
56
|
-
|
57
|
-
|
58
|
-
grpc_error* (*pollset_work)(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
|
48
|
+
void (*pollset_shutdown)(grpc_pollset* pollset, grpc_closure* closure);
|
49
|
+
void (*pollset_destroy)(grpc_pollset* pollset);
|
50
|
+
grpc_error* (*pollset_work)(grpc_pollset* pollset,
|
59
51
|
grpc_pollset_worker** worker,
|
60
52
|
grpc_millis deadline);
|
61
|
-
grpc_error* (*pollset_kick)(
|
53
|
+
grpc_error* (*pollset_kick)(grpc_pollset* pollset,
|
62
54
|
grpc_pollset_worker* specific_worker);
|
63
|
-
void (*pollset_add_fd)(
|
64
|
-
struct grpc_fd* fd);
|
55
|
+
void (*pollset_add_fd)(grpc_pollset* pollset, struct grpc_fd* fd);
|
65
56
|
|
66
57
|
grpc_pollset_set* (*pollset_set_create)(void);
|
67
|
-
void (*pollset_set_destroy)(
|
68
|
-
|
69
|
-
void (*pollset_set_add_pollset)(grpc_exec_ctx* exec_ctx,
|
70
|
-
grpc_pollset_set* pollset_set,
|
58
|
+
void (*pollset_set_destroy)(grpc_pollset_set* pollset_set);
|
59
|
+
void (*pollset_set_add_pollset)(grpc_pollset_set* pollset_set,
|
71
60
|
grpc_pollset* pollset);
|
72
|
-
void (*pollset_set_del_pollset)(
|
73
|
-
grpc_pollset_set* pollset_set,
|
61
|
+
void (*pollset_set_del_pollset)(grpc_pollset_set* pollset_set,
|
74
62
|
grpc_pollset* pollset);
|
75
|
-
void (*pollset_set_add_pollset_set)(
|
76
|
-
grpc_pollset_set* bag,
|
63
|
+
void (*pollset_set_add_pollset_set)(grpc_pollset_set* bag,
|
77
64
|
grpc_pollset_set* item);
|
78
|
-
void (*pollset_set_del_pollset_set)(
|
79
|
-
grpc_pollset_set* bag,
|
65
|
+
void (*pollset_set_del_pollset_set)(grpc_pollset_set* bag,
|
80
66
|
grpc_pollset_set* item);
|
81
|
-
void (*pollset_set_add_fd)(
|
82
|
-
|
83
|
-
void (*pollset_set_del_fd)(grpc_exec_ctx* exec_ctx,
|
84
|
-
grpc_pollset_set* pollset_set, grpc_fd* fd);
|
67
|
+
void (*pollset_set_add_fd)(grpc_pollset_set* pollset_set, grpc_fd* fd);
|
68
|
+
void (*pollset_set_del_fd)(grpc_pollset_set* pollset_set, grpc_fd* fd);
|
85
69
|
|
86
70
|
void (*shutdown_engine)(void);
|
87
71
|
} grpc_event_engine_vtable;
|
@@ -107,14 +91,14 @@ int grpc_fd_wrapped_fd(grpc_fd* fd);
|
|
107
91
|
Requires: *fd initialized; no outstanding notify_on_read or
|
108
92
|
notify_on_write.
|
109
93
|
MUST NOT be called with a pollset lock taken */
|
110
|
-
void grpc_fd_orphan(
|
111
|
-
|
94
|
+
void grpc_fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
|
95
|
+
bool already_closed, const char* reason);
|
112
96
|
|
113
97
|
/* Has grpc_fd_shutdown been called on an fd? */
|
114
98
|
bool grpc_fd_is_shutdown(grpc_fd* fd);
|
115
99
|
|
116
100
|
/* Cause any current and future callbacks to fail. */
|
117
|
-
void grpc_fd_shutdown(
|
101
|
+
void grpc_fd_shutdown(grpc_fd* fd, grpc_error* why);
|
118
102
|
|
119
103
|
/* Register read interest, causing read_cb to be called once when fd becomes
|
120
104
|
readable, on deadline specified by deadline, or on shutdown triggered by
|
@@ -129,29 +113,23 @@ void grpc_fd_shutdown(grpc_exec_ctx* exec_ctx, grpc_fd* fd, grpc_error* why);
|
|
129
113
|
underlying platform. This means that users must drain fd in read_cb before
|
130
114
|
calling notify_on_read again. Users are also expected to handle spurious
|
131
115
|
events, i.e read_cb is called while nothing can be readable from fd */
|
132
|
-
void grpc_fd_notify_on_read(
|
133
|
-
grpc_closure* closure);
|
116
|
+
void grpc_fd_notify_on_read(grpc_fd* fd, grpc_closure* closure);
|
134
117
|
|
135
118
|
/* Exactly the same semantics as above, except based on writable events. */
|
136
|
-
void grpc_fd_notify_on_write(
|
137
|
-
grpc_closure* closure);
|
119
|
+
void grpc_fd_notify_on_write(grpc_fd* fd, grpc_closure* closure);
|
138
120
|
|
139
121
|
/* Return the read notifier pollset from the fd */
|
140
|
-
grpc_pollset* grpc_fd_get_read_notifier_pollset(
|
141
|
-
grpc_fd* fd);
|
122
|
+
grpc_pollset* grpc_fd_get_read_notifier_pollset(grpc_fd* fd);
|
142
123
|
|
143
124
|
/* pollset_posix functions */
|
144
125
|
|
145
126
|
/* Add an fd to a pollset */
|
146
|
-
void grpc_pollset_add_fd(
|
147
|
-
struct grpc_fd* fd);
|
127
|
+
void grpc_pollset_add_fd(grpc_pollset* pollset, struct grpc_fd* fd);
|
148
128
|
|
149
129
|
/* pollset_set_posix functions */
|
150
130
|
|
151
|
-
void grpc_pollset_set_add_fd(
|
152
|
-
|
153
|
-
void grpc_pollset_set_del_fd(grpc_exec_ctx* exec_ctx,
|
154
|
-
grpc_pollset_set* pollset_set, grpc_fd* fd);
|
131
|
+
void grpc_pollset_set_add_fd(grpc_pollset_set* pollset_set, grpc_fd* fd);
|
132
|
+
void grpc_pollset_set_del_fd(grpc_pollset_set* pollset_set, grpc_fd* fd);
|
155
133
|
|
156
134
|
/* override to allow tests to hook poll() usage */
|
157
135
|
typedef int (*grpc_poll_function_type)(struct pollfd*, nfds_t, int);
|
@@ -162,8 +140,4 @@ extern grpc_poll_function_type grpc_poll_function;
|
|
162
140
|
void grpc_set_event_engine_test_only(const grpc_event_engine_vtable*);
|
163
141
|
const grpc_event_engine_vtable* grpc_get_event_engine_test_only();
|
164
142
|
|
165
|
-
#ifdef __cplusplus
|
166
|
-
}
|
167
|
-
#endif
|
168
|
-
|
169
143
|
#endif /* GRPC_CORE_LIB_IOMGR_EV_POSIX_H */
|
@@ -25,39 +25,7 @@
|
|
25
25
|
#include "src/core/lib/iomgr/combiner.h"
|
26
26
|
#include "src/core/lib/profiling/timers.h"
|
27
27
|
|
28
|
-
|
29
|
-
if ((exec_ctx->flags & GRPC_EXEC_CTX_FLAG_IS_FINISHED) == 0) {
|
30
|
-
if (exec_ctx->check_ready_to_finish(exec_ctx,
|
31
|
-
exec_ctx->check_ready_to_finish_arg)) {
|
32
|
-
exec_ctx->flags |= GRPC_EXEC_CTX_FLAG_IS_FINISHED;
|
33
|
-
return true;
|
34
|
-
}
|
35
|
-
return false;
|
36
|
-
} else {
|
37
|
-
return true;
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
|
-
bool grpc_never_ready_to_finish(grpc_exec_ctx* exec_ctx, void* arg_ignored) {
|
42
|
-
return false;
|
43
|
-
}
|
44
|
-
|
45
|
-
bool grpc_always_ready_to_finish(grpc_exec_ctx* exec_ctx, void* arg_ignored) {
|
46
|
-
return true;
|
47
|
-
}
|
48
|
-
|
49
|
-
bool grpc_exec_ctx_has_work(grpc_exec_ctx* exec_ctx) {
|
50
|
-
return exec_ctx->active_combiner != nullptr ||
|
51
|
-
!grpc_closure_list_empty(exec_ctx->closure_list);
|
52
|
-
}
|
53
|
-
|
54
|
-
void grpc_exec_ctx_finish(grpc_exec_ctx* exec_ctx) {
|
55
|
-
exec_ctx->flags |= GRPC_EXEC_CTX_FLAG_IS_FINISHED;
|
56
|
-
grpc_exec_ctx_flush(exec_ctx);
|
57
|
-
}
|
58
|
-
|
59
|
-
static void exec_ctx_run(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
|
60
|
-
grpc_error* error) {
|
28
|
+
static void exec_ctx_run(grpc_closure* closure, grpc_error* error) {
|
61
29
|
#ifndef NDEBUG
|
62
30
|
closure->scheduled = false;
|
63
31
|
if (grpc_trace_closure.enabled()) {
|
@@ -67,7 +35,7 @@ static void exec_ctx_run(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
|
|
67
35
|
closure->line_initiated);
|
68
36
|
}
|
69
37
|
#endif
|
70
|
-
closure->cb(
|
38
|
+
closure->cb(closure->cb_arg, error);
|
71
39
|
#ifndef NDEBUG
|
72
40
|
if (grpc_trace_closure.enabled()) {
|
73
41
|
gpr_log(GPR_DEBUG, "closure %p finished", closure);
|
@@ -76,42 +44,13 @@ static void exec_ctx_run(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
|
|
76
44
|
GRPC_ERROR_UNREF(error);
|
77
45
|
}
|
78
46
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
for (;;) {
|
83
|
-
if (!grpc_closure_list_empty(exec_ctx->closure_list)) {
|
84
|
-
grpc_closure* c = exec_ctx->closure_list.head;
|
85
|
-
exec_ctx->closure_list.head = exec_ctx->closure_list.tail = nullptr;
|
86
|
-
while (c != nullptr) {
|
87
|
-
grpc_closure* next = c->next_data.next;
|
88
|
-
grpc_error* error = c->error_data.error;
|
89
|
-
did_something = true;
|
90
|
-
exec_ctx_run(exec_ctx, c, error);
|
91
|
-
c = next;
|
92
|
-
}
|
93
|
-
} else if (!grpc_combiner_continue_exec_ctx(exec_ctx)) {
|
94
|
-
break;
|
95
|
-
}
|
96
|
-
}
|
97
|
-
GPR_ASSERT(exec_ctx->active_combiner == nullptr);
|
98
|
-
GPR_TIMER_END("grpc_exec_ctx_flush", 0);
|
99
|
-
return did_something;
|
100
|
-
}
|
101
|
-
|
102
|
-
static void exec_ctx_sched(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
|
103
|
-
grpc_error* error) {
|
104
|
-
grpc_closure_list_append(&exec_ctx->closure_list, closure, error);
|
47
|
+
static void exec_ctx_sched(grpc_closure* closure, grpc_error* error) {
|
48
|
+
grpc_closure_list_append(grpc_core::ExecCtx::Get()->closure_list(), closure,
|
49
|
+
error);
|
105
50
|
}
|
106
51
|
|
107
52
|
static gpr_timespec g_start_time;
|
108
53
|
|
109
|
-
void grpc_exec_ctx_global_init(void) {
|
110
|
-
g_start_time = gpr_now(GPR_CLOCK_MONOTONIC);
|
111
|
-
}
|
112
|
-
|
113
|
-
void grpc_exec_ctx_global_shutdown(void) {}
|
114
|
-
|
115
54
|
static gpr_atm timespec_to_atm_round_down(gpr_timespec ts) {
|
116
55
|
ts = gpr_time_sub(ts, g_start_time);
|
117
56
|
double x =
|
@@ -131,18 +70,6 @@ static gpr_atm timespec_to_atm_round_up(gpr_timespec ts) {
|
|
131
70
|
return (gpr_atm)x;
|
132
71
|
}
|
133
72
|
|
134
|
-
grpc_millis grpc_exec_ctx_now(grpc_exec_ctx* exec_ctx) {
|
135
|
-
if (!exec_ctx->now_is_valid) {
|
136
|
-
exec_ctx->now = timespec_to_atm_round_down(gpr_now(GPR_CLOCK_MONOTONIC));
|
137
|
-
exec_ctx->now_is_valid = true;
|
138
|
-
}
|
139
|
-
return exec_ctx->now;
|
140
|
-
}
|
141
|
-
|
142
|
-
void grpc_exec_ctx_invalidate_now(grpc_exec_ctx* exec_ctx) {
|
143
|
-
exec_ctx->now_is_valid = false;
|
144
|
-
}
|
145
|
-
|
146
73
|
gpr_timespec grpc_millis_to_timespec(grpc_millis millis,
|
147
74
|
gpr_clock_type clock_type) {
|
148
75
|
// special-case infinities as grpc_millis can be 32bit on some platforms
|
@@ -175,3 +102,44 @@ static const grpc_closure_scheduler_vtable exec_ctx_scheduler_vtable = {
|
|
175
102
|
exec_ctx_run, exec_ctx_sched, "exec_ctx"};
|
176
103
|
static grpc_closure_scheduler exec_ctx_scheduler = {&exec_ctx_scheduler_vtable};
|
177
104
|
grpc_closure_scheduler* grpc_schedule_on_exec_ctx = &exec_ctx_scheduler;
|
105
|
+
|
106
|
+
namespace grpc_core {
|
107
|
+
GPR_TLS_CLASS_DEF(ExecCtx::exec_ctx_);
|
108
|
+
|
109
|
+
void ExecCtx::GlobalInit(void) {
|
110
|
+
g_start_time = gpr_now(GPR_CLOCK_MONOTONIC);
|
111
|
+
gpr_tls_init(&exec_ctx_);
|
112
|
+
}
|
113
|
+
|
114
|
+
bool ExecCtx::Flush() {
|
115
|
+
bool did_something = 0;
|
116
|
+
GPR_TIMER_BEGIN("grpc_exec_ctx_flush", 0);
|
117
|
+
for (;;) {
|
118
|
+
if (!grpc_closure_list_empty(closure_list_)) {
|
119
|
+
grpc_closure* c = closure_list_.head;
|
120
|
+
closure_list_.head = closure_list_.tail = nullptr;
|
121
|
+
while (c != nullptr) {
|
122
|
+
grpc_closure* next = c->next_data.next;
|
123
|
+
grpc_error* error = c->error_data.error;
|
124
|
+
did_something = true;
|
125
|
+
exec_ctx_run(c, error);
|
126
|
+
c = next;
|
127
|
+
}
|
128
|
+
} else if (!grpc_combiner_continue_exec_ctx()) {
|
129
|
+
break;
|
130
|
+
}
|
131
|
+
}
|
132
|
+
GPR_ASSERT(combiner_data_.active_combiner == nullptr);
|
133
|
+
GPR_TIMER_END("grpc_exec_ctx_flush", 0);
|
134
|
+
return did_something;
|
135
|
+
}
|
136
|
+
|
137
|
+
grpc_millis ExecCtx::Now() {
|
138
|
+
if (!now_is_valid_) {
|
139
|
+
now_ = timespec_to_atm_round_down(gpr_now(GPR_CLOCK_MONOTONIC));
|
140
|
+
now_is_valid_ = true;
|
141
|
+
}
|
142
|
+
return now_;
|
143
|
+
}
|
144
|
+
|
145
|
+
} // namespace grpc_core
|