grpc 1.8.7 → 1.9.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +549 -325
- data/include/grpc/impl/codegen/grpc_types.h +1 -2
- data/include/grpc/impl/codegen/port_platform.h +46 -5
- data/include/grpc/impl/codegen/slice.h +1 -2
- data/include/grpc/module.modulemap +0 -2
- data/include/grpc/slice_buffer.h +1 -2
- data/include/grpc/support/log.h +4 -2
- data/include/grpc/support/thd.h +4 -1
- data/include/grpc/support/tls.h +6 -0
- data/include/grpc/support/tls_gcc.h +5 -40
- data/include/grpc/support/tls_msvc.h +9 -0
- data/include/grpc/support/tls_pthread.h +9 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +32 -29
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -2
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +26 -32
- data/src/core/ext/filters/client_channel/client_channel.cc +325 -356
- data/src/core/ext/filters/client_channel/client_channel.h +4 -12
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +9 -14
- data/src/core/ext/filters/client_channel/client_channel_factory.h +7 -20
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +7 -10
- data/src/core/ext/filters/client_channel/connector.cc +6 -7
- data/src/core/ext/filters/client_channel/connector.h +6 -16
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +38 -50
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -8
- data/src/core/ext/filters/client_channel/http_proxy.cc +9 -13
- data/src/core/ext/filters/client_channel/http_proxy.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy.cc +72 -94
- data/src/core/ext/filters/client_channel/lb_policy.h +83 -92
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +474 -591
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +2 -10
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +0 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +0 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +9 -12
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +160 -182
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -221
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +24 -35
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +9 -20
- data/src/core/ext/filters/client_channel/lb_policy_factory.cc +6 -9
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +4 -15
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -9
- data/src/core/ext/filters/client_channel/parse_address.cc +1 -1
- data/src/core/ext/filters/client_channel/parse_address.h +0 -8
- data/src/core/ext/filters/client_channel/proxy_mapper.cc +6 -8
- data/src/core/ext/filters/client_channel/proxy_mapper.h +6 -16
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +13 -17
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +2 -12
- data/src/core/ext/filters/client_channel/resolver.cc +11 -13
- data/src/core/ext/filters/client_channel/resolver.h +14 -25
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +57 -70
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +23 -31
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +27 -45
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +9 -11
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +53 -66
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +25 -33
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -9
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +26 -35
- data/src/core/ext/filters/client_channel/resolver_factory.cc +2 -3
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -12
- data/src/core/ext/filters/client_channel/resolver_registry.cc +12 -15
- data/src/core/ext/filters/client_channel/resolver_registry.h +3 -12
- data/src/core/ext/filters/client_channel/retry_throttle.h +0 -8
- data/src/core/ext/filters/client_channel/subchannel.cc +289 -301
- data/src/core/ext/filters/client_channel/subchannel.h +57 -84
- data/src/core/ext/filters/client_channel/subchannel_index.cc +30 -33
- data/src/core/ext/filters/client_channel/subchannel_index.h +4 -16
- data/src/core/ext/filters/client_channel/uri_parser.cc +13 -17
- data/src/core/ext/filters/client_channel/uri_parser.h +1 -10
- data/src/core/ext/filters/deadline/deadline_filter.cc +49 -67
- data/src/core/ext/filters/deadline/deadline_filter.h +4 -14
- data/src/core/ext/filters/http/client/http_client_filter.cc +60 -77
- data/src/core/ext/filters/http/client/http_client_filter.h +0 -8
- data/src/core/ext/filters/http/http_filters_plugin.cc +4 -6
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +63 -79
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +57 -71
- data/src/core/ext/filters/http/server/http_server_filter.h +0 -8
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +19 -24
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +0 -8
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +3 -3
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +0 -8
- data/src/core/ext/filters/max_age/max_age_filter.cc +49 -62
- data/src/core/ext/filters/max_age/max_age_filter.h +0 -8
- data/src/core/ext/filters/message_size/message_size_filter.cc +23 -29
- data/src/core/ext/filters/message_size/message_size_filter.h +0 -8
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +0 -8
- data/src/core/ext/filters/workarounds/workaround_utils.h +0 -8
- data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -8
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +33 -40
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -8
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +15 -17
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +8 -8
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +23 -28
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +50 -57
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +1 -10
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -10
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -11
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -9
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +10 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +516 -636
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -11
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +29 -13
- data/src/core/ext/transport/chttp2/transport/flow_control.h +196 -53
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +31 -33
- data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -12
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -9
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +8 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -11
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +63 -81
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +230 -318
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -19
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +14 -20
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +5 -16
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -7
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +0 -8
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +8 -11
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +4 -13
- data/src/core/ext/transport/chttp2/transport/internal.h +51 -75
- data/src/core/ext/transport/chttp2/transport/parsing.cc +83 -109
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -8
- data/src/core/ext/transport/chttp2/transport/varint.h +0 -8
- data/src/core/ext/transport/chttp2/transport/writing.cc +61 -65
- data/src/core/ext/transport/inproc/inproc_plugin.cc +2 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +177 -188
- data/src/core/ext/transport/inproc/inproc_transport.h +0 -8
- data/src/core/lib/backoff/backoff.cc +39 -44
- data/src/core/lib/backoff/backoff.h +61 -57
- data/src/core/lib/channel/channel_args.cc +8 -10
- data/src/core/lib/channel/channel_args.h +4 -13
- data/src/core/lib/channel/channel_stack.cc +19 -27
- data/src/core/lib/channel/channel_stack.h +27 -47
- data/src/core/lib/channel/channel_stack_builder.cc +11 -14
- data/src/core/lib/channel/channel_stack_builder.h +4 -15
- data/src/core/lib/channel/connected_channel.cc +23 -36
- data/src/core/lib/channel/connected_channel.h +1 -10
- data/src/core/lib/channel/handshaker.cc +31 -40
- data/src/core/lib/channel/handshaker.h +14 -25
- data/src/core/lib/channel/handshaker_factory.cc +6 -6
- data/src/core/lib/channel/handshaker_factory.h +5 -15
- data/src/core/lib/channel/handshaker_registry.cc +9 -13
- data/src/core/lib/channel/handshaker_registry.h +2 -11
- data/src/core/lib/compression/algorithm_metadata.h +0 -8
- data/src/core/lib/compression/message_compress.cc +19 -23
- data/src/core/lib/compression/message_compress.h +2 -12
- data/src/core/lib/compression/stream_compression.cc +1 -1
- data/src/core/lib/compression/stream_compression.h +0 -8
- data/src/core/lib/compression/stream_compression_gzip.cc +12 -11
- data/src/core/lib/compression/stream_compression_gzip.h +0 -8
- data/src/core/lib/compression/stream_compression_identity.h +0 -8
- data/src/core/lib/debug/stats.cc +4 -4
- data/src/core/lib/debug/stats.h +9 -19
- data/src/core/lib/debug/stats_data.cc +85 -116
- data/src/core/lib/debug/stats_data.h +236 -312
- data/src/core/lib/debug/trace.cc +1 -1
- data/src/core/lib/debug/trace.h +0 -12
- data/src/core/lib/{support → gpr++}/abstract.h +8 -3
- data/src/core/lib/{support → gpr++}/atomic.h +5 -5
- data/src/core/lib/{support → gpr++}/atomic_with_atm.h +3 -3
- data/src/core/lib/{support → gpr++}/atomic_with_std.h +3 -3
- data/src/core/lib/gpr++/debug_location.h +52 -0
- data/src/core/lib/gpr++/inlined_vector.h +112 -0
- data/src/core/lib/{support → gpr++}/manual_constructor.h +2 -2
- data/src/core/lib/{support → gpr++}/memory.h +3 -3
- data/src/core/lib/gpr++/orphanable.h +171 -0
- data/src/core/lib/gpr++/ref_counted.h +133 -0
- data/src/core/lib/gpr++/ref_counted_ptr.h +99 -0
- data/src/core/lib/{support → gpr}/alloc.cc +0 -0
- data/src/core/lib/{support → gpr}/arena.cc +1 -1
- data/src/core/lib/{support → gpr}/arena.h +3 -11
- data/src/core/lib/{support → gpr}/atm.cc +0 -0
- data/src/core/lib/{support → gpr}/avl.cc +0 -0
- data/src/core/lib/{support → gpr}/cmdline.cc +1 -1
- data/src/core/lib/{support → gpr}/cpu_iphone.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_linux.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_windows.cc +0 -0
- data/src/core/lib/{support → gpr}/env.h +3 -11
- data/src/core/lib/{support → gpr}/env_linux.cc +2 -2
- data/src/core/lib/{support → gpr}/env_posix.cc +4 -4
- data/src/core/lib/{support → gpr}/env_windows.cc +3 -3
- data/src/core/lib/{support → gpr}/fork.cc +3 -3
- data/src/core/lib/{support → gpr}/fork.h +3 -3
- data/src/core/lib/{support → gpr}/host_port.cc +1 -1
- data/src/core/lib/{support → gpr}/log.cc +3 -3
- data/src/core/lib/{support → gpr}/log_android.cc +3 -3
- data/src/core/lib/{support → gpr}/log_linux.cc +1 -1
- data/src/core/lib/{support → gpr}/log_posix.cc +5 -5
- data/src/core/lib/{support → gpr}/log_windows.cc +3 -3
- data/src/core/lib/{support → gpr}/mpscq.cc +1 -1
- data/src/core/lib/{support → gpr}/mpscq.h +3 -10
- data/src/core/lib/{support → gpr}/murmur_hash.cc +1 -1
- data/src/core/lib/{support → gpr}/murmur_hash.h +3 -11
- data/src/core/lib/{support → gpr}/spinlock.h +3 -3
- data/src/core/lib/{support → gpr}/string.cc +1 -1
- data/src/core/lib/{support → gpr}/string.h +3 -10
- data/src/core/lib/{support → gpr}/string_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/string_util_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/string_windows.cc +1 -1
- data/src/core/lib/{support → gpr}/string_windows.h +3 -11
- data/src/core/lib/{support → gpr}/subprocess_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/subprocess_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/sync.cc +0 -0
- data/src/core/lib/{support → gpr}/sync_posix.cc +10 -1
- data/src/core/lib/{support → gpr}/sync_windows.cc +0 -0
- data/src/core/lib/{support → gpr}/thd.cc +0 -0
- data/src/core/lib/{support → gpr}/thd_internal.h +3 -3
- data/src/core/lib/{support → gpr}/thd_posix.cc +18 -2
- data/src/core/lib/{support → gpr}/thd_windows.cc +2 -1
- data/src/core/lib/{support → gpr}/time.cc +0 -0
- data/src/core/lib/{support → gpr}/time_posix.cc +2 -4
- data/src/core/lib/{support → gpr}/time_precise.cc +1 -1
- data/src/core/lib/{support → gpr}/time_precise.h +3 -11
- data/src/core/lib/{support → gpr}/time_windows.cc +1 -3
- data/src/core/lib/{support → gpr}/tls_pthread.cc +0 -0
- data/src/core/lib/{support → gpr}/tmpfile.h +3 -11
- data/src/core/lib/{support → gpr}/tmpfile_msys.cc +2 -2
- data/src/core/lib/{support → gpr}/tmpfile_posix.cc +2 -2
- data/src/core/lib/{support → gpr}/tmpfile_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/wrap_memcpy.cc +0 -0
- data/src/core/lib/http/format_request.cc +1 -1
- data/src/core/lib/http/format_request.h +0 -8
- data/src/core/lib/http/httpcli.cc +55 -74
- data/src/core/lib/http/httpcli.h +13 -22
- data/src/core/lib/http/httpcli_security_connector.cc +27 -33
- data/src/core/lib/http/parser.h +0 -8
- data/src/core/lib/iomgr/block_annotate.h +10 -17
- data/src/core/lib/iomgr/call_combiner.cc +14 -17
- data/src/core/lib/iomgr/call_combiner.h +16 -34
- data/src/core/lib/iomgr/closure.h +24 -37
- data/src/core/lib/iomgr/combiner.cc +62 -66
- data/src/core/lib/iomgr/combiner.h +6 -16
- data/src/core/lib/iomgr/endpoint.cc +15 -21
- data/src/core/lib/iomgr/endpoint.h +16 -33
- data/src/core/lib/iomgr/endpoint_pair.h +0 -8
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +4 -5
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +4 -6
- data/src/core/lib/iomgr/error.cc +2 -6
- data/src/core/lib/iomgr/error.h +4 -9
- data/src/core/lib/iomgr/error_internal.h +0 -8
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +110 -117
- data/src/core/lib/iomgr/ev_epoll1_linux.h +0 -8
- data/src/core/lib/iomgr/ev_epollex_linux.cc +111 -141
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -8
- data/src/core/lib/iomgr/ev_epollsig_linux.cc +83 -109
- data/src/core/lib/iomgr/ev_epollsig_linux.h +2 -10
- data/src/core/lib/iomgr/ev_poll_posix.cc +103 -125
- data/src/core/lib/iomgr/ev_poll_posix.h +0 -8
- data/src/core/lib/iomgr/ev_posix.cc +35 -50
- data/src/core/lib/iomgr/ev_posix.h +27 -53
- data/src/core/lib/iomgr/exec_ctx.cc +46 -78
- data/src/core/lib/iomgr/exec_ctx.h +127 -60
- data/src/core/lib/iomgr/executor.cc +34 -38
- data/src/core/lib/iomgr/executor.h +3 -11
- data/src/core/lib/iomgr/fork_posix.cc +13 -12
- data/src/core/lib/iomgr/gethostname.h +0 -8
- data/src/core/lib/iomgr/gethostname_sysconf.cc +1 -1
- data/src/core/lib/iomgr/iocp_windows.cc +14 -16
- data/src/core/lib/iomgr/iocp_windows.h +1 -10
- data/src/core/lib/iomgr/iomgr.cc +60 -59
- data/src/core/lib/iomgr/iomgr.h +3 -12
- data/src/core/lib/iomgr/iomgr_internal.h +0 -8
- data/src/core/lib/iomgr/iomgr_uv.cc +2 -3
- data/src/core/lib/iomgr/iomgr_uv.h +0 -8
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +1 -1
- data/src/core/lib/iomgr/load_file.h +0 -8
- data/src/core/lib/iomgr/lockfree_event.cc +7 -8
- data/src/core/lib/iomgr/lockfree_event.h +3 -3
- data/src/core/lib/iomgr/polling_entity.cc +6 -10
- data/src/core/lib/iomgr/polling_entity.h +2 -11
- data/src/core/lib/iomgr/pollset.h +4 -13
- data/src/core/lib/iomgr/pollset_set.h +5 -18
- data/src/core/lib/iomgr/pollset_set_uv.cc +5 -10
- data/src/core/lib/iomgr/pollset_set_windows.cc +5 -10
- data/src/core/lib/iomgr/pollset_uv.cc +8 -9
- data/src/core/lib/iomgr/pollset_uv.h +0 -8
- data/src/core/lib/iomgr/pollset_windows.cc +14 -15
- data/src/core/lib/iomgr/pollset_windows.h +0 -8
- data/src/core/lib/iomgr/port.h +6 -1
- data/src/core/lib/iomgr/resolve_address.h +1 -10
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -12
- data/src/core/lib/iomgr/resolve_address_uv.cc +7 -8
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -9
- data/src/core/lib/iomgr/resource_quota.cc +77 -107
- data/src/core/lib/iomgr/resource_quota.h +8 -25
- data/src/core/lib/iomgr/sockaddr_utils.cc +1 -1
- data/src/core/lib/iomgr/sockaddr_utils.h +0 -8
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.h +0 -8
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.h +1 -9
- data/src/core/lib/iomgr/socket_utils.h +0 -8
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.h +0 -8
- data/src/core/lib/iomgr/socket_windows.cc +8 -11
- data/src/core/lib/iomgr/socket_windows.h +3 -14
- data/src/core/lib/iomgr/tcp_client.h +1 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +94 -78
- data/src/core/lib/iomgr/tcp_client_posix.h +36 -8
- data/src/core/lib/iomgr/tcp_client_uv.cc +16 -23
- data/src/core/lib/iomgr/tcp_client_windows.cc +22 -25
- data/src/core/lib/iomgr/tcp_posix.cc +131 -153
- data/src/core/lib/iomgr/tcp_posix.h +3 -12
- data/src/core/lib/iomgr/tcp_server.h +6 -17
- data/src/core/lib/iomgr/tcp_server_posix.cc +31 -35
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -8
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
- data/src/core/lib/iomgr/tcp_server_uv.cc +23 -34
- data/src/core/lib/iomgr/tcp_server_windows.cc +24 -34
- data/src/core/lib/iomgr/tcp_uv.cc +42 -56
- data/src/core/lib/iomgr/tcp_uv.h +0 -8
- data/src/core/lib/iomgr/tcp_windows.cc +43 -50
- data/src/core/lib/iomgr/tcp_windows.h +1 -9
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -8
- data/src/core/lib/iomgr/timer.h +6 -15
- data/src/core/lib/iomgr/timer_generic.cc +22 -27
- data/src/core/lib/iomgr/timer_heap.h +0 -8
- data/src/core/lib/iomgr/timer_manager.cc +17 -19
- data/src/core/lib/iomgr/timer_manager.h +0 -8
- data/src/core/lib/iomgr/timer_uv.cc +12 -14
- data/src/core/lib/iomgr/udp_server.cc +148 -54
- data/src/core/lib/iomgr/udp_server.h +16 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +0 -8
- data/src/core/lib/iomgr/wakeup_fd_cv.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_cv.h +12 -20
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +0 -8
- data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -8
- data/src/core/lib/json/json.h +0 -8
- data/src/core/lib/json/json_reader.h +0 -8
- data/src/core/lib/json/json_writer.h +0 -8
- data/src/core/lib/profiling/basic_timers.cc +3 -2
- data/src/core/lib/profiling/timers.h +0 -8
- data/src/core/lib/security/context/security_context.cc +9 -10
- data/src/core/lib/security/context/security_context.h +0 -8
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +23 -28
- data/src/core/lib/security/credentials/composite/composite_credentials.h +0 -8
- data/src/core/lib/security/credentials/credentials.cc +33 -42
- data/src/core/lib/security/credentials/credentials.h +24 -43
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +16 -22
- data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -8
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +28 -34
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +0 -8
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -13
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +0 -8
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +14 -20
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -10
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +56 -72
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +5 -17
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +47 -55
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +3 -12
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +23 -28
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +8 -13
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -8
- data/src/core/lib/security/transport/auth_filters.h +0 -8
- data/src/core/lib/security/transport/client_auth_filter.cc +45 -54
- data/src/core/lib/security/transport/lb_targets_info.cc +2 -2
- data/src/core/lib/security/transport/lb_targets_info.h +0 -8
- data/src/core/lib/security/transport/secure_endpoint.cc +54 -68
- data/src/core/lib/security/transport/secure_endpoint.h +0 -8
- data/src/core/lib/security/transport/security_connector.cc +62 -86
- data/src/core/lib/security/transport/security_connector.h +22 -39
- data/src/core/lib/security/transport/security_handshaker.cc +83 -106
- data/src/core/lib/security/transport/security_handshaker.h +1 -10
- data/src/core/lib/security/transport/server_auth_filter.cc +31 -38
- data/src/core/lib/security/transport/tsi_error.h +0 -8
- data/src/core/lib/security/util/json_util.h +0 -8
- data/src/core/lib/slice/b64.cc +5 -6
- data/src/core/lib/slice/b64.h +3 -12
- data/src/core/lib/slice/percent_encoding.h +0 -8
- data/src/core/lib/slice/slice.cc +8 -9
- data/src/core/lib/slice/slice_buffer.cc +11 -16
- data/src/core/lib/slice/slice_hash_table.cc +5 -7
- data/src/core/lib/slice/slice_hash_table.h +2 -12
- data/src/core/lib/slice/slice_intern.cc +4 -5
- data/src/core/lib/slice/slice_internal.h +4 -15
- data/src/core/lib/slice/slice_string_helpers.cc +1 -1
- data/src/core/lib/slice/slice_string_helpers.h +1 -9
- data/src/core/lib/surface/alarm.cc +11 -14
- data/src/core/lib/surface/alarm_internal.h +0 -8
- data/src/core/lib/surface/byte_buffer.cc +2 -3
- data/src/core/lib/surface/byte_buffer_reader.cc +7 -9
- data/src/core/lib/surface/call.cc +198 -241
- data/src/core/lib/surface/call.h +9 -23
- data/src/core/lib/surface/call_details.cc +3 -4
- data/src/core/lib/surface/call_log_batch.cc +1 -1
- data/src/core/lib/surface/call_test_only.h +0 -8
- data/src/core/lib/surface/channel.cc +53 -64
- data/src/core/lib/surface/channel.h +12 -23
- data/src/core/lib/surface/channel_init.cc +2 -3
- data/src/core/lib/surface/channel_init.h +2 -12
- data/src/core/lib/surface/channel_ping.cc +7 -9
- data/src/core/lib/surface/channel_stack_type.h +0 -8
- data/src/core/lib/surface/completion_queue.cc +158 -176
- data/src/core/lib/surface/completion_queue.h +9 -20
- data/src/core/lib/surface/completion_queue_factory.h +0 -8
- data/src/core/lib/surface/event_string.cc +1 -1
- data/src/core/lib/surface/event_string.h +0 -8
- data/src/core/lib/surface/init.cc +27 -25
- data/src/core/lib/surface/init.h +0 -8
- data/src/core/lib/surface/init_secure.cc +2 -2
- data/src/core/lib/surface/lame_client.cc +30 -33
- data/src/core/lib/surface/lame_client.h +0 -8
- data/src/core/lib/surface/server.cc +151 -203
- data/src/core/lib/surface/server.h +7 -16
- data/src/core/lib/surface/validate_metadata.h +0 -8
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.h +1 -1
- data/src/core/lib/transport/byte_stream.cc +24 -38
- data/src/core/lib/transport/byte_stream.h +10 -25
- data/src/core/lib/transport/connectivity_state.cc +9 -13
- data/src/core/lib/transport/connectivity_state.h +4 -14
- data/src/core/lib/transport/error_utils.cc +6 -6
- data/src/core/lib/transport/error_utils.h +2 -11
- data/src/core/lib/transport/metadata.cc +21 -23
- data/src/core/lib/transport/metadata.h +8 -20
- data/src/core/lib/transport/metadata_batch.cc +34 -45
- data/src/core/lib/transport/metadata_batch.h +18 -32
- data/src/core/lib/transport/service_config.cc +11 -15
- data/src/core/lib/transport/service_config.h +3 -13
- data/src/core/lib/transport/static_metadata.cc +1 -1
- data/src/core/lib/transport/static_metadata.h +1 -7
- data/src/core/lib/transport/status_conversion.cc +2 -3
- data/src/core/lib/transport/status_conversion.h +1 -10
- data/src/core/lib/transport/timeout_encoding.cc +1 -1
- data/src/core/lib/transport/timeout_encoding.h +1 -9
- data/src/core/lib/transport/transport.cc +36 -50
- data/src/core/lib/transport/transport.h +28 -30
- data/src/core/lib/transport/transport_impl.h +12 -23
- data/src/core/lib/transport/transport_op_string.cc +2 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +34 -34
- data/src/core/tsi/fake_transport_security.cc +7 -10
- data/src/core/tsi/fake_transport_security.h +0 -8
- data/src/core/tsi/gts_transport_security.cc +2 -2
- data/src/core/tsi/gts_transport_security.h +0 -8
- data/src/core/tsi/ssl_transport_security.cc +3 -0
- data/src/core/tsi/ssl_transport_security.h +0 -8
- data/src/core/tsi/ssl_types.h +0 -8
- data/src/core/tsi/transport_security.h +1 -9
- data/src/core/tsi/transport_security_adapter.h +0 -8
- data/src/core/tsi/transport_security_grpc.cc +11 -18
- data/src/core/tsi/transport_security_grpc.h +9 -21
- data/src/core/tsi/transport_security_interface.h +0 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +0 -30
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -48
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/channel_connection_spec.rb +2 -1
- data/src/ruby/spec/client_auth_spec.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +2 -2
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/interceptor_registry_spec.rb +1 -1
- data/src/ruby/spec/generic/rpc_server_spec.rb +12 -12
- data/src/ruby/spec/google_rpc_status_utils_spec.rb +3 -2
- data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
- data/src/ruby/spec/server_spec.rb +9 -9
- data/src/ruby/spec/support/helpers.rb +35 -1
- metadata +68 -66
- data/include/grpc/impl/codegen/exec_ctx_fwd.h +0 -26
- data/include/grpc/support/histogram.h +0 -64
- data/src/core/lib/support/histogram.cc +0 -227
@@ -21,10 +21,6 @@
|
|
21
21
|
|
22
22
|
#include "src/core/lib/transport/transport_impl.h"
|
23
23
|
|
24
|
-
#ifdef __cplusplus
|
25
|
-
extern "C" {
|
26
|
-
#endif
|
27
|
-
|
28
24
|
grpc_channel* grpc_inproc_channel_create(grpc_server* server,
|
29
25
|
grpc_channel_args* args,
|
30
26
|
void* reserved);
|
@@ -34,8 +30,4 @@ extern grpc_core::TraceFlag grpc_inproc_trace;
|
|
34
30
|
void grpc_inproc_transport_init(void);
|
35
31
|
void grpc_inproc_transport_shutdown(void);
|
36
32
|
|
37
|
-
#ifdef __cplusplus
|
38
|
-
}
|
39
|
-
#endif
|
40
|
-
|
41
33
|
#endif /* GRPC_CORE_EXT_TRANSPORT_INPROC_INPROC_TRANSPORT_H */
|
@@ -18,63 +18,58 @@
|
|
18
18
|
|
19
19
|
#include "src/core/lib/backoff/backoff.h"
|
20
20
|
|
21
|
+
#include <algorithm>
|
22
|
+
|
21
23
|
#include <grpc/support/useful.h>
|
22
24
|
|
23
|
-
|
24
|
-
double multiplier, double jitter,
|
25
|
-
grpc_millis min_connect_timeout,
|
26
|
-
grpc_millis max_backoff) {
|
27
|
-
backoff->initial_backoff = initial_backoff;
|
28
|
-
backoff->multiplier = multiplier;
|
29
|
-
backoff->jitter = jitter;
|
30
|
-
backoff->min_connect_timeout = min_connect_timeout;
|
31
|
-
backoff->max_backoff = max_backoff;
|
32
|
-
backoff->rng_state = (uint32_t)gpr_now(GPR_CLOCK_REALTIME).tv_nsec;
|
33
|
-
}
|
25
|
+
namespace grpc_core {
|
34
26
|
|
35
|
-
|
36
|
-
grpc_backoff* backoff) {
|
37
|
-
backoff->current_backoff = backoff->initial_backoff;
|
38
|
-
const grpc_millis initial_timeout =
|
39
|
-
GPR_MAX(backoff->initial_backoff, backoff->min_connect_timeout);
|
40
|
-
const grpc_millis now = grpc_exec_ctx_now(exec_ctx);
|
41
|
-
const grpc_backoff_result result = {now + initial_timeout,
|
42
|
-
now + backoff->current_backoff};
|
43
|
-
return result;
|
44
|
-
}
|
27
|
+
namespace {
|
45
28
|
|
46
|
-
/* Generate a random number between 0 and 1.
|
47
|
-
|
48
|
-
|
49
|
-
|
29
|
+
/* Generate a random number between 0 and 1. We roll our own RNG because seeding
|
30
|
+
* rand() modifies a global variable we have no control over. */
|
31
|
+
double generate_uniform_random_number(uint32_t* rng_state) {
|
32
|
+
constexpr uint32_t two_raise_31 = uint32_t(1) << 31;
|
33
|
+
*rng_state = (1103515245 * *rng_state + 12345) % two_raise_31;
|
34
|
+
return *rng_state / static_cast<double>(two_raise_31);
|
50
35
|
}
|
51
36
|
|
52
|
-
|
53
|
-
|
37
|
+
double generate_uniform_random_number_between(uint32_t* rng_state, double a,
|
38
|
+
double b) {
|
54
39
|
if (a == b) return a;
|
55
40
|
if (a > b) GPR_SWAP(double, a, b); // make sure a < b
|
56
41
|
const double range = b - a;
|
57
42
|
return a + generate_uniform_random_number(rng_state) * range;
|
58
43
|
}
|
59
44
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
45
|
+
} // namespace
|
46
|
+
|
47
|
+
BackOff::BackOff(const Options& options)
|
48
|
+
: options_(options),
|
49
|
+
rng_state_(static_cast<uint32_t>(gpr_now(GPR_CLOCK_REALTIME).tv_nsec)) {
|
50
|
+
Reset();
|
51
|
+
}
|
52
|
+
|
53
|
+
grpc_millis BackOff::NextAttemptTime() {
|
54
|
+
if (initial_) {
|
55
|
+
initial_ = false;
|
56
|
+
return current_backoff_ + grpc_core::ExecCtx::Get()->Now();
|
57
|
+
}
|
58
|
+
current_backoff_ =
|
59
|
+
(grpc_millis)(std::min(current_backoff_ * options_.multiplier(),
|
60
|
+
(double)options_.max_backoff()));
|
64
61
|
const double jitter = generate_uniform_random_number_between(
|
65
|
-
&
|
66
|
-
|
67
|
-
const grpc_millis
|
68
|
-
|
69
|
-
backoff->min_connect_timeout);
|
70
|
-
const grpc_millis next_timeout = GPR_MIN(
|
71
|
-
(grpc_millis)(backoff->current_backoff + jitter), backoff->max_backoff);
|
72
|
-
const grpc_millis now = grpc_exec_ctx_now(exec_ctx);
|
73
|
-
const grpc_backoff_result result = {now + current_timeout,
|
74
|
-
now + next_timeout};
|
75
|
-
return result;
|
62
|
+
&rng_state_, -options_.jitter() * current_backoff_,
|
63
|
+
options_.jitter() * current_backoff_);
|
64
|
+
const grpc_millis next_timeout = (grpc_millis)(current_backoff_ + jitter);
|
65
|
+
return next_timeout + grpc_core::ExecCtx::Get()->Now();
|
76
66
|
}
|
77
67
|
|
78
|
-
void
|
79
|
-
|
68
|
+
void BackOff::Reset() {
|
69
|
+
current_backoff_ = options_.initial_backoff();
|
70
|
+
initial_ = true;
|
80
71
|
}
|
72
|
+
|
73
|
+
void BackOff::SetRandomSeed(uint32_t seed) { rng_state_ = seed; }
|
74
|
+
|
75
|
+
} // namespace grpc_core
|
@@ -21,63 +21,67 @@
|
|
21
21
|
|
22
22
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
///
|
33
|
-
|
34
|
-
|
35
|
-
///
|
36
|
-
|
37
|
-
|
38
|
-
///
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
24
|
+
namespace grpc_core {
|
25
|
+
|
26
|
+
/// Implementation of the backoff mechanism described in
|
27
|
+
/// doc/connection-backoff.md
|
28
|
+
class BackOff {
|
29
|
+
public:
|
30
|
+
class Options;
|
31
|
+
|
32
|
+
/// Initialize backoff machinery - does not need to be destroyed
|
33
|
+
explicit BackOff(const Options& options);
|
34
|
+
|
35
|
+
/// Returns the time at which the next attempt should start.
|
36
|
+
grpc_millis NextAttemptTime();
|
37
|
+
|
38
|
+
/// Reset the backoff, so the next value returned by NextAttemptTime()
|
39
|
+
/// will be the time of the second attempt (rather than the Nth).
|
40
|
+
void Reset();
|
41
|
+
|
42
|
+
void SetRandomSeed(unsigned int seed);
|
43
|
+
|
44
|
+
class Options {
|
45
|
+
public:
|
46
|
+
Options& set_initial_backoff(grpc_millis initial_backoff) {
|
47
|
+
initial_backoff_ = initial_backoff;
|
48
|
+
return *this;
|
49
|
+
}
|
50
|
+
Options& set_multiplier(double multiplier) {
|
51
|
+
multiplier_ = multiplier;
|
52
|
+
return *this;
|
53
|
+
}
|
54
|
+
Options& set_jitter(double jitter) {
|
55
|
+
jitter_ = jitter;
|
56
|
+
return *this;
|
57
|
+
}
|
58
|
+
Options& set_max_backoff(grpc_millis max_backoff) {
|
59
|
+
max_backoff_ = max_backoff;
|
60
|
+
return *this;
|
61
|
+
}
|
62
|
+
/// how long to wait after the first failure before retrying
|
63
|
+
grpc_millis initial_backoff() const { return initial_backoff_; }
|
64
|
+
/// factor with which to multiply backoff after a failed retry
|
65
|
+
double multiplier() const { return multiplier_; }
|
66
|
+
/// amount to randomize backoffs
|
67
|
+
double jitter() const { return jitter_; }
|
68
|
+
/// maximum time between retries
|
69
|
+
grpc_millis max_backoff() const { return max_backoff_; }
|
70
|
+
|
71
|
+
private:
|
72
|
+
grpc_millis initial_backoff_;
|
73
|
+
double multiplier_;
|
74
|
+
double jitter_;
|
75
|
+
grpc_millis max_backoff_;
|
76
|
+
}; // class Options
|
77
|
+
|
78
|
+
private:
|
79
|
+
const Options options_;
|
80
|
+
uint32_t rng_state_;
|
81
|
+
bool initial_;
|
44
82
|
/// current delay before retries
|
45
|
-
grpc_millis
|
46
|
-
|
47
|
-
/// random number generator
|
48
|
-
uint32_t rng_state;
|
49
|
-
} grpc_backoff;
|
50
|
-
|
51
|
-
typedef struct {
|
52
|
-
/// Deadline to be used for the current attempt.
|
53
|
-
grpc_millis current_deadline;
|
54
|
-
|
55
|
-
/// Deadline to be used for the next attempt, following the backoff strategy.
|
56
|
-
grpc_millis next_attempt_start_time;
|
57
|
-
} grpc_backoff_result;
|
58
|
-
|
59
|
-
/// Initialize backoff machinery - does not need to be destroyed
|
60
|
-
void grpc_backoff_init(grpc_backoff* backoff, grpc_millis initial_backoff,
|
61
|
-
double multiplier, double jitter,
|
62
|
-
grpc_millis min_connect_timeout,
|
63
|
-
grpc_millis max_backoff);
|
64
|
-
|
65
|
-
/// Begin retry loop: returns the deadlines to be used for the current attempt
|
66
|
-
/// and the subsequent retry, if any.
|
67
|
-
grpc_backoff_result grpc_backoff_begin(grpc_exec_ctx* exec_ctx,
|
68
|
-
grpc_backoff* backoff);
|
69
|
-
|
70
|
-
/// Step a retry loop: returns the deadlines to be used for the current attempt
|
71
|
-
/// and the subsequent retry, if any.
|
72
|
-
grpc_backoff_result grpc_backoff_step(grpc_exec_ctx* exec_ctx,
|
73
|
-
grpc_backoff* backoff);
|
74
|
-
|
75
|
-
/// Reset the backoff, so the next grpc_backoff_step will be a
|
76
|
-
/// grpc_backoff_begin.
|
77
|
-
void grpc_backoff_reset(grpc_backoff* backoff);
|
78
|
-
|
79
|
-
#ifdef __cplusplus
|
80
|
-
}
|
81
|
-
#endif
|
83
|
+
grpc_millis current_backoff_;
|
84
|
+
};
|
82
85
|
|
86
|
+
} // namespace grpc_core
|
83
87
|
#endif /* GRPC_CORE_LIB_BACKOFF_BACKOFF_H */
|
@@ -29,7 +29,7 @@
|
|
29
29
|
#include <grpc/support/useful.h>
|
30
30
|
|
31
31
|
#include "src/core/lib/channel/channel_args.h"
|
32
|
-
#include "src/core/lib/
|
32
|
+
#include "src/core/lib/gpr/string.h"
|
33
33
|
|
34
34
|
static grpc_arg copy_arg(const grpc_arg* src) {
|
35
35
|
grpc_arg dst;
|
@@ -188,7 +188,7 @@ grpc_channel_args* grpc_channel_args_normalize(const grpc_channel_args* a) {
|
|
188
188
|
return b;
|
189
189
|
}
|
190
190
|
|
191
|
-
void grpc_channel_args_destroy(
|
191
|
+
void grpc_channel_args_destroy(grpc_channel_args* a) {
|
192
192
|
size_t i;
|
193
193
|
if (!a) return;
|
194
194
|
for (i = 0; i < a->num_args; i++) {
|
@@ -199,8 +199,7 @@ void grpc_channel_args_destroy(grpc_exec_ctx* exec_ctx, grpc_channel_args* a) {
|
|
199
199
|
case GRPC_ARG_INTEGER:
|
200
200
|
break;
|
201
201
|
case GRPC_ARG_POINTER:
|
202
|
-
a->args[i].value.pointer.vtable->destroy(
|
203
|
-
a->args[i].value.pointer.p);
|
202
|
+
a->args[i].value.pointer.vtable->destroy(a->args[i].value.pointer.p);
|
204
203
|
break;
|
205
204
|
}
|
206
205
|
gpr_free(a->args[i].key);
|
@@ -299,8 +298,7 @@ static int find_stream_compression_algorithm_states_bitset(
|
|
299
298
|
}
|
300
299
|
|
301
300
|
grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
|
302
|
-
|
303
|
-
grpc_compression_algorithm algorithm, int state) {
|
301
|
+
grpc_channel_args** a, grpc_compression_algorithm algorithm, int state) {
|
304
302
|
int* states_arg = nullptr;
|
305
303
|
grpc_channel_args* result = *a;
|
306
304
|
const int states_arg_found =
|
@@ -333,15 +331,15 @@ grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
|
|
333
331
|
GPR_BITCLEAR((unsigned*)&tmp.value.integer, algorithm);
|
334
332
|
}
|
335
333
|
result = grpc_channel_args_copy_and_add(*a, &tmp, 1);
|
336
|
-
grpc_channel_args_destroy(
|
334
|
+
grpc_channel_args_destroy(*a);
|
337
335
|
*a = result;
|
338
336
|
}
|
339
337
|
return result;
|
340
338
|
}
|
341
339
|
|
342
340
|
grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
|
343
|
-
|
344
|
-
|
341
|
+
grpc_channel_args** a, grpc_stream_compression_algorithm algorithm,
|
342
|
+
int state) {
|
345
343
|
int* states_arg = nullptr;
|
346
344
|
grpc_channel_args* result = *a;
|
347
345
|
const int states_arg_found =
|
@@ -375,7 +373,7 @@ grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
|
|
375
373
|
GPR_BITCLEAR((unsigned*)&tmp.value.integer, algorithm);
|
376
374
|
}
|
377
375
|
result = grpc_channel_args_copy_and_add(*a, &tmp, 1);
|
378
|
-
grpc_channel_args_destroy(
|
376
|
+
grpc_channel_args_destroy(*a);
|
379
377
|
*a = result;
|
380
378
|
}
|
381
379
|
return result;
|
@@ -23,10 +23,6 @@
|
|
23
23
|
#include <grpc/grpc.h>
|
24
24
|
#include "src/core/lib/iomgr/socket_mutator.h"
|
25
25
|
|
26
|
-
#ifdef __cplusplus
|
27
|
-
extern "C" {
|
28
|
-
#endif
|
29
|
-
|
30
26
|
// Channel args are intentionally immutable, to avoid the need for locking.
|
31
27
|
|
32
28
|
/** Copy the arguments in \a src into a new instance */
|
@@ -57,7 +53,7 @@ grpc_channel_args* grpc_channel_args_union(const grpc_channel_args* a,
|
|
57
53
|
const grpc_channel_args* b);
|
58
54
|
|
59
55
|
/** Destroy arguments created by \a grpc_channel_args_copy */
|
60
|
-
void grpc_channel_args_destroy(
|
56
|
+
void grpc_channel_args_destroy(grpc_channel_args* a);
|
61
57
|
|
62
58
|
/** Returns the compression algorithm set in \a a. */
|
63
59
|
grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
|
@@ -89,8 +85,7 @@ grpc_channel_args* grpc_channel_args_set_stream_compression_algorithm(
|
|
89
85
|
* modified to point to the returned instance (which may be different from the
|
90
86
|
* input value of \a a). */
|
91
87
|
grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
|
92
|
-
|
93
|
-
grpc_compression_algorithm algorithm, int enabled);
|
88
|
+
grpc_channel_args** a, grpc_compression_algorithm algorithm, int enabled);
|
94
89
|
|
95
90
|
/** Sets the support for the given stream compression algorithm. By default, all
|
96
91
|
* stream compression algorithms are enabled. It's an error to disable an
|
@@ -100,8 +95,8 @@ grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
|
|
100
95
|
* modified to point to the returned instance (which may be different from the
|
101
96
|
* input value of \a a). */
|
102
97
|
grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
|
103
|
-
|
104
|
-
|
98
|
+
grpc_channel_args** a, grpc_stream_compression_algorithm algorithm,
|
99
|
+
int enabled);
|
105
100
|
|
106
101
|
/** Returns the bitset representing the support state (true for enabled, false
|
107
102
|
* for disabled) for compression algorithms.
|
@@ -153,8 +148,4 @@ grpc_arg grpc_channel_arg_integer_create(char* name, int value);
|
|
153
148
|
grpc_arg grpc_channel_arg_pointer_create(char* name, void* value,
|
154
149
|
const grpc_arg_pointer_vtable* vtable);
|
155
150
|
|
156
|
-
#ifdef __cplusplus
|
157
|
-
}
|
158
|
-
#endif
|
159
|
-
|
160
151
|
#endif /* GRPC_CORE_LIB_CHANNEL_CHANNEL_ARGS_H */
|
@@ -88,8 +88,8 @@ grpc_call_element* grpc_call_stack_element(grpc_call_stack* call_stack,
|
|
88
88
|
}
|
89
89
|
|
90
90
|
grpc_error* grpc_channel_stack_init(
|
91
|
-
|
92
|
-
|
91
|
+
int initial_refs, grpc_iomgr_cb_func destroy, void* destroy_arg,
|
92
|
+
const grpc_channel_filter** filters, size_t filter_count,
|
93
93
|
const grpc_channel_args* channel_args, grpc_transport* optional_transport,
|
94
94
|
const char* name, grpc_channel_stack* stack) {
|
95
95
|
size_t call_size =
|
@@ -117,8 +117,7 @@ grpc_error* grpc_channel_stack_init(
|
|
117
117
|
args.is_last = i == (filter_count - 1);
|
118
118
|
elems[i].filter = filters[i];
|
119
119
|
elems[i].channel_data = user_data;
|
120
|
-
grpc_error* error =
|
121
|
-
elems[i].filter->init_channel_elem(exec_ctx, &elems[i], &args);
|
120
|
+
grpc_error* error = elems[i].filter->init_channel_elem(&elems[i], &args);
|
122
121
|
if (error != GRPC_ERROR_NONE) {
|
123
122
|
if (first_error == GRPC_ERROR_NONE) {
|
124
123
|
first_error = error;
|
@@ -138,20 +137,18 @@ grpc_error* grpc_channel_stack_init(
|
|
138
137
|
return first_error;
|
139
138
|
}
|
140
139
|
|
141
|
-
void grpc_channel_stack_destroy(
|
142
|
-
grpc_channel_stack* stack) {
|
140
|
+
void grpc_channel_stack_destroy(grpc_channel_stack* stack) {
|
143
141
|
grpc_channel_element* channel_elems = CHANNEL_ELEMS_FROM_STACK(stack);
|
144
142
|
size_t count = stack->count;
|
145
143
|
size_t i;
|
146
144
|
|
147
145
|
/* destroy per-filter data */
|
148
146
|
for (i = 0; i < count; i++) {
|
149
|
-
channel_elems[i].filter->destroy_channel_elem(
|
147
|
+
channel_elems[i].filter->destroy_channel_elem(&channel_elems[i]);
|
150
148
|
}
|
151
149
|
}
|
152
150
|
|
153
|
-
grpc_error* grpc_call_stack_init(
|
154
|
-
grpc_channel_stack* channel_stack,
|
151
|
+
grpc_error* grpc_call_stack_init(grpc_channel_stack* channel_stack,
|
155
152
|
int initial_refs, grpc_iomgr_cb_func destroy,
|
156
153
|
void* destroy_arg,
|
157
154
|
const grpc_call_element_args* elem_args) {
|
@@ -174,8 +171,8 @@ grpc_error* grpc_call_stack_init(grpc_exec_ctx* exec_ctx,
|
|
174
171
|
call_elems[i].filter = channel_elems[i].filter;
|
175
172
|
call_elems[i].channel_data = channel_elems[i].channel_data;
|
176
173
|
call_elems[i].call_data = user_data;
|
177
|
-
grpc_error* error =
|
178
|
-
|
174
|
+
grpc_error* error =
|
175
|
+
call_elems[i].filter->init_call_elem(&call_elems[i], elem_args);
|
179
176
|
if (error != GRPC_ERROR_NONE) {
|
180
177
|
if (first_error == GRPC_ERROR_NONE) {
|
181
178
|
first_error = error;
|
@@ -189,8 +186,7 @@ grpc_error* grpc_call_stack_init(grpc_exec_ctx* exec_ctx,
|
|
189
186
|
return first_error;
|
190
187
|
}
|
191
188
|
|
192
|
-
void grpc_call_stack_set_pollset_or_pollset_set(
|
193
|
-
grpc_call_stack* call_stack,
|
189
|
+
void grpc_call_stack_set_pollset_or_pollset_set(grpc_call_stack* call_stack,
|
194
190
|
grpc_polling_entity* pollent) {
|
195
191
|
size_t count = call_stack->count;
|
196
192
|
grpc_call_element* call_elems;
|
@@ -203,18 +199,16 @@ void grpc_call_stack_set_pollset_or_pollset_set(grpc_exec_ctx* exec_ctx,
|
|
203
199
|
|
204
200
|
/* init per-filter data */
|
205
201
|
for (i = 0; i < count; i++) {
|
206
|
-
call_elems[i].filter->set_pollset_or_pollset_set(
|
207
|
-
pollent);
|
202
|
+
call_elems[i].filter->set_pollset_or_pollset_set(&call_elems[i], pollent);
|
208
203
|
user_data +=
|
209
204
|
ROUND_UP_TO_ALIGNMENT_SIZE(call_elems[i].filter->sizeof_call_data);
|
210
205
|
}
|
211
206
|
}
|
212
207
|
|
213
208
|
void grpc_call_stack_ignore_set_pollset_or_pollset_set(
|
214
|
-
|
215
|
-
grpc_polling_entity* pollent) {}
|
209
|
+
grpc_call_element* elem, grpc_polling_entity* pollent) {}
|
216
210
|
|
217
|
-
void grpc_call_stack_destroy(
|
211
|
+
void grpc_call_stack_destroy(grpc_call_stack* stack,
|
218
212
|
const grpc_call_final_info* final_info,
|
219
213
|
grpc_closure* then_schedule_closure) {
|
220
214
|
grpc_call_element* elems = CALL_ELEMS_FROM_STACK(stack);
|
@@ -224,29 +218,27 @@ void grpc_call_stack_destroy(grpc_exec_ctx* exec_ctx, grpc_call_stack* stack,
|
|
224
218
|
/* destroy per-filter data */
|
225
219
|
for (i = 0; i < count; i++) {
|
226
220
|
elems[i].filter->destroy_call_elem(
|
227
|
-
|
221
|
+
&elems[i], final_info,
|
228
222
|
i == count - 1 ? then_schedule_closure : nullptr);
|
229
223
|
}
|
230
224
|
}
|
231
225
|
|
232
|
-
void grpc_call_next_op(
|
226
|
+
void grpc_call_next_op(grpc_call_element* elem,
|
233
227
|
grpc_transport_stream_op_batch* op) {
|
234
228
|
grpc_call_element* next_elem = elem + 1;
|
235
229
|
GRPC_CALL_LOG_OP(GPR_INFO, next_elem, op);
|
236
|
-
next_elem->filter->start_transport_stream_op_batch(
|
230
|
+
next_elem->filter->start_transport_stream_op_batch(next_elem, op);
|
237
231
|
}
|
238
232
|
|
239
|
-
void grpc_channel_next_get_info(
|
240
|
-
grpc_channel_element* elem,
|
233
|
+
void grpc_channel_next_get_info(grpc_channel_element* elem,
|
241
234
|
const grpc_channel_info* channel_info) {
|
242
235
|
grpc_channel_element* next_elem = elem + 1;
|
243
|
-
next_elem->filter->get_channel_info(
|
236
|
+
next_elem->filter->get_channel_info(next_elem, channel_info);
|
244
237
|
}
|
245
238
|
|
246
|
-
void grpc_channel_next_op(
|
247
|
-
grpc_transport_op* op) {
|
239
|
+
void grpc_channel_next_op(grpc_channel_element* elem, grpc_transport_op* op) {
|
248
240
|
grpc_channel_element* next_elem = elem + 1;
|
249
|
-
next_elem->filter->start_transport_op(
|
241
|
+
next_elem->filter->start_transport_op(next_elem, op);
|
250
242
|
}
|
251
243
|
|
252
244
|
grpc_channel_stack* grpc_channel_stack_from_top_element(
|