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
@@ -22,7 +22,6 @@
|
|
22
22
|
#include <grpc/impl/codegen/port_platform.h>
|
23
23
|
|
24
24
|
#include <grpc/impl/codegen/compression_types.h>
|
25
|
-
#include <grpc/impl/codegen/exec_ctx_fwd.h>
|
26
25
|
#include <grpc/impl/codegen/gpr_types.h>
|
27
26
|
#include <grpc/impl/codegen/slice.h>
|
28
27
|
#include <grpc/impl/codegen/status.h>
|
@@ -85,7 +84,7 @@ typedef enum {
|
|
85
84
|
|
86
85
|
typedef struct grpc_arg_pointer_vtable {
|
87
86
|
void* (*copy)(void* p);
|
88
|
-
void (*destroy)(
|
87
|
+
void (*destroy)(void* p);
|
89
88
|
int (*cmp)(void* p, void* q);
|
90
89
|
} grpc_arg_pointer_vtable;
|
91
90
|
|
@@ -173,6 +173,7 @@
|
|
173
173
|
#endif /* _LP64 */
|
174
174
|
#ifdef __GLIBC__
|
175
175
|
#define GPR_POSIX_CRASH_HANDLER 1
|
176
|
+
#define GPR_LINUX_PTHREAD_NAME 1
|
176
177
|
#else /* musl libc */
|
177
178
|
#define GPR_MUSL_LIBC_COMPAT 1
|
178
179
|
#endif
|
@@ -194,11 +195,25 @@
|
|
194
195
|
#define GPR_PTHREAD_TLS 1
|
195
196
|
#else /* __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_7 */
|
196
197
|
#define GPR_CPU_POSIX 1
|
198
|
+
/* TODO(vjpai): there is a reported issue in bazel build for Mac where __thread
|
199
|
+
in a header is currently not working (bazelbuild/bazel#4341). Remove
|
200
|
+
the following conditional and use GPR_GCC_TLS when that is fixed */
|
201
|
+
#ifndef GRPC_BAZEL_BUILD
|
197
202
|
#define GPR_GCC_TLS 1
|
203
|
+
#else /* GRPC_BAZEL_BUILD */
|
204
|
+
#define GPR_PTHREAD_TLS 1
|
205
|
+
#endif /* GRPC_BAZEL_BUILD */
|
206
|
+
#define GPR_APPLE_PTHREAD_NAME 1
|
198
207
|
#endif
|
199
208
|
#else /* __MAC_OS_X_VERSION_MIN_REQUIRED */
|
200
209
|
#define GPR_CPU_POSIX 1
|
210
|
+
/* TODO(vjpai): Remove the following conditional and use only GPR_GCC_TLS
|
211
|
+
when bazelbuild/bazel#4341 is fixed */
|
212
|
+
#ifndef GRPC_BAZEL_BUILD
|
201
213
|
#define GPR_GCC_TLS 1
|
214
|
+
#else /* GRPC_BAZEL_BUILD */
|
215
|
+
#define GPR_PTHREAD_TLS 1
|
216
|
+
#endif /* GRPC_BAZEL_BUILD */
|
202
217
|
#endif
|
203
218
|
#define GPR_POSIX_CRASH_HANDLER 1
|
204
219
|
#endif
|
@@ -303,20 +318,23 @@
|
|
303
318
|
* This is primarily because of linker problems and toolchain misconfiguration:
|
304
319
|
* TLS isn't supported until NDK r12b per
|
305
320
|
* https://developer.android.com/ndk/downloads/revision_history.html
|
321
|
+
* TLS also does not work with Android NDK if GCC is being used as the compiler
|
322
|
+
* instead of Clang.
|
306
323
|
* Since NDK r16, `__NDK_MAJOR__` and `__NDK_MINOR__` are defined in
|
307
324
|
* <android/ndk-version.h>. For NDK < r16, users should define these macros,
|
308
325
|
* e.g. `-D__NDK_MAJOR__=11 -D__NKD_MINOR__=0` for NDK r11. */
|
309
|
-
#if defined(__ANDROID__) && defined(
|
326
|
+
#if defined(__ANDROID__) && defined(GPR_GCC_TLS)
|
310
327
|
#if __has_include(<android/ndk-version.h>)
|
311
328
|
#include <android/ndk-version.h>
|
312
329
|
#endif /* __has_include(<android/ndk-version.h>) */
|
313
|
-
#if defined(
|
314
|
-
|
315
|
-
|
330
|
+
#if (defined(__clang__) && defined(__NDK_MAJOR__) && defined(__NDK_MINOR__) && \
|
331
|
+
((__NDK_MAJOR__ < 12) || \
|
332
|
+
((__NDK_MAJOR__ == 12) && (__NDK_MINOR__ < 1)))) || \
|
333
|
+
(defined(__GNUC__) && !defined(__clang__))
|
316
334
|
#undef GPR_GCC_TLS
|
317
335
|
#define GPR_PTHREAD_TLS 1
|
318
336
|
#endif
|
319
|
-
#endif /*defined(__ANDROID__) && defined(
|
337
|
+
#endif /*defined(__ANDROID__) && defined(GPR_GCC_TLS) */
|
320
338
|
|
321
339
|
#if defined(__has_include)
|
322
340
|
#if __has_include(<atomic>)
|
@@ -416,6 +434,14 @@ typedef unsigned __int64 uint64_t;
|
|
416
434
|
#endif
|
417
435
|
#endif
|
418
436
|
|
437
|
+
#ifndef GRPC_UNUSED
|
438
|
+
#if defined(__GNUC__) && !defined(__MINGW32__)
|
439
|
+
#define GRPC_UNUSED __attribute__((unused))
|
440
|
+
#else
|
441
|
+
#define GRPC_UNUSED
|
442
|
+
#endif
|
443
|
+
#endif
|
444
|
+
|
419
445
|
#ifndef GPR_PRINT_FORMAT_CHECK
|
420
446
|
#ifdef __GNUC__
|
421
447
|
#define GPR_PRINT_FORMAT_CHECK(FORMAT_STR, ARGS) \
|
@@ -459,6 +485,21 @@ typedef unsigned __int64 uint64_t;
|
|
459
485
|
#endif /* GPR_ATTRIBUTE_NO_TSAN (2) */
|
460
486
|
#endif /* GPR_ATTRIBUTE_NO_TSAN (1) */
|
461
487
|
|
488
|
+
/* GRPC_ALLOW_EXCEPTIONS should be 0 or 1 if exceptions are allowed or not */
|
489
|
+
#ifndef GRPC_ALLOW_EXCEPTIONS
|
490
|
+
/* If not already set, set to 1 on Windows (style guide standard) but to
|
491
|
+
* 0 on non-Windows platforms unless the compiler defines __EXCEPTIONS */
|
492
|
+
#ifdef GPR_WINDOWS
|
493
|
+
#define GRPC_ALLOW_EXCEPTIONS 1
|
494
|
+
#else /* GPR_WINDOWS */
|
495
|
+
#ifdef __EXCEPTIONS
|
496
|
+
#define GRPC_ALLOW_EXCEPTIONS 1
|
497
|
+
#else /* __EXCEPTIONS */
|
498
|
+
#define GRPC_ALLOW_EXCEPTIONS 0
|
499
|
+
#endif /* __EXCEPTIONS */
|
500
|
+
#endif /* __GPR_WINDOWS */
|
501
|
+
#endif /* GRPC_ALLOW_EXCEPTIONS */
|
502
|
+
|
462
503
|
#ifndef __STDC_FORMAT_MACROS
|
463
504
|
#define __STDC_FORMAT_MACROS
|
464
505
|
#endif
|
@@ -23,7 +23,6 @@
|
|
23
23
|
|
24
24
|
#include <stddef.h>
|
25
25
|
|
26
|
-
#include <grpc/impl/codegen/exec_ctx_fwd.h>
|
27
26
|
#include <grpc/impl/codegen/gpr_slice.h>
|
28
27
|
|
29
28
|
typedef struct grpc_slice grpc_slice;
|
@@ -43,7 +42,7 @@ typedef struct grpc_slice grpc_slice;
|
|
43
42
|
|
44
43
|
typedef struct grpc_slice_refcount_vtable {
|
45
44
|
void (*ref)(void*);
|
46
|
-
void (*unref)(
|
45
|
+
void (*unref)(void*);
|
47
46
|
int (*eq)(grpc_slice a, grpc_slice b);
|
48
47
|
uint32_t (*hash)(grpc_slice slice);
|
49
48
|
} grpc_slice_refcount_vtable;
|
@@ -7,7 +7,6 @@ framework module grpc {
|
|
7
7
|
header "support/avl.h"
|
8
8
|
header "support/cmdline.h"
|
9
9
|
header "support/cpu.h"
|
10
|
-
header "support/histogram.h"
|
11
10
|
header "support/host_port.h"
|
12
11
|
header "support/log.h"
|
13
12
|
header "support/log_windows.h"
|
@@ -31,7 +30,6 @@ framework module grpc {
|
|
31
30
|
header "impl/codegen/byte_buffer_reader.h"
|
32
31
|
header "impl/codegen/compression_types.h"
|
33
32
|
header "impl/codegen/connectivity_state.h"
|
34
|
-
header "impl/codegen/exec_ctx_fwd.h"
|
35
33
|
header "impl/codegen/grpc_types.h"
|
36
34
|
header "impl/codegen/propagation_bits.h"
|
37
35
|
header "impl/codegen/slice.h"
|
data/include/grpc/slice_buffer.h
CHANGED
@@ -67,8 +67,7 @@ GPRAPI void grpc_slice_buffer_move_first_no_ref(grpc_slice_buffer* src,
|
|
67
67
|
size_t n,
|
68
68
|
grpc_slice_buffer* dst);
|
69
69
|
/** move the first n bytes of src into dst (copying them) */
|
70
|
-
GPRAPI void grpc_slice_buffer_move_first_into_buffer(
|
71
|
-
grpc_slice_buffer* src,
|
70
|
+
GPRAPI void grpc_slice_buffer_move_first_into_buffer(grpc_slice_buffer* src,
|
72
71
|
size_t n, void* dst);
|
73
72
|
/** take the first slice in the slice buffer */
|
74
73
|
GPRAPI grpc_slice grpc_slice_buffer_take_first(grpc_slice_buffer* src);
|
data/include/grpc/support/log.h
CHANGED
@@ -73,12 +73,14 @@ GPRAPI void gpr_log_verbosity_init(void);
|
|
73
73
|
/** Log overrides: applications can use this API to intercept logging calls
|
74
74
|
and use their own implementations */
|
75
75
|
|
76
|
-
|
76
|
+
struct gpr_log_func_args {
|
77
77
|
const char* file;
|
78
78
|
int line;
|
79
79
|
gpr_log_severity severity;
|
80
80
|
const char* message;
|
81
|
-
}
|
81
|
+
};
|
82
|
+
|
83
|
+
typedef struct gpr_log_func_args gpr_log_func_args;
|
82
84
|
|
83
85
|
typedef void (*gpr_log_func)(gpr_log_func_args* args);
|
84
86
|
GPRAPI void gpr_set_log_function(gpr_log_func func);
|
data/include/grpc/support/thd.h
CHANGED
@@ -42,9 +42,12 @@ typedef struct {
|
|
42
42
|
|
43
43
|
/** Create a new thread running (*thd_body)(arg) and place its thread identifier
|
44
44
|
in *t, and return true. If there are insufficient resources, return false.
|
45
|
+
thd_name is the name of the thread for identification purposes on platforms
|
46
|
+
that support thread naming.
|
45
47
|
If options==NULL, default options are used.
|
46
48
|
The thread is immediately runnable, and exits when (*thd_body)() returns. */
|
47
|
-
GPRAPI int gpr_thd_new(gpr_thd_id* t,
|
49
|
+
GPRAPI int gpr_thd_new(gpr_thd_id* t, const char* thd_name,
|
50
|
+
void (*thd_body)(void* arg), void* arg,
|
48
51
|
const gpr_thd_options* options);
|
49
52
|
|
50
53
|
/** Return a gpr_thd_options struct with all fields set to defaults. */
|
data/include/grpc/support/tls.h
CHANGED
@@ -32,6 +32,12 @@
|
|
32
32
|
GPR_TLS_DECL(foo);
|
33
33
|
Thread locals always have static scope.
|
34
34
|
|
35
|
+
Declaring a thread local class variable 'foo':
|
36
|
+
GPR_TLS_CLASS_DECL(foo);
|
37
|
+
|
38
|
+
Defining the thread local class variable:
|
39
|
+
GPR_TLS_CLASS_DEF(foo);
|
40
|
+
|
35
41
|
Initializing a thread local (must be done at library initialization
|
36
42
|
time):
|
37
43
|
gpr_tls_init(&foo);
|
@@ -26,44 +26,6 @@
|
|
26
26
|
/** Thread local storage based on gcc compiler primitives.
|
27
27
|
#include tls.h to use this - and see that file for documentation */
|
28
28
|
|
29
|
-
#ifndef NDEBUG
|
30
|
-
|
31
|
-
struct gpr_gcc_thread_local {
|
32
|
-
intptr_t value;
|
33
|
-
bool* inited;
|
34
|
-
};
|
35
|
-
|
36
|
-
#define GPR_TLS_DECL(name) \
|
37
|
-
static bool name##_inited = false; \
|
38
|
-
static __thread struct gpr_gcc_thread_local name = {0, &(name##_inited)}
|
39
|
-
|
40
|
-
#define gpr_tls_init(tls) \
|
41
|
-
do { \
|
42
|
-
GPR_ASSERT(*((tls)->inited) == false); \
|
43
|
-
*((tls)->inited) = true; \
|
44
|
-
} while (0)
|
45
|
-
|
46
|
-
/** It is allowed to call gpr_tls_init after gpr_tls_destroy is called. */
|
47
|
-
#define gpr_tls_destroy(tls) \
|
48
|
-
do { \
|
49
|
-
GPR_ASSERT(*((tls)->inited)); \
|
50
|
-
*((tls)->inited) = false; \
|
51
|
-
} while (0)
|
52
|
-
|
53
|
-
#define gpr_tls_set(tls, new_value) \
|
54
|
-
do { \
|
55
|
-
GPR_ASSERT(*((tls)->inited)); \
|
56
|
-
(tls)->value = (new_value); \
|
57
|
-
} while (0)
|
58
|
-
|
59
|
-
#define gpr_tls_get(tls) \
|
60
|
-
({ \
|
61
|
-
GPR_ASSERT(*((tls)->inited)); \
|
62
|
-
(tls)->value; \
|
63
|
-
})
|
64
|
-
|
65
|
-
#else /* NDEBUG */
|
66
|
-
|
67
29
|
struct gpr_gcc_thread_local {
|
68
30
|
intptr_t value;
|
69
31
|
};
|
@@ -71,6 +33,11 @@ struct gpr_gcc_thread_local {
|
|
71
33
|
#define GPR_TLS_DECL(name) \
|
72
34
|
static __thread struct gpr_gcc_thread_local name = {0}
|
73
35
|
|
36
|
+
#define GPR_TLS_CLASS_DECL(name) \
|
37
|
+
static __thread struct gpr_gcc_thread_local name
|
38
|
+
|
39
|
+
#define GPR_TLS_CLASS_DEF(name) __thread struct gpr_gcc_thread_local name = {0}
|
40
|
+
|
74
41
|
#define gpr_tls_init(tls) \
|
75
42
|
do { \
|
76
43
|
} while (0)
|
@@ -80,6 +47,4 @@ struct gpr_gcc_thread_local {
|
|
80
47
|
#define gpr_tls_set(tls, new_value) (((tls)->value) = (new_value))
|
81
48
|
#define gpr_tls_get(tls) ((tls)->value)
|
82
49
|
|
83
|
-
#endif /* NDEBUG */
|
84
|
-
|
85
50
|
#endif /* GRPC_SUPPORT_TLS_GCC_H */
|
@@ -26,9 +26,18 @@ struct gpr_msvc_thread_local {
|
|
26
26
|
intptr_t value;
|
27
27
|
};
|
28
28
|
|
29
|
+
/** Use GPR_TLS_DECL to declare tls static variables outside a class */
|
29
30
|
#define GPR_TLS_DECL(name) \
|
30
31
|
static __declspec(thread) struct gpr_msvc_thread_local name = {0}
|
31
32
|
|
33
|
+
/** Use GPR_TLS_CLASS_DECL to declare tls static variable members of a class.
|
34
|
+
* GPR_TLS_CLASS_DEF needs to be called to define this member. */
|
35
|
+
#define GPR_TLS_CLASS_DECL(name) \
|
36
|
+
static __declspec(thread) struct gpr_msvc_thread_local name
|
37
|
+
|
38
|
+
#define GPR_TLS_CLASS_DEF(name) \
|
39
|
+
__declspec(thread) struct gpr_msvc_thread_local name = {0}
|
40
|
+
|
32
41
|
#define gpr_tls_init(tls) \
|
33
42
|
do { \
|
34
43
|
} while (0)
|
@@ -29,8 +29,17 @@ struct gpr_pthread_thread_local {
|
|
29
29
|
pthread_key_t key;
|
30
30
|
};
|
31
31
|
|
32
|
+
/** Use GPR_TLS_DECL to declare tls static variables outside a class */
|
32
33
|
#define GPR_TLS_DECL(name) static struct gpr_pthread_thread_local name = {0}
|
33
34
|
|
35
|
+
/** Use GPR_TLS_CLASS_DECL to declare tls static variable members of a class.
|
36
|
+
* GPR_TLS_CLASS_DEF needs to be called to define this member. */
|
37
|
+
#define GPR_TLS_CLASS_DECL(name) static struct gpr_pthread_thread_local name
|
38
|
+
|
39
|
+
/** Use GPR_TLS_CLASS_DEF to declare tls static variable members of a class.
|
40
|
+
* GPR_TLS_CLASS_DEF needs to be called to define this member. */
|
41
|
+
#define GPR_TLS_CLASS_DEF(name) struct gpr_pthread_thread_local name = {0}
|
42
|
+
|
34
43
|
#define gpr_tls_init(tls) GPR_ASSERT(0 == pthread_key_create(&(tls)->key, NULL))
|
35
44
|
#define gpr_tls_destroy(tls) pthread_key_delete((tls)->key)
|
36
45
|
#define gpr_tls_get(tls) ((intptr_t)pthread_getspecific((tls)->key))
|
@@ -23,17 +23,18 @@
|
|
23
23
|
#include <grpc/support/log.h>
|
24
24
|
#include <grpc/support/sync.h>
|
25
25
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
26
|
+
#include "src/core/lib/gpr/env.h"
|
27
|
+
#include "src/core/lib/gpr/string.h"
|
26
28
|
#include "src/core/lib/iomgr/error.h"
|
27
29
|
#include "src/core/lib/iomgr/pollset.h"
|
28
30
|
#include "src/core/lib/iomgr/timer.h"
|
29
|
-
#include "src/core/lib/support/env.h"
|
30
|
-
#include "src/core/lib/support/string.h"
|
31
31
|
#include "src/core/lib/surface/channel.h"
|
32
32
|
#include "src/core/lib/surface/completion_queue.h"
|
33
33
|
|
34
34
|
#define DEFAULT_POLL_INTERVAL_MS 5000
|
35
35
|
|
36
|
-
|
36
|
+
namespace {
|
37
|
+
struct backup_poller {
|
37
38
|
grpc_timer polling_timer;
|
38
39
|
grpc_closure run_poller_closure;
|
39
40
|
grpc_closure shutdown_closure;
|
@@ -42,7 +43,8 @@ typedef struct backup_poller {
|
|
42
43
|
bool shutting_down; // guarded by pollset_mu
|
43
44
|
gpr_refcount refs;
|
44
45
|
gpr_refcount shutdown_refs;
|
45
|
-
}
|
46
|
+
};
|
47
|
+
} // namespace
|
46
48
|
|
47
49
|
static gpr_once g_once = GPR_ONCE_INIT;
|
48
50
|
static gpr_mu g_poller_mu;
|
@@ -69,61 +71,62 @@ static void init_globals() {
|
|
69
71
|
gpr_free(env);
|
70
72
|
}
|
71
73
|
|
72
|
-
static void backup_poller_shutdown_unref(
|
73
|
-
backup_poller* p) {
|
74
|
+
static void backup_poller_shutdown_unref(backup_poller* p) {
|
74
75
|
if (gpr_unref(&p->shutdown_refs)) {
|
75
|
-
grpc_pollset_destroy(
|
76
|
+
grpc_pollset_destroy(p->pollset);
|
76
77
|
gpr_free(p->pollset);
|
77
78
|
gpr_free(p);
|
78
79
|
}
|
79
80
|
}
|
80
81
|
|
81
|
-
static void done_poller(
|
82
|
-
backup_poller_shutdown_unref(
|
82
|
+
static void done_poller(void* arg, grpc_error* error) {
|
83
|
+
backup_poller_shutdown_unref((backup_poller*)arg);
|
83
84
|
}
|
84
85
|
|
85
|
-
static void g_poller_unref(
|
86
|
+
static void g_poller_unref() {
|
87
|
+
gpr_mu_lock(&g_poller_mu);
|
86
88
|
if (gpr_unref(&g_poller->refs)) {
|
87
|
-
gpr_mu_lock(&g_poller_mu);
|
88
89
|
backup_poller* p = g_poller;
|
89
90
|
g_poller = nullptr;
|
90
91
|
gpr_mu_unlock(&g_poller_mu);
|
91
92
|
gpr_mu_lock(p->pollset_mu);
|
92
93
|
p->shutting_down = true;
|
93
|
-
grpc_pollset_shutdown(
|
94
|
-
|
95
|
-
|
94
|
+
grpc_pollset_shutdown(
|
95
|
+
p->pollset, GRPC_CLOSURE_INIT(&p->shutdown_closure, done_poller, p,
|
96
|
+
grpc_schedule_on_exec_ctx));
|
96
97
|
gpr_mu_unlock(p->pollset_mu);
|
97
|
-
grpc_timer_cancel(
|
98
|
+
grpc_timer_cancel(&p->polling_timer);
|
99
|
+
} else {
|
100
|
+
gpr_mu_unlock(&g_poller_mu);
|
98
101
|
}
|
99
102
|
}
|
100
103
|
|
101
|
-
static void run_poller(
|
104
|
+
static void run_poller(void* arg, grpc_error* error) {
|
102
105
|
backup_poller* p = (backup_poller*)arg;
|
103
106
|
if (error != GRPC_ERROR_NONE) {
|
104
107
|
if (error != GRPC_ERROR_CANCELLED) {
|
105
108
|
GRPC_LOG_IF_ERROR("run_poller", GRPC_ERROR_REF(error));
|
106
109
|
}
|
107
|
-
backup_poller_shutdown_unref(
|
110
|
+
backup_poller_shutdown_unref(p);
|
108
111
|
return;
|
109
112
|
}
|
110
113
|
gpr_mu_lock(p->pollset_mu);
|
111
114
|
if (p->shutting_down) {
|
112
115
|
gpr_mu_unlock(p->pollset_mu);
|
113
|
-
backup_poller_shutdown_unref(
|
116
|
+
backup_poller_shutdown_unref(p);
|
114
117
|
return;
|
115
118
|
}
|
116
|
-
grpc_error* err =
|
117
|
-
|
119
|
+
grpc_error* err =
|
120
|
+
grpc_pollset_work(p->pollset, nullptr, grpc_core::ExecCtx::Get()->Now());
|
118
121
|
gpr_mu_unlock(p->pollset_mu);
|
119
122
|
GRPC_LOG_IF_ERROR("Run client channel backup poller", err);
|
120
|
-
grpc_timer_init(
|
121
|
-
|
123
|
+
grpc_timer_init(&p->polling_timer,
|
124
|
+
grpc_core::ExecCtx::Get()->Now() + g_poll_interval_ms,
|
122
125
|
&p->run_poller_closure);
|
123
126
|
}
|
124
127
|
|
125
128
|
void grpc_client_channel_start_backup_polling(
|
126
|
-
|
129
|
+
grpc_pollset_set* interested_parties) {
|
127
130
|
gpr_once_init(&g_once, init_globals);
|
128
131
|
if (g_poll_interval_ms == 0) {
|
129
132
|
return;
|
@@ -139,8 +142,8 @@ void grpc_client_channel_start_backup_polling(
|
|
139
142
|
gpr_ref_init(&g_poller->shutdown_refs, 2);
|
140
143
|
GRPC_CLOSURE_INIT(&g_poller->run_poller_closure, run_poller, g_poller,
|
141
144
|
grpc_schedule_on_exec_ctx);
|
142
|
-
grpc_timer_init(
|
143
|
-
|
145
|
+
grpc_timer_init(&g_poller->polling_timer,
|
146
|
+
grpc_core::ExecCtx::Get()->Now() + g_poll_interval_ms,
|
144
147
|
&g_poller->run_poller_closure);
|
145
148
|
}
|
146
149
|
|
@@ -152,14 +155,14 @@ void grpc_client_channel_start_backup_polling(
|
|
152
155
|
grpc_pollset* pollset = g_poller->pollset;
|
153
156
|
gpr_mu_unlock(&g_poller_mu);
|
154
157
|
|
155
|
-
grpc_pollset_set_add_pollset(
|
158
|
+
grpc_pollset_set_add_pollset(interested_parties, pollset);
|
156
159
|
}
|
157
160
|
|
158
161
|
void grpc_client_channel_stop_backup_polling(
|
159
|
-
|
162
|
+
grpc_pollset_set* interested_parties) {
|
160
163
|
if (g_poll_interval_ms == 0) {
|
161
164
|
return;
|
162
165
|
}
|
163
|
-
grpc_pollset_set_del_pollset(
|
164
|
-
g_poller_unref(
|
166
|
+
grpc_pollset_set_del_pollset(interested_parties, g_poller->pollset);
|
167
|
+
g_poller_unref();
|
165
168
|
}
|