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
@@ -33,16 +33,11 @@
|
|
33
33
|
#include "src/core/lib/iomgr/endpoint.h"
|
34
34
|
#include "src/core/lib/iomgr/ev_posix.h"
|
35
35
|
|
36
|
-
#ifdef __cplusplus
|
37
|
-
extern "C" {
|
38
|
-
#endif
|
39
|
-
|
40
36
|
extern grpc_core::TraceFlag grpc_tcp_trace;
|
41
37
|
|
42
38
|
/* Create a tcp endpoint given a file desciptor and a read slice size.
|
43
39
|
Takes ownership of fd. */
|
44
|
-
grpc_endpoint* grpc_tcp_create(
|
45
|
-
const grpc_channel_args* args,
|
40
|
+
grpc_endpoint* grpc_tcp_create(grpc_fd* fd, const grpc_channel_args* args,
|
46
41
|
const char* peer_string);
|
47
42
|
|
48
43
|
/* Return the tcp endpoint's fd, or -1 if this is not available. Does not
|
@@ -54,11 +49,7 @@ int grpc_tcp_fd(grpc_endpoint* ep);
|
|
54
49
|
/* Destroy the tcp endpoint without closing its fd. *fd will be set and done
|
55
50
|
* will be called when the endpoint is destroyed.
|
56
51
|
* Requires: ep must be a tcp endpoint and fd must not be NULL. */
|
57
|
-
void grpc_tcp_destroy_and_release_fd(
|
58
|
-
|
59
|
-
|
60
|
-
#ifdef __cplusplus
|
61
|
-
}
|
62
|
-
#endif
|
52
|
+
void grpc_tcp_destroy_and_release_fd(grpc_endpoint* ep, int* fd,
|
53
|
+
grpc_closure* done);
|
63
54
|
|
64
55
|
#endif /* GRPC_CORE_LIB_IOMGR_TCP_POSIX_H */
|
@@ -25,10 +25,6 @@
|
|
25
25
|
#include "src/core/lib/iomgr/endpoint.h"
|
26
26
|
#include "src/core/lib/iomgr/resolve_address.h"
|
27
27
|
|
28
|
-
#ifdef __cplusplus
|
29
|
-
extern "C" {
|
30
|
-
#endif
|
31
|
-
|
32
28
|
/* Forward decl of grpc_tcp_server */
|
33
29
|
typedef struct grpc_tcp_server grpc_tcp_server;
|
34
30
|
|
@@ -43,22 +39,20 @@ typedef struct grpc_tcp_server_acceptor {
|
|
43
39
|
|
44
40
|
/* Called for newly connected TCP connections.
|
45
41
|
Takes ownership of acceptor. */
|
46
|
-
typedef void (*grpc_tcp_server_cb)(
|
47
|
-
grpc_endpoint* ep,
|
42
|
+
typedef void (*grpc_tcp_server_cb)(void* arg, grpc_endpoint* ep,
|
48
43
|
grpc_pollset* accepting_pollset,
|
49
44
|
grpc_tcp_server_acceptor* acceptor);
|
50
45
|
|
51
46
|
/* Create a server, initially not bound to any ports. The caller owns one ref.
|
52
47
|
If shutdown_complete is not NULL, it will be used by
|
53
48
|
grpc_tcp_server_unref() when the ref count reaches zero. */
|
54
|
-
grpc_error* grpc_tcp_server_create(
|
55
|
-
grpc_closure* shutdown_complete,
|
49
|
+
grpc_error* grpc_tcp_server_create(grpc_closure* shutdown_complete,
|
56
50
|
const grpc_channel_args* args,
|
57
51
|
grpc_tcp_server** server);
|
58
52
|
|
59
53
|
/* Start listening to bound ports */
|
60
|
-
void grpc_tcp_server_start(
|
61
|
-
|
54
|
+
void grpc_tcp_server_start(grpc_tcp_server* server, grpc_pollset** pollsets,
|
55
|
+
size_t pollset_count,
|
62
56
|
grpc_tcp_server_cb on_accept_cb, void* cb_arg);
|
63
57
|
|
64
58
|
/* Add a port to the server, returning the newly allocated port on success, or
|
@@ -96,14 +90,9 @@ void grpc_tcp_server_shutdown_starting_add(grpc_tcp_server* s,
|
|
96
90
|
|
97
91
|
/* If the refcount drops to zero, enqueue calls on exec_ctx to
|
98
92
|
shutdown_listeners and delete s. */
|
99
|
-
void grpc_tcp_server_unref(
|
93
|
+
void grpc_tcp_server_unref(grpc_tcp_server* s);
|
100
94
|
|
101
95
|
/* Shutdown the fds of listeners. */
|
102
|
-
void grpc_tcp_server_shutdown_listeners(
|
103
|
-
grpc_tcp_server* s);
|
104
|
-
|
105
|
-
#ifdef __cplusplus
|
106
|
-
}
|
107
|
-
#endif
|
96
|
+
void grpc_tcp_server_shutdown_listeners(grpc_tcp_server* s);
|
108
97
|
|
109
98
|
#endif /* GRPC_CORE_LIB_IOMGR_TCP_SERVER_H */
|
@@ -45,6 +45,7 @@
|
|
45
45
|
#include <grpc/support/useful.h>
|
46
46
|
|
47
47
|
#include "src/core/lib/channel/channel_args.h"
|
48
|
+
#include "src/core/lib/gpr/string.h"
|
48
49
|
#include "src/core/lib/iomgr/resolve_address.h"
|
49
50
|
#include "src/core/lib/iomgr/sockaddr.h"
|
50
51
|
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
@@ -52,7 +53,6 @@
|
|
52
53
|
#include "src/core/lib/iomgr/tcp_posix.h"
|
53
54
|
#include "src/core/lib/iomgr/tcp_server_utils_posix.h"
|
54
55
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
55
|
-
#include "src/core/lib/support/string.h"
|
56
56
|
|
57
57
|
static gpr_once check_init = GPR_ONCE_INIT;
|
58
58
|
static bool has_so_reuseport = false;
|
@@ -68,8 +68,7 @@ static void init(void) {
|
|
68
68
|
#endif
|
69
69
|
}
|
70
70
|
|
71
|
-
grpc_error* grpc_tcp_server_create(
|
72
|
-
grpc_closure* shutdown_complete,
|
71
|
+
grpc_error* grpc_tcp_server_create(grpc_closure* shutdown_complete,
|
73
72
|
const grpc_channel_args* args,
|
74
73
|
grpc_tcp_server** server) {
|
75
74
|
gpr_once_init(&check_init, init);
|
@@ -116,12 +115,12 @@ grpc_error* grpc_tcp_server_create(grpc_exec_ctx* exec_ctx,
|
|
116
115
|
return GRPC_ERROR_NONE;
|
117
116
|
}
|
118
117
|
|
119
|
-
static void finish_shutdown(
|
118
|
+
static void finish_shutdown(grpc_tcp_server* s) {
|
120
119
|
gpr_mu_lock(&s->mu);
|
121
120
|
GPR_ASSERT(s->shutdown);
|
122
121
|
gpr_mu_unlock(&s->mu);
|
123
122
|
if (s->shutdown_complete != nullptr) {
|
124
|
-
GRPC_CLOSURE_SCHED(
|
123
|
+
GRPC_CLOSURE_SCHED(s->shutdown_complete, GRPC_ERROR_NONE);
|
125
124
|
}
|
126
125
|
|
127
126
|
gpr_mu_destroy(&s->mu);
|
@@ -131,19 +130,18 @@ static void finish_shutdown(grpc_exec_ctx* exec_ctx, grpc_tcp_server* s) {
|
|
131
130
|
s->head = sp->next;
|
132
131
|
gpr_free(sp);
|
133
132
|
}
|
134
|
-
grpc_channel_args_destroy(
|
133
|
+
grpc_channel_args_destroy(s->channel_args);
|
135
134
|
|
136
135
|
gpr_free(s);
|
137
136
|
}
|
138
137
|
|
139
|
-
static void destroyed_port(
|
140
|
-
grpc_error* error) {
|
138
|
+
static void destroyed_port(void* server, grpc_error* error) {
|
141
139
|
grpc_tcp_server* s = (grpc_tcp_server*)server;
|
142
140
|
gpr_mu_lock(&s->mu);
|
143
141
|
s->destroyed_ports++;
|
144
142
|
if (s->destroyed_ports == s->nports) {
|
145
143
|
gpr_mu_unlock(&s->mu);
|
146
|
-
finish_shutdown(
|
144
|
+
finish_shutdown(s);
|
147
145
|
} else {
|
148
146
|
GPR_ASSERT(s->destroyed_ports < s->nports);
|
149
147
|
gpr_mu_unlock(&s->mu);
|
@@ -153,7 +151,7 @@ static void destroyed_port(grpc_exec_ctx* exec_ctx, void* server,
|
|
153
151
|
/* called when all listening endpoints have been shutdown, so no further
|
154
152
|
events will be received on them - at this point it's safe to destroy
|
155
153
|
things */
|
156
|
-
static void deactivated_all_ports(
|
154
|
+
static void deactivated_all_ports(grpc_tcp_server* s) {
|
157
155
|
/* delete ALL the things */
|
158
156
|
gpr_mu_lock(&s->mu);
|
159
157
|
|
@@ -165,17 +163,17 @@ static void deactivated_all_ports(grpc_exec_ctx* exec_ctx, grpc_tcp_server* s) {
|
|
165
163
|
grpc_unlink_if_unix_domain_socket(&sp->addr);
|
166
164
|
GRPC_CLOSURE_INIT(&sp->destroyed_closure, destroyed_port, s,
|
167
165
|
grpc_schedule_on_exec_ctx);
|
168
|
-
grpc_fd_orphan(
|
166
|
+
grpc_fd_orphan(sp->emfd, &sp->destroyed_closure, nullptr,
|
169
167
|
false /* already_closed */, "tcp_listener_shutdown");
|
170
168
|
}
|
171
169
|
gpr_mu_unlock(&s->mu);
|
172
170
|
} else {
|
173
171
|
gpr_mu_unlock(&s->mu);
|
174
|
-
finish_shutdown(
|
172
|
+
finish_shutdown(s);
|
175
173
|
}
|
176
174
|
}
|
177
175
|
|
178
|
-
static void tcp_server_destroy(
|
176
|
+
static void tcp_server_destroy(grpc_tcp_server* s) {
|
179
177
|
gpr_mu_lock(&s->mu);
|
180
178
|
|
181
179
|
GPR_ASSERT(!s->shutdown);
|
@@ -186,18 +184,17 @@ static void tcp_server_destroy(grpc_exec_ctx* exec_ctx, grpc_tcp_server* s) {
|
|
186
184
|
grpc_tcp_listener* sp;
|
187
185
|
for (sp = s->head; sp; sp = sp->next) {
|
188
186
|
grpc_fd_shutdown(
|
189
|
-
|
190
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server destroyed"));
|
187
|
+
sp->emfd, GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server destroyed"));
|
191
188
|
}
|
192
189
|
gpr_mu_unlock(&s->mu);
|
193
190
|
} else {
|
194
191
|
gpr_mu_unlock(&s->mu);
|
195
|
-
deactivated_all_ports(
|
192
|
+
deactivated_all_ports(s);
|
196
193
|
}
|
197
194
|
}
|
198
195
|
|
199
196
|
/* event manager callback when reads are ready */
|
200
|
-
static void on_read(
|
197
|
+
static void on_read(void* arg, grpc_error* err) {
|
201
198
|
grpc_tcp_listener* sp = (grpc_tcp_listener*)arg;
|
202
199
|
grpc_pollset* read_notifier_pollset;
|
203
200
|
if (err != GRPC_ERROR_NONE) {
|
@@ -223,7 +220,7 @@ static void on_read(grpc_exec_ctx* exec_ctx, void* arg, grpc_error* err) {
|
|
223
220
|
case EINTR:
|
224
221
|
continue;
|
225
222
|
case EAGAIN:
|
226
|
-
grpc_fd_notify_on_read(
|
223
|
+
grpc_fd_notify_on_read(sp->emfd, &sp->read_closure);
|
227
224
|
return;
|
228
225
|
default:
|
229
226
|
gpr_mu_lock(&sp->server->mu);
|
@@ -249,7 +246,7 @@ static void on_read(grpc_exec_ctx* exec_ctx, void* arg, grpc_error* err) {
|
|
249
246
|
|
250
247
|
grpc_fd* fdobj = grpc_fd_create(fd, name);
|
251
248
|
|
252
|
-
grpc_pollset_add_fd(
|
249
|
+
grpc_pollset_add_fd(read_notifier_pollset, fdobj);
|
253
250
|
|
254
251
|
// Create acceptor.
|
255
252
|
grpc_tcp_server_acceptor* acceptor =
|
@@ -259,8 +256,8 @@ static void on_read(grpc_exec_ctx* exec_ctx, void* arg, grpc_error* err) {
|
|
259
256
|
acceptor->fd_index = sp->fd_index;
|
260
257
|
|
261
258
|
sp->server->on_accept_cb(
|
262
|
-
|
263
|
-
grpc_tcp_create(
|
259
|
+
sp->server->on_accept_cb_arg,
|
260
|
+
grpc_tcp_create(fdobj, sp->server->channel_args, addr_str),
|
264
261
|
read_notifier_pollset, acceptor);
|
265
262
|
|
266
263
|
gpr_free(name);
|
@@ -273,7 +270,7 @@ error:
|
|
273
270
|
gpr_mu_lock(&sp->server->mu);
|
274
271
|
if (0 == --sp->server->active_ports && sp->server->shutdown) {
|
275
272
|
gpr_mu_unlock(&sp->server->mu);
|
276
|
-
deactivated_all_ports(
|
273
|
+
deactivated_all_ports(sp->server);
|
277
274
|
} else {
|
278
275
|
gpr_mu_unlock(&sp->server->mu);
|
279
276
|
}
|
@@ -483,8 +480,8 @@ int grpc_tcp_server_port_fd(grpc_tcp_server* s, unsigned port_index,
|
|
483
480
|
return -1;
|
484
481
|
}
|
485
482
|
|
486
|
-
void grpc_tcp_server_start(
|
487
|
-
|
483
|
+
void grpc_tcp_server_start(grpc_tcp_server* s, grpc_pollset** pollsets,
|
484
|
+
size_t pollset_count,
|
488
485
|
grpc_tcp_server_cb on_accept_cb,
|
489
486
|
void* on_accept_cb_arg) {
|
490
487
|
size_t i;
|
@@ -504,20 +501,20 @@ void grpc_tcp_server_start(grpc_exec_ctx* exec_ctx, grpc_tcp_server* s,
|
|
504
501
|
GPR_ASSERT(GRPC_LOG_IF_ERROR(
|
505
502
|
"clone_port", clone_port(sp, (unsigned)(pollset_count - 1))));
|
506
503
|
for (i = 0; i < pollset_count; i++) {
|
507
|
-
grpc_pollset_add_fd(
|
504
|
+
grpc_pollset_add_fd(pollsets[i], sp->emfd);
|
508
505
|
GRPC_CLOSURE_INIT(&sp->read_closure, on_read, sp,
|
509
506
|
grpc_schedule_on_exec_ctx);
|
510
|
-
grpc_fd_notify_on_read(
|
507
|
+
grpc_fd_notify_on_read(sp->emfd, &sp->read_closure);
|
511
508
|
s->active_ports++;
|
512
509
|
sp = sp->next;
|
513
510
|
}
|
514
511
|
} else {
|
515
512
|
for (i = 0; i < pollset_count; i++) {
|
516
|
-
grpc_pollset_add_fd(
|
513
|
+
grpc_pollset_add_fd(pollsets[i], sp->emfd);
|
517
514
|
}
|
518
515
|
GRPC_CLOSURE_INIT(&sp->read_closure, on_read, sp,
|
519
516
|
grpc_schedule_on_exec_ctx);
|
520
|
-
grpc_fd_notify_on_read(
|
517
|
+
grpc_fd_notify_on_read(sp->emfd, &sp->read_closure);
|
521
518
|
s->active_ports++;
|
522
519
|
sp = sp->next;
|
523
520
|
}
|
@@ -538,25 +535,24 @@ void grpc_tcp_server_shutdown_starting_add(grpc_tcp_server* s,
|
|
538
535
|
gpr_mu_unlock(&s->mu);
|
539
536
|
}
|
540
537
|
|
541
|
-
void grpc_tcp_server_unref(
|
538
|
+
void grpc_tcp_server_unref(grpc_tcp_server* s) {
|
542
539
|
if (gpr_unref(&s->refs)) {
|
543
|
-
grpc_tcp_server_shutdown_listeners(
|
540
|
+
grpc_tcp_server_shutdown_listeners(s);
|
544
541
|
gpr_mu_lock(&s->mu);
|
545
|
-
GRPC_CLOSURE_LIST_SCHED(
|
542
|
+
GRPC_CLOSURE_LIST_SCHED(&s->shutdown_starting);
|
546
543
|
gpr_mu_unlock(&s->mu);
|
547
|
-
tcp_server_destroy(
|
544
|
+
tcp_server_destroy(s);
|
548
545
|
}
|
549
546
|
}
|
550
547
|
|
551
|
-
void grpc_tcp_server_shutdown_listeners(
|
552
|
-
grpc_tcp_server* s) {
|
548
|
+
void grpc_tcp_server_shutdown_listeners(grpc_tcp_server* s) {
|
553
549
|
gpr_mu_lock(&s->mu);
|
554
550
|
s->shutdown_listeners = true;
|
555
551
|
/* shutdown all fd's */
|
556
552
|
if (s->active_ports) {
|
557
553
|
grpc_tcp_listener* sp;
|
558
554
|
for (sp = s->head; sp; sp = sp->next) {
|
559
|
-
grpc_fd_shutdown(
|
555
|
+
grpc_fd_shutdown(sp->emfd,
|
560
556
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server shutdown"));
|
561
557
|
}
|
562
558
|
}
|
@@ -24,10 +24,6 @@
|
|
24
24
|
#include "src/core/lib/iomgr/socket_utils_posix.h"
|
25
25
|
#include "src/core/lib/iomgr/tcp_server.h"
|
26
26
|
|
27
|
-
#ifdef __cplusplus
|
28
|
-
extern "C" {
|
29
|
-
#endif
|
30
|
-
|
31
27
|
/* one listening port */
|
32
28
|
typedef struct grpc_tcp_listener {
|
33
29
|
int fd;
|
@@ -121,8 +117,4 @@ grpc_error* grpc_tcp_server_prepare_socket(int fd,
|
|
121
117
|
/* Ruturn true if the platform supports ifaddrs */
|
122
118
|
bool grpc_tcp_server_have_ifaddrs(void);
|
123
119
|
|
124
|
-
#ifdef __cplusplus
|
125
|
-
}
|
126
|
-
#endif
|
127
|
-
|
128
120
|
#endif /* GRPC_CORE_LIB_IOMGR_TCP_SERVER_UTILS_POSIX_H */
|
@@ -55,7 +55,7 @@ static void init_max_accept_queue_size(void) {
|
|
55
55
|
if (fgets(buf, sizeof buf, fp)) {
|
56
56
|
char* end;
|
57
57
|
long i = strtol(buf, &end, 10);
|
58
|
-
if (i > 0 && i <= INT_MAX && end && *end ==
|
58
|
+
if (i > 0 && i <= INT_MAX && end && *end == '\n') {
|
59
59
|
n = (int)i;
|
60
60
|
}
|
61
61
|
}
|
@@ -73,8 +73,7 @@ struct grpc_tcp_server {
|
|
73
73
|
grpc_resource_quota* resource_quota;
|
74
74
|
};
|
75
75
|
|
76
|
-
grpc_error* grpc_tcp_server_create(
|
77
|
-
grpc_closure* shutdown_complete,
|
76
|
+
grpc_error* grpc_tcp_server_create(grpc_closure* shutdown_complete,
|
78
77
|
const grpc_channel_args* args,
|
79
78
|
grpc_tcp_server** server) {
|
80
79
|
grpc_tcp_server* s = (grpc_tcp_server*)gpr_malloc(sizeof(grpc_tcp_server));
|
@@ -82,11 +81,11 @@ grpc_error* grpc_tcp_server_create(grpc_exec_ctx* exec_ctx,
|
|
82
81
|
for (size_t i = 0; i < (args == NULL ? 0 : args->num_args); i++) {
|
83
82
|
if (0 == strcmp(GRPC_ARG_RESOURCE_QUOTA, args->args[i].key)) {
|
84
83
|
if (args->args[i].type == GRPC_ARG_POINTER) {
|
85
|
-
grpc_resource_quota_unref_internal(
|
84
|
+
grpc_resource_quota_unref_internal(s->resource_quota);
|
86
85
|
s->resource_quota = grpc_resource_quota_ref_internal(
|
87
86
|
(grpc_resource_quota*)args->args[i].value.pointer.p);
|
88
87
|
} else {
|
89
|
-
grpc_resource_quota_unref_internal(
|
88
|
+
grpc_resource_quota_unref_internal(s->resource_quota);
|
90
89
|
gpr_free(s);
|
91
90
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
92
91
|
GRPC_ARG_RESOURCE_QUOTA " must be a pointer to a buffer pool");
|
@@ -119,10 +118,10 @@ void grpc_tcp_server_shutdown_starting_add(grpc_tcp_server* s,
|
|
119
118
|
GRPC_ERROR_NONE);
|
120
119
|
}
|
121
120
|
|
122
|
-
static void finish_shutdown(
|
121
|
+
static void finish_shutdown(grpc_tcp_server* s) {
|
123
122
|
GPR_ASSERT(s->shutdown);
|
124
123
|
if (s->shutdown_complete != NULL) {
|
125
|
-
GRPC_CLOSURE_SCHED(
|
124
|
+
GRPC_CLOSURE_SCHED(s->shutdown_complete, GRPC_ERROR_NONE);
|
126
125
|
}
|
127
126
|
|
128
127
|
while (s->head) {
|
@@ -132,18 +131,17 @@ static void finish_shutdown(grpc_exec_ctx* exec_ctx, grpc_tcp_server* s) {
|
|
132
131
|
gpr_free(sp->handle);
|
133
132
|
gpr_free(sp);
|
134
133
|
}
|
135
|
-
grpc_resource_quota_unref_internal(
|
134
|
+
grpc_resource_quota_unref_internal(s->resource_quota);
|
136
135
|
gpr_free(s);
|
137
136
|
}
|
138
137
|
|
139
138
|
static void handle_close_callback(uv_handle_t* handle) {
|
140
139
|
grpc_tcp_listener* sp = (grpc_tcp_listener*)handle->data;
|
141
|
-
|
140
|
+
grpc_core::ExecCtx exec_ctx;
|
142
141
|
sp->server->open_ports--;
|
143
142
|
if (sp->server->open_ports == 0 && sp->server->shutdown) {
|
144
|
-
finish_shutdown(
|
143
|
+
finish_shutdown(sp->server);
|
145
144
|
}
|
146
|
-
grpc_exec_ctx_finish(&exec_ctx);
|
147
145
|
}
|
148
146
|
|
149
147
|
static void close_listener(grpc_tcp_listener* sp) {
|
@@ -153,7 +151,7 @@ static void close_listener(grpc_tcp_listener* sp) {
|
|
153
151
|
}
|
154
152
|
}
|
155
153
|
|
156
|
-
static void tcp_server_destroy(
|
154
|
+
static void tcp_server_destroy(grpc_tcp_server* s) {
|
157
155
|
int immediately_done = 0;
|
158
156
|
grpc_tcp_listener* sp;
|
159
157
|
|
@@ -168,28 +166,22 @@ static void tcp_server_destroy(grpc_exec_ctx* exec_ctx, grpc_tcp_server* s) {
|
|
168
166
|
}
|
169
167
|
|
170
168
|
if (immediately_done) {
|
171
|
-
finish_shutdown(
|
169
|
+
finish_shutdown(s);
|
172
170
|
}
|
173
171
|
}
|
174
172
|
|
175
|
-
void grpc_tcp_server_unref(
|
173
|
+
void grpc_tcp_server_unref(grpc_tcp_server* s) {
|
176
174
|
GRPC_UV_ASSERT_SAME_THREAD();
|
177
175
|
if (gpr_unref(&s->refs)) {
|
178
176
|
/* Complete shutdown_starting work before destroying. */
|
179
|
-
|
180
|
-
GRPC_CLOSURE_LIST_SCHED(&
|
181
|
-
|
182
|
-
|
183
|
-
tcp_server_destroy(&local_exec_ctx, s);
|
184
|
-
grpc_exec_ctx_finish(&local_exec_ctx);
|
185
|
-
} else {
|
186
|
-
grpc_exec_ctx_finish(&local_exec_ctx);
|
187
|
-
tcp_server_destroy(exec_ctx, s);
|
188
|
-
}
|
177
|
+
grpc_core::ExecCtx exec_ctx;
|
178
|
+
GRPC_CLOSURE_LIST_SCHED(&s->shutdown_starting);
|
179
|
+
grpc_core::ExecCtx::Get()->Flush();
|
180
|
+
tcp_server_destroy(s);
|
189
181
|
}
|
190
182
|
}
|
191
183
|
|
192
|
-
static void finish_accept(
|
184
|
+
static void finish_accept(grpc_tcp_listener* sp) {
|
193
185
|
grpc_tcp_server_acceptor* acceptor =
|
194
186
|
(grpc_tcp_server_acceptor*)gpr_malloc(sizeof(*acceptor));
|
195
187
|
uv_tcp_t* client = NULL;
|
@@ -225,14 +217,13 @@ static void finish_accept(grpc_exec_ctx* exec_ctx, grpc_tcp_listener* sp) {
|
|
225
217
|
acceptor->from_server = sp->server;
|
226
218
|
acceptor->port_index = sp->port_index;
|
227
219
|
acceptor->fd_index = 0;
|
228
|
-
sp->server->on_accept_cb(
|
229
|
-
acceptor);
|
220
|
+
sp->server->on_accept_cb(sp->server->on_accept_cb_arg, ep, NULL, acceptor);
|
230
221
|
gpr_free(peer_name_string);
|
231
222
|
}
|
232
223
|
|
233
224
|
static void on_connect(uv_stream_t* server, int status) {
|
234
225
|
grpc_tcp_listener* sp = (grpc_tcp_listener*)server->data;
|
235
|
-
|
226
|
+
grpc_core::ExecCtx exec_ctx;
|
236
227
|
|
237
228
|
if (status < 0) {
|
238
229
|
switch (status) {
|
@@ -253,11 +244,10 @@ static void on_connect(uv_stream_t* server, int status) {
|
|
253
244
|
|
254
245
|
// Create acceptor.
|
255
246
|
if (sp->server->on_accept_cb) {
|
256
|
-
finish_accept(
|
247
|
+
finish_accept(sp);
|
257
248
|
} else {
|
258
249
|
sp->has_pending_connection = true;
|
259
250
|
}
|
260
|
-
grpc_exec_ctx_finish(&exec_ctx);
|
261
251
|
}
|
262
252
|
|
263
253
|
static grpc_error* add_addr_to_server(grpc_tcp_server* s,
|
@@ -454,8 +444,8 @@ grpc_error* grpc_tcp_server_add_port(grpc_tcp_server* s,
|
|
454
444
|
return error;
|
455
445
|
}
|
456
446
|
|
457
|
-
void grpc_tcp_server_start(
|
458
|
-
|
447
|
+
void grpc_tcp_server_start(grpc_tcp_server* server, grpc_pollset** pollsets,
|
448
|
+
size_t pollset_count,
|
459
449
|
grpc_tcp_server_cb on_accept_cb, void* cb_arg) {
|
460
450
|
grpc_tcp_listener* sp;
|
461
451
|
(void)pollsets;
|
@@ -470,13 +460,12 @@ void grpc_tcp_server_start(grpc_exec_ctx* exec_ctx, grpc_tcp_server* server,
|
|
470
460
|
server->on_accept_cb_arg = cb_arg;
|
471
461
|
for (sp = server->head; sp; sp = sp->next) {
|
472
462
|
if (sp->has_pending_connection) {
|
473
|
-
finish_accept(
|
463
|
+
finish_accept(sp);
|
474
464
|
sp->has_pending_connection = false;
|
475
465
|
}
|
476
466
|
}
|
477
467
|
}
|
478
468
|
|
479
|
-
void grpc_tcp_server_shutdown_listeners(
|
480
|
-
grpc_tcp_server* s) {}
|
469
|
+
void grpc_tcp_server_shutdown_listeners(grpc_tcp_server* s) {}
|
481
470
|
|
482
471
|
#endif /* GRPC_UV */
|