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
@@ -24,10 +24,6 @@
|
|
24
24
|
#include "src/core/lib/debug/trace.h"
|
25
25
|
#include "src/core/lib/transport/transport.h"
|
26
26
|
|
27
|
-
#ifdef __cplusplus
|
28
|
-
extern "C" {
|
29
|
-
#endif
|
30
|
-
|
31
27
|
extern const grpc_channel_filter grpc_server_top_filter;
|
32
28
|
|
33
29
|
/** Lightweight tracing of server channel state */
|
@@ -35,17 +31,16 @@ extern grpc_core::TraceFlag grpc_server_channel_trace;
|
|
35
31
|
|
36
32
|
/* Add a listener to the server: when the server starts, it will call start,
|
37
33
|
and when it shuts down, it will call destroy */
|
38
|
-
void grpc_server_add_listener(
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
34
|
+
void grpc_server_add_listener(grpc_server* server, void* listener,
|
35
|
+
void (*start)(grpc_server* server, void* arg,
|
36
|
+
grpc_pollset** pollsets,
|
37
|
+
size_t npollsets),
|
38
|
+
void (*destroy)(grpc_server* server, void* arg,
|
39
|
+
grpc_closure* on_done));
|
44
40
|
|
45
41
|
/* Setup a transport - creates a channel stack, binds the transport to the
|
46
42
|
server */
|
47
|
-
void grpc_server_setup_transport(
|
48
|
-
grpc_transport* transport,
|
43
|
+
void grpc_server_setup_transport(grpc_server* server, grpc_transport* transport,
|
49
44
|
grpc_pollset* accepting_pollset,
|
50
45
|
const grpc_channel_args* args);
|
51
46
|
|
@@ -58,8 +53,4 @@ int grpc_server_has_open_connections(grpc_server* server);
|
|
58
53
|
void grpc_server_get_pollsets(grpc_server* server, grpc_pollset*** pollsets,
|
59
54
|
size_t* pollset_count);
|
60
55
|
|
61
|
-
#ifdef __cplusplus
|
62
|
-
}
|
63
|
-
#endif
|
64
|
-
|
65
56
|
#endif /* GRPC_CORE_LIB_SURFACE_SERVER_H */
|
@@ -22,15 +22,7 @@
|
|
22
22
|
#include <grpc/slice.h>
|
23
23
|
#include "src/core/lib/iomgr/error.h"
|
24
24
|
|
25
|
-
#ifdef __cplusplus
|
26
|
-
extern "C" {
|
27
|
-
#endif
|
28
|
-
|
29
25
|
grpc_error* grpc_validate_header_key_is_legal(grpc_slice slice);
|
30
26
|
grpc_error* grpc_validate_header_nonbin_value_is_legal(grpc_slice slice);
|
31
27
|
|
32
|
-
#ifdef __cplusplus
|
33
|
-
}
|
34
|
-
#endif
|
35
|
-
|
36
28
|
#endif /* GRPC_CORE_LIB_SURFACE_VALIDATE_METADATA_H */
|
@@ -21,6 +21,6 @@
|
|
21
21
|
|
22
22
|
#include <grpc/grpc.h>
|
23
23
|
|
24
|
-
const char* grpc_version_string(void) { return "5.0.0"; }
|
24
|
+
const char* grpc_version_string(void) { return "5.0.0-pre1"; }
|
25
25
|
|
26
|
-
const char* grpc_g_stands_for(void) { return "
|
26
|
+
const char* grpc_g_stands_for(void) { return "glossy"; }
|
@@ -37,7 +37,7 @@ BdpEstimator::BdpEstimator(const char* name)
|
|
37
37
|
bw_est_(0),
|
38
38
|
name_(name) {}
|
39
39
|
|
40
|
-
grpc_millis BdpEstimator::CompletePing(
|
40
|
+
grpc_millis BdpEstimator::CompletePing() {
|
41
41
|
gpr_timespec now = gpr_now(GPR_CLOCK_MONOTONIC);
|
42
42
|
gpr_timespec dt_ts = gpr_time_sub(now, ping_start_time_);
|
43
43
|
double dt = (double)dt_ts.tv_sec + 1e-9 * (double)dt_ts.tv_nsec;
|
@@ -78,7 +78,7 @@ grpc_millis BdpEstimator::CompletePing(grpc_exec_ctx* exec_ctx) {
|
|
78
78
|
}
|
79
79
|
ping_state_ = PingState::UNSCHEDULED;
|
80
80
|
accumulator_ = 0;
|
81
|
-
return
|
81
|
+
return grpc_core::ExecCtx::Get()->Now() + inter_ping_delay_;
|
82
82
|
}
|
83
83
|
|
84
84
|
} // namespace grpc_core
|
@@ -73,7 +73,7 @@ class BdpEstimator {
|
|
73
73
|
}
|
74
74
|
|
75
75
|
// Completes a previously started ping, returns when to schedule the next one
|
76
|
-
grpc_millis CompletePing(
|
76
|
+
grpc_millis CompletePing();
|
77
77
|
|
78
78
|
private:
|
79
79
|
enum class PingState { UNSCHEDULED, SCHEDULED, STARTED };
|
@@ -25,34 +25,28 @@
|
|
25
25
|
|
26
26
|
#include "src/core/lib/slice/slice_internal.h"
|
27
27
|
|
28
|
-
bool grpc_byte_stream_next(
|
29
|
-
grpc_byte_stream* byte_stream, size_t max_size_hint,
|
28
|
+
bool grpc_byte_stream_next(grpc_byte_stream* byte_stream, size_t max_size_hint,
|
30
29
|
grpc_closure* on_complete) {
|
31
|
-
return byte_stream->vtable->next(
|
32
|
-
on_complete);
|
30
|
+
return byte_stream->vtable->next(byte_stream, max_size_hint, on_complete);
|
33
31
|
}
|
34
32
|
|
35
|
-
grpc_error* grpc_byte_stream_pull(
|
36
|
-
grpc_byte_stream* byte_stream,
|
33
|
+
grpc_error* grpc_byte_stream_pull(grpc_byte_stream* byte_stream,
|
37
34
|
grpc_slice* slice) {
|
38
|
-
return byte_stream->vtable->pull(
|
35
|
+
return byte_stream->vtable->pull(byte_stream, slice);
|
39
36
|
}
|
40
37
|
|
41
|
-
void grpc_byte_stream_shutdown(
|
42
|
-
grpc_byte_stream* byte_stream,
|
38
|
+
void grpc_byte_stream_shutdown(grpc_byte_stream* byte_stream,
|
43
39
|
grpc_error* error) {
|
44
|
-
byte_stream->vtable->shutdown(
|
40
|
+
byte_stream->vtable->shutdown(byte_stream, error);
|
45
41
|
}
|
46
42
|
|
47
|
-
void grpc_byte_stream_destroy(
|
48
|
-
|
49
|
-
byte_stream->vtable->destroy(exec_ctx, byte_stream);
|
43
|
+
void grpc_byte_stream_destroy(grpc_byte_stream* byte_stream) {
|
44
|
+
byte_stream->vtable->destroy(byte_stream);
|
50
45
|
}
|
51
46
|
|
52
47
|
// grpc_slice_buffer_stream
|
53
48
|
|
54
|
-
static bool slice_buffer_stream_next(
|
55
|
-
grpc_byte_stream* byte_stream,
|
49
|
+
static bool slice_buffer_stream_next(grpc_byte_stream* byte_stream,
|
56
50
|
size_t max_size_hint,
|
57
51
|
grpc_closure* on_complete) {
|
58
52
|
grpc_slice_buffer_stream* stream = (grpc_slice_buffer_stream*)byte_stream;
|
@@ -60,8 +54,7 @@ static bool slice_buffer_stream_next(grpc_exec_ctx* exec_ctx,
|
|
60
54
|
return true;
|
61
55
|
}
|
62
56
|
|
63
|
-
static grpc_error* slice_buffer_stream_pull(
|
64
|
-
grpc_byte_stream* byte_stream,
|
57
|
+
static grpc_error* slice_buffer_stream_pull(grpc_byte_stream* byte_stream,
|
65
58
|
grpc_slice* slice) {
|
66
59
|
grpc_slice_buffer_stream* stream = (grpc_slice_buffer_stream*)byte_stream;
|
67
60
|
if (stream->shutdown_error != GRPC_ERROR_NONE) {
|
@@ -74,18 +67,16 @@ static grpc_error* slice_buffer_stream_pull(grpc_exec_ctx* exec_ctx,
|
|
74
67
|
return GRPC_ERROR_NONE;
|
75
68
|
}
|
76
69
|
|
77
|
-
static void slice_buffer_stream_shutdown(
|
78
|
-
grpc_byte_stream* byte_stream,
|
70
|
+
static void slice_buffer_stream_shutdown(grpc_byte_stream* byte_stream,
|
79
71
|
grpc_error* error) {
|
80
72
|
grpc_slice_buffer_stream* stream = (grpc_slice_buffer_stream*)byte_stream;
|
81
73
|
GRPC_ERROR_UNREF(stream->shutdown_error);
|
82
74
|
stream->shutdown_error = error;
|
83
75
|
}
|
84
76
|
|
85
|
-
static void slice_buffer_stream_destroy(
|
86
|
-
grpc_byte_stream* byte_stream) {
|
77
|
+
static void slice_buffer_stream_destroy(grpc_byte_stream* byte_stream) {
|
87
78
|
grpc_slice_buffer_stream* stream = (grpc_slice_buffer_stream*)byte_stream;
|
88
|
-
grpc_slice_buffer_reset_and_unref_internal(
|
79
|
+
grpc_slice_buffer_reset_and_unref_internal(stream->backing_buffer);
|
89
80
|
GRPC_ERROR_UNREF(stream->shutdown_error);
|
90
81
|
}
|
91
82
|
|
@@ -113,25 +104,22 @@ void grpc_byte_stream_cache_init(grpc_byte_stream_cache* cache,
|
|
113
104
|
grpc_slice_buffer_init(&cache->cache_buffer);
|
114
105
|
}
|
115
106
|
|
116
|
-
void grpc_byte_stream_cache_destroy(
|
117
|
-
|
118
|
-
|
119
|
-
grpc_slice_buffer_destroy_internal(exec_ctx, &cache->cache_buffer);
|
107
|
+
void grpc_byte_stream_cache_destroy(grpc_byte_stream_cache* cache) {
|
108
|
+
grpc_byte_stream_destroy(cache->underlying_stream);
|
109
|
+
grpc_slice_buffer_destroy_internal(&cache->cache_buffer);
|
120
110
|
}
|
121
111
|
|
122
|
-
static bool caching_byte_stream_next(
|
123
|
-
grpc_byte_stream* byte_stream,
|
112
|
+
static bool caching_byte_stream_next(grpc_byte_stream* byte_stream,
|
124
113
|
size_t max_size_hint,
|
125
114
|
grpc_closure* on_complete) {
|
126
115
|
grpc_caching_byte_stream* stream = (grpc_caching_byte_stream*)byte_stream;
|
127
116
|
if (stream->shutdown_error != GRPC_ERROR_NONE) return true;
|
128
117
|
if (stream->cursor < stream->cache->cache_buffer.count) return true;
|
129
|
-
return grpc_byte_stream_next(
|
130
|
-
|
118
|
+
return grpc_byte_stream_next(stream->cache->underlying_stream, max_size_hint,
|
119
|
+
on_complete);
|
131
120
|
}
|
132
121
|
|
133
|
-
static grpc_error* caching_byte_stream_pull(
|
134
|
-
grpc_byte_stream* byte_stream,
|
122
|
+
static grpc_error* caching_byte_stream_pull(grpc_byte_stream* byte_stream,
|
135
123
|
grpc_slice* slice) {
|
136
124
|
grpc_caching_byte_stream* stream = (grpc_caching_byte_stream*)byte_stream;
|
137
125
|
if (stream->shutdown_error != GRPC_ERROR_NONE) {
|
@@ -144,7 +132,7 @@ static grpc_error* caching_byte_stream_pull(grpc_exec_ctx* exec_ctx,
|
|
144
132
|
return GRPC_ERROR_NONE;
|
145
133
|
}
|
146
134
|
grpc_error* error =
|
147
|
-
grpc_byte_stream_pull(
|
135
|
+
grpc_byte_stream_pull(stream->cache->underlying_stream, slice);
|
148
136
|
if (error == GRPC_ERROR_NONE) {
|
149
137
|
++stream->cursor;
|
150
138
|
grpc_slice_buffer_add(&stream->cache->cache_buffer,
|
@@ -153,17 +141,15 @@ static grpc_error* caching_byte_stream_pull(grpc_exec_ctx* exec_ctx,
|
|
153
141
|
return error;
|
154
142
|
}
|
155
143
|
|
156
|
-
static void caching_byte_stream_shutdown(
|
157
|
-
grpc_byte_stream* byte_stream,
|
144
|
+
static void caching_byte_stream_shutdown(grpc_byte_stream* byte_stream,
|
158
145
|
grpc_error* error) {
|
159
146
|
grpc_caching_byte_stream* stream = (grpc_caching_byte_stream*)byte_stream;
|
160
147
|
GRPC_ERROR_UNREF(stream->shutdown_error);
|
161
148
|
stream->shutdown_error = GRPC_ERROR_REF(error);
|
162
|
-
grpc_byte_stream_shutdown(
|
149
|
+
grpc_byte_stream_shutdown(stream->cache->underlying_stream, error);
|
163
150
|
}
|
164
151
|
|
165
|
-
static void caching_byte_stream_destroy(
|
166
|
-
grpc_byte_stream* byte_stream) {
|
152
|
+
static void caching_byte_stream_destroy(grpc_byte_stream* byte_stream) {
|
167
153
|
grpc_caching_byte_stream* stream = (grpc_caching_byte_stream*)byte_stream;
|
168
154
|
GRPC_ERROR_UNREF(stream->shutdown_error);
|
169
155
|
}
|
@@ -28,20 +28,14 @@
|
|
28
28
|
/** Mask of all valid internal flags. */
|
29
29
|
#define GRPC_WRITE_INTERNAL_USED_MASK (GRPC_WRITE_INTERNAL_COMPRESS)
|
30
30
|
|
31
|
-
#ifdef __cplusplus
|
32
|
-
extern "C" {
|
33
|
-
#endif
|
34
|
-
|
35
31
|
typedef struct grpc_byte_stream grpc_byte_stream;
|
36
32
|
|
37
33
|
typedef struct {
|
38
|
-
bool (*next)(
|
39
|
-
|
40
|
-
grpc_error* (*pull)(
|
41
|
-
|
42
|
-
void (*
|
43
|
-
grpc_error* error);
|
44
|
-
void (*destroy)(grpc_exec_ctx* exec_ctx, grpc_byte_stream* byte_stream);
|
34
|
+
bool (*next)(grpc_byte_stream* byte_stream, size_t max_size_hint,
|
35
|
+
grpc_closure* on_complete);
|
36
|
+
grpc_error* (*pull)(grpc_byte_stream* byte_stream, grpc_slice* slice);
|
37
|
+
void (*shutdown)(grpc_byte_stream* byte_stream, grpc_error* error);
|
38
|
+
void (*destroy)(grpc_byte_stream* byte_stream);
|
45
39
|
} grpc_byte_stream_vtable;
|
46
40
|
|
47
41
|
struct grpc_byte_stream {
|
@@ -56,8 +50,7 @@ struct grpc_byte_stream {
|
|
56
50
|
//
|
57
51
|
// max_size_hint can be set as a hint as to the maximum number
|
58
52
|
// of bytes that would be acceptable to read.
|
59
|
-
bool grpc_byte_stream_next(
|
60
|
-
grpc_byte_stream* byte_stream, size_t max_size_hint,
|
53
|
+
bool grpc_byte_stream_next(grpc_byte_stream* byte_stream, size_t max_size_hint,
|
61
54
|
grpc_closure* on_complete);
|
62
55
|
|
63
56
|
// Returns the next slice in the byte stream when it is ready (indicated by
|
@@ -65,8 +58,7 @@ bool grpc_byte_stream_next(grpc_exec_ctx* exec_ctx,
|
|
65
58
|
// grpc_byte_stream_next is called).
|
66
59
|
//
|
67
60
|
// Once a slice is returned into *slice, it is owned by the caller.
|
68
|
-
grpc_error* grpc_byte_stream_pull(
|
69
|
-
grpc_byte_stream* byte_stream,
|
61
|
+
grpc_error* grpc_byte_stream_pull(grpc_byte_stream* byte_stream,
|
70
62
|
grpc_slice* slice);
|
71
63
|
|
72
64
|
// Shuts down the byte stream.
|
@@ -76,12 +68,10 @@ grpc_error* grpc_byte_stream_pull(grpc_exec_ctx* exec_ctx,
|
|
76
68
|
//
|
77
69
|
// The next call to grpc_byte_stream_pull() (if any) will return the error
|
78
70
|
// passed to grpc_byte_stream_shutdown().
|
79
|
-
void grpc_byte_stream_shutdown(
|
80
|
-
grpc_byte_stream* byte_stream,
|
71
|
+
void grpc_byte_stream_shutdown(grpc_byte_stream* byte_stream,
|
81
72
|
grpc_error* error);
|
82
73
|
|
83
|
-
void grpc_byte_stream_destroy(
|
84
|
-
grpc_byte_stream* byte_stream);
|
74
|
+
void grpc_byte_stream_destroy(grpc_byte_stream* byte_stream);
|
85
75
|
|
86
76
|
// grpc_slice_buffer_stream
|
87
77
|
//
|
@@ -123,8 +113,7 @@ void grpc_byte_stream_cache_init(grpc_byte_stream_cache* cache,
|
|
123
113
|
grpc_byte_stream* underlying_stream);
|
124
114
|
|
125
115
|
// Must not be called while still in use by a grpc_caching_byte_stream.
|
126
|
-
void grpc_byte_stream_cache_destroy(
|
127
|
-
grpc_byte_stream_cache* cache);
|
116
|
+
void grpc_byte_stream_cache_destroy(grpc_byte_stream_cache* cache);
|
128
117
|
|
129
118
|
typedef struct {
|
130
119
|
grpc_byte_stream base;
|
@@ -139,8 +128,4 @@ void grpc_caching_byte_stream_init(grpc_caching_byte_stream* stream,
|
|
139
128
|
// Resets the byte stream to the start of the underlying stream.
|
140
129
|
void grpc_caching_byte_stream_reset(grpc_caching_byte_stream* stream);
|
141
130
|
|
142
|
-
#ifdef __cplusplus
|
143
|
-
}
|
144
|
-
#endif
|
145
|
-
|
146
131
|
#endif /* GRPC_CORE_LIB_TRANSPORT_BYTE_STREAM_H */
|
@@ -51,8 +51,7 @@ void grpc_connectivity_state_init(grpc_connectivity_state_tracker* tracker,
|
|
51
51
|
tracker->name = gpr_strdup(name);
|
52
52
|
}
|
53
53
|
|
54
|
-
void grpc_connectivity_state_destroy(
|
55
|
-
grpc_connectivity_state_tracker* tracker) {
|
54
|
+
void grpc_connectivity_state_destroy(grpc_connectivity_state_tracker* tracker) {
|
56
55
|
grpc_error* error;
|
57
56
|
grpc_connectivity_state_watcher* w;
|
58
57
|
while ((w = tracker->watchers)) {
|
@@ -65,7 +64,7 @@ void grpc_connectivity_state_destroy(grpc_exec_ctx* exec_ctx,
|
|
65
64
|
error =
|
66
65
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Shutdown connectivity owner");
|
67
66
|
}
|
68
|
-
GRPC_CLOSURE_SCHED(
|
67
|
+
GRPC_CLOSURE_SCHED(w->notify, error);
|
69
68
|
gpr_free(w);
|
70
69
|
}
|
71
70
|
GRPC_ERROR_UNREF(tracker->current_error);
|
@@ -105,8 +104,8 @@ bool grpc_connectivity_state_has_watchers(
|
|
105
104
|
}
|
106
105
|
|
107
106
|
bool grpc_connectivity_state_notify_on_state_change(
|
108
|
-
|
109
|
-
|
107
|
+
grpc_connectivity_state_tracker* tracker, grpc_connectivity_state* current,
|
108
|
+
grpc_closure* notify) {
|
110
109
|
grpc_connectivity_state cur =
|
111
110
|
(grpc_connectivity_state)gpr_atm_no_barrier_load(
|
112
111
|
&tracker->current_state_atm);
|
@@ -123,7 +122,7 @@ bool grpc_connectivity_state_notify_on_state_change(
|
|
123
122
|
if (current == nullptr) {
|
124
123
|
grpc_connectivity_state_watcher* w = tracker->watchers;
|
125
124
|
if (w != nullptr && w->notify == notify) {
|
126
|
-
GRPC_CLOSURE_SCHED(
|
125
|
+
GRPC_CLOSURE_SCHED(notify, GRPC_ERROR_CANCELLED);
|
127
126
|
tracker->watchers = w->next;
|
128
127
|
gpr_free(w);
|
129
128
|
return false;
|
@@ -131,7 +130,7 @@ bool grpc_connectivity_state_notify_on_state_change(
|
|
131
130
|
while (w != nullptr) {
|
132
131
|
grpc_connectivity_state_watcher* rm_candidate = w->next;
|
133
132
|
if (rm_candidate != nullptr && rm_candidate->notify == notify) {
|
134
|
-
GRPC_CLOSURE_SCHED(
|
133
|
+
GRPC_CLOSURE_SCHED(notify, GRPC_ERROR_CANCELLED);
|
135
134
|
w->next = w->next->next;
|
136
135
|
gpr_free(rm_candidate);
|
137
136
|
return false;
|
@@ -142,8 +141,7 @@ bool grpc_connectivity_state_notify_on_state_change(
|
|
142
141
|
} else {
|
143
142
|
if (cur != *current) {
|
144
143
|
*current = cur;
|
145
|
-
GRPC_CLOSURE_SCHED(
|
146
|
-
GRPC_ERROR_REF(tracker->current_error));
|
144
|
+
GRPC_CLOSURE_SCHED(notify, GRPC_ERROR_REF(tracker->current_error));
|
147
145
|
} else {
|
148
146
|
grpc_connectivity_state_watcher* w =
|
149
147
|
(grpc_connectivity_state_watcher*)gpr_malloc(sizeof(*w));
|
@@ -156,8 +154,7 @@ bool grpc_connectivity_state_notify_on_state_change(
|
|
156
154
|
}
|
157
155
|
}
|
158
156
|
|
159
|
-
void grpc_connectivity_state_set(
|
160
|
-
grpc_connectivity_state_tracker* tracker,
|
157
|
+
void grpc_connectivity_state_set(grpc_connectivity_state_tracker* tracker,
|
161
158
|
grpc_connectivity_state state,
|
162
159
|
grpc_error* error, const char* reason) {
|
163
160
|
grpc_connectivity_state cur =
|
@@ -195,8 +192,7 @@ void grpc_connectivity_state_set(grpc_exec_ctx* exec_ctx,
|
|
195
192
|
gpr_log(GPR_DEBUG, "NOTIFY: %p %s: %p", tracker, tracker->name,
|
196
193
|
w->notify);
|
197
194
|
}
|
198
|
-
GRPC_CLOSURE_SCHED(
|
199
|
-
GRPC_ERROR_REF(tracker->current_error));
|
195
|
+
GRPC_CLOSURE_SCHED(w->notify, GRPC_ERROR_REF(tracker->current_error));
|
200
196
|
gpr_free(w);
|
201
197
|
}
|
202
198
|
}
|
@@ -23,10 +23,6 @@
|
|
23
23
|
#include "src/core/lib/debug/trace.h"
|
24
24
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
25
25
|
|
26
|
-
#ifdef __cplusplus
|
27
|
-
extern "C" {
|
28
|
-
#endif
|
29
|
-
|
30
26
|
typedef struct grpc_connectivity_state_watcher {
|
31
27
|
/** we keep watchers in a linked list */
|
32
28
|
struct grpc_connectivity_state_watcher* next;
|
@@ -55,13 +51,11 @@ const char* grpc_connectivity_state_name(grpc_connectivity_state state);
|
|
55
51
|
void grpc_connectivity_state_init(grpc_connectivity_state_tracker* tracker,
|
56
52
|
grpc_connectivity_state init_state,
|
57
53
|
const char* name);
|
58
|
-
void grpc_connectivity_state_destroy(
|
59
|
-
grpc_connectivity_state_tracker* tracker);
|
54
|
+
void grpc_connectivity_state_destroy(grpc_connectivity_state_tracker* tracker);
|
60
55
|
|
61
56
|
/** Set connectivity state; not thread safe; access must be serialized with an
|
62
57
|
* external lock */
|
63
|
-
void grpc_connectivity_state_set(
|
64
|
-
grpc_connectivity_state_tracker* tracker,
|
58
|
+
void grpc_connectivity_state_set(grpc_connectivity_state_tracker* tracker,
|
65
59
|
grpc_connectivity_state state,
|
66
60
|
grpc_error* associated_error,
|
67
61
|
const char* reason);
|
@@ -85,11 +79,7 @@ grpc_connectivity_state grpc_connectivity_state_get(
|
|
85
79
|
case).
|
86
80
|
Access must be serialized with an external lock. */
|
87
81
|
bool grpc_connectivity_state_notify_on_state_change(
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
#ifdef __cplusplus
|
92
|
-
}
|
93
|
-
#endif
|
82
|
+
grpc_connectivity_state_tracker* tracker, grpc_connectivity_state* current,
|
83
|
+
grpc_closure* notify);
|
94
84
|
|
95
85
|
#endif /* GRPC_CORE_LIB_TRANSPORT_CONNECTIVITY_STATE_H */
|
@@ -40,9 +40,9 @@ static grpc_error* recursively_find_error_with_field(grpc_error* error,
|
|
40
40
|
return nullptr;
|
41
41
|
}
|
42
42
|
|
43
|
-
void grpc_error_get_status(
|
44
|
-
|
45
|
-
|
43
|
+
void grpc_error_get_status(grpc_error* error, grpc_millis deadline,
|
44
|
+
grpc_status_code* code, grpc_slice* slice,
|
45
|
+
grpc_http2_error_code* http_error,
|
46
46
|
const char** error_string) {
|
47
47
|
// Start with the parent error and recurse through the tree of children
|
48
48
|
// until we find the first one that has a status code.
|
@@ -65,12 +65,12 @@ void grpc_error_get_status(grpc_exec_ctx* exec_ctx, grpc_error* error,
|
|
65
65
|
status = (grpc_status_code)integer;
|
66
66
|
} else if (grpc_error_get_int(found_error, GRPC_ERROR_INT_HTTP2_ERROR,
|
67
67
|
&integer)) {
|
68
|
-
status = grpc_http2_error_to_grpc_status(
|
69
|
-
|
68
|
+
status = grpc_http2_error_to_grpc_status((grpc_http2_error_code)integer,
|
69
|
+
deadline);
|
70
70
|
}
|
71
71
|
if (code != nullptr) *code = status;
|
72
72
|
|
73
|
-
if (error_string !=
|
73
|
+
if (error_string != nullptr && status != GRPC_STATUS_OK) {
|
74
74
|
*error_string = gpr_strdup(grpc_error_string(error));
|
75
75
|
}
|
76
76
|
|