grpc 1.7.3 → 1.8.0
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 +2106 -2116
- data/include/grpc/census.h +1 -432
- data/include/grpc/compression.h +9 -9
- data/include/grpc/grpc.h +115 -98
- data/include/grpc/grpc_cronet.h +3 -3
- data/include/grpc/grpc_posix.h +4 -4
- data/include/grpc/grpc_security.h +160 -88
- data/include/grpc/grpc_security_constants.h +7 -0
- data/include/grpc/impl/codegen/atm.h +9 -1
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +13 -4
- data/include/grpc/impl/codegen/atm_gcc_sync.h +6 -5
- data/include/grpc/impl/codegen/atm_windows.h +23 -22
- data/include/grpc/impl/codegen/byte_buffer.h +14 -14
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
- data/include/grpc/impl/codegen/connectivity_state.h +0 -2
- data/include/grpc/impl/codegen/grpc_types.h +32 -28
- data/include/grpc/impl/codegen/port_platform.h +48 -0
- data/include/grpc/impl/codegen/slice.h +10 -10
- data/include/grpc/impl/codegen/sync_generic.h +9 -3
- data/include/grpc/slice.h +16 -17
- data/include/grpc/slice_buffer.h +22 -22
- data/include/grpc/support/alloc.h +11 -11
- data/include/grpc/support/avl.h +28 -20
- data/include/grpc/support/cmdline.h +13 -13
- data/include/grpc/support/histogram.h +17 -17
- data/include/grpc/support/host_port.h +2 -2
- data/include/grpc/support/log.h +9 -9
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/string_util.h +2 -2
- data/include/grpc/support/subprocess.h +5 -5
- data/include/grpc/support/sync.h +43 -27
- data/include/grpc/support/thd.h +6 -6
- data/include/grpc/support/tls_gcc.h +1 -1
- data/include/grpc/support/tls_pthread.h +1 -1
- data/src/core/ext/census/{grpc_context.c → grpc_context.cc} +5 -8
- data/src/core/ext/filters/client_channel/backup_poller.cc +165 -0
- data/src/core/ext/{census/grpc_filter.h → filters/client_channel/backup_poller.h} +12 -7
- data/src/core/ext/filters/client_channel/{channel_connectivity.c → channel_connectivity.cc} +45 -42
- data/src/core/ext/filters/client_channel/{client_channel.c → client_channel.cc} +452 -417
- data/src/core/ext/filters/client_channel/client_channel.h +16 -8
- data/src/core/ext/filters/client_channel/{client_channel_factory.c → client_channel_factory.cc} +0 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +29 -21
- data/src/core/ext/filters/client_channel/{client_channel_plugin.c → client_channel_plugin.cc} +15 -19
- data/src/core/ext/filters/client_channel/{connector.c → connector.cc} +0 -0
- data/src/core/ext/filters/client_channel/connector.h +29 -21
- data/src/core/ext/filters/client_channel/{http_connect_handshaker.c → http_connect_handshaker.cc} +10 -10
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +8 -0
- data/src/core/ext/filters/client_channel/{http_proxy.c → http_proxy.cc} +14 -14
- data/src/core/ext/filters/client_channel/http_proxy.h +8 -0
- data/src/core/ext/filters/client_channel/{lb_policy.c → lb_policy.cc} +47 -48
- data/src/core/ext/filters/client_channel/lb_policy.h +76 -70
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{client_load_reporting_filter.c → client_load_reporting_filter.cc} +28 -29
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb.c → grpclb.cc} +554 -563
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +17 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_channel_secure.c → grpclb_channel_secure.cc} +17 -17
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_client_stats.c → grpclb_client_stats.cc} +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{load_balancer_api.c → load_balancer_api.cc} +64 -67
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +20 -21
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +599 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +695 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +270 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +153 -0
- data/src/core/ext/filters/client_channel/{lb_policy_factory.c → lb_policy_factory.cc} +10 -10
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -40
- data/src/core/ext/filters/client_channel/{lb_policy_registry.c → lb_policy_registry.cc} +9 -9
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +11 -3
- data/src/core/ext/filters/client_channel/{parse_address.c → parse_address.cc} +24 -24
- data/src/core/ext/filters/client_channel/parse_address.h +14 -6
- data/src/core/ext/filters/client_channel/{proxy_mapper.c → proxy_mapper.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +8 -0
- data/src/core/ext/filters/client_channel/{proxy_mapper_registry.c → proxy_mapper_registry.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -0
- data/src/core/ext/filters/client_channel/{resolver.c → resolver.cc} +21 -23
- data/src/core/ext/filters/client_channel/resolver.h +33 -27
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{dns_resolver_ares.c → dns_resolver_ares.cc} +133 -133
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -9
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_ev_driver_posix.c → grpc_ares_ev_driver_posix.cc} +58 -56
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_wrapper.c → grpc_ares_wrapper.cc} +118 -115
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +60 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/{dns_resolver.c → dns_resolver.cc} +100 -94
- data/src/core/ext/filters/client_channel/resolver/fake/{fake_resolver.c → fake_resolver.cc} +14 -14
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/{sockaddr_resolver.c → sockaddr_resolver.cc} +60 -60
- data/src/core/ext/filters/client_channel/{resolver_factory.c → resolver_factory.cc} +2 -2
- data/src/core/ext/filters/client_channel/resolver_factory.h +27 -19
- data/src/core/ext/filters/client_channel/{resolver_registry.c → resolver_registry.cc} +35 -35
- data/src/core/ext/filters/client_channel/resolver_registry.h +18 -10
- data/src/core/ext/filters/client_channel/{retry_throttle.c → retry_throttle.cc} +10 -10
- data/src/core/ext/filters/client_channel/retry_throttle.h +8 -0
- data/src/core/ext/filters/client_channel/{subchannel.c → subchannel.cc} +210 -213
- data/src/core/ext/filters/client_channel/subchannel.h +68 -60
- data/src/core/ext/filters/client_channel/{subchannel_index.c → subchannel_index.cc} +52 -52
- data/src/core/ext/filters/client_channel/subchannel_index.h +22 -14
- data/src/core/ext/filters/client_channel/{uri_parser.c → uri_parser.cc} +29 -27
- data/src/core/ext/filters/client_channel/uri_parser.h +18 -10
- data/src/core/ext/filters/deadline/{deadline_filter.c → deadline_filter.cc} +12 -15
- data/src/core/ext/filters/deadline/deadline_filter.h +11 -2
- data/src/core/ext/filters/http/client/{http_client_filter.c → http_client_filter.cc} +83 -83
- data/src/core/ext/filters/http/client/http_client_filter.h +8 -0
- data/src/core/ext/filters/http/{http_filters_plugin.c → http_filters_plugin.cc} +20 -21
- data/src/core/ext/filters/http/message_compress/{message_compress_filter.c → message_compress_filter.cc} +84 -83
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +9 -1
- data/src/core/ext/filters/http/server/{http_server_filter.c → http_server_filter.cc} +80 -78
- data/src/core/ext/filters/http/server/http_server_filter.h +8 -0
- data/src/core/ext/filters/load_reporting/{server_load_reporting_filter.c → server_load_reporting_filter.cc} +29 -29
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/load_reporting/{server_load_reporting_plugin.c → server_load_reporting_plugin.cc} +11 -11
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +13 -5
- data/src/core/ext/filters/max_age/{max_age_filter.c → max_age_filter.cc} +46 -56
- data/src/core/ext/filters/max_age/max_age_filter.h +8 -0
- data/src/core/ext/filters/message_size/{message_size_filter.c → message_size_filter.cc} +62 -40
- data/src/core/ext/filters/message_size/message_size_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_cronet_compression_filter.c → workaround_cronet_compression_filter.cc} +11 -11
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_utils.c → workaround_utils.cc} +7 -7
- data/src/core/ext/filters/workarounds/workaround_utils.h +9 -1
- data/src/core/ext/transport/chttp2/alpn/{alpn.c → alpn.cc} +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -2
- data/src/core/ext/transport/chttp2/client/{chttp2_connector.c → chttp2_connector.cc} +49 -45
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +8 -0
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create.c → channel_create.cc} +28 -27
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create_posix.c → channel_create_posix.cc} +14 -13
- data/src/core/ext/transport/chttp2/client/secure/{secure_channel_create.c → secure_channel_create.cc} +68 -66
- data/src/core/ext/transport/chttp2/server/{chttp2_server.c → chttp2_server.cc} +76 -77
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2.c → server_chttp2.cc} +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2_posix.c → server_chttp2_posix.cc} +13 -12
- data/src/core/ext/transport/chttp2/server/secure/{server_secure_chttp2.c → server_secure_chttp2.cc} +12 -10
- data/src/core/ext/transport/chttp2/transport/{bin_decoder.c → bin_decoder.cc} +7 -7
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +15 -7
- data/src/core/ext/transport/chttp2/transport/{bin_encoder.c → bin_encoder.cc} +11 -11
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{chttp2_plugin.c → chttp2_plugin.cc} +2 -9
- data/src/core/ext/transport/chttp2/transport/{chttp2_transport.c → chttp2_transport.cc} +778 -778
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -10
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +385 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +337 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{frame_data.c → frame_data.cc} +34 -34
- data/src/core/ext/transport/chttp2/transport/frame_data.h +25 -17
- data/src/core/ext/transport/chttp2/transport/{frame_goaway.c → frame_goaway.cc} +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -10
- data/src/core/ext/transport/chttp2/transport/{frame_ping.c → frame_ping.cc} +18 -19
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +12 -4
- data/src/core/ext/transport/chttp2/transport/{frame_rst_stream.c → frame_rst_stream.cc} +16 -16
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +16 -8
- data/src/core/ext/transport/chttp2/transport/{frame_settings.c → frame_settings.cc} +23 -24
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +17 -9
- data/src/core/ext/transport/chttp2/transport/{frame_window_update.c → frame_window_update.cc} +22 -24
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +14 -6
- data/src/core/ext/transport/chttp2/transport/{hpack_encoder.c → hpack_encoder.cc} +206 -161
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +23 -13
- data/src/core/ext/transport/chttp2/transport/{hpack_parser.c → hpack_parser.cc} +340 -334
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -22
- data/src/core/ext/transport/chttp2/transport/{hpack_table.c → hpack_table.cc} +25 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +19 -11
- data/src/core/ext/transport/chttp2/transport/{http2_settings.c → http2_settings.cc} +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -2
- data/src/core/ext/transport/chttp2/transport/{huffsyms.c → huffsyms.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{incoming_metadata.c → incoming_metadata.cc} +14 -13
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +18 -10
- data/src/core/ext/transport/chttp2/transport/internal.h +214 -340
- data/src/core/ext/transport/chttp2/transport/{parsing.c → parsing.cc} +152 -141
- data/src/core/ext/transport/chttp2/transport/{stream_lists.c → stream_lists.cc} +53 -53
- data/src/core/ext/transport/chttp2/transport/{stream_map.c → stream_map.cc} +35 -34
- data/src/core/ext/transport/chttp2/transport/stream_map.h +22 -14
- data/src/core/ext/transport/chttp2/transport/{varint.c → varint.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +8 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +636 -0
- data/src/core/ext/transport/inproc/{inproc_plugin.c → inproc_plugin.cc} +5 -6
- data/src/core/ext/transport/inproc/{inproc_transport.c → inproc_transport.cc} +479 -544
- data/src/core/ext/transport/inproc/inproc_transport.h +4 -4
- data/src/core/lib/backoff/backoff.cc +80 -0
- data/src/core/lib/backoff/backoff.h +83 -0
- data/src/core/lib/channel/{channel_args.c → channel_args.cc} +92 -92
- data/src/core/lib/channel/channel_args.h +45 -37
- data/src/core/lib/channel/{channel_stack.c → channel_stack.cc} +67 -68
- data/src/core/lib/channel/channel_stack.h +76 -75
- data/src/core/lib/channel/{channel_stack_builder.c → channel_stack_builder.cc} +91 -91
- data/src/core/lib/channel/channel_stack_builder.h +45 -45
- data/src/core/lib/channel/{connected_channel.c → connected_channel.cc} +70 -70
- data/src/core/lib/channel/connected_channel.h +12 -4
- data/src/core/lib/channel/context.h +2 -2
- data/src/core/lib/channel/{handshaker.c → handshaker.cc} +7 -9
- data/src/core/lib/channel/handshaker.h +9 -1
- data/src/core/lib/channel/{handshaker_factory.c → handshaker_factory.cc} +7 -7
- data/src/core/lib/channel/handshaker_factory.h +18 -10
- data/src/core/lib/channel/{handshaker_registry.c → handshaker_registry.cc} +0 -0
- data/src/core/lib/channel/handshaker_registry.h +8 -0
- data/src/core/lib/compression/algorithm_metadata.h +8 -0
- data/src/core/lib/compression/{compression.c → compression.cc} +9 -9
- data/src/core/lib/compression/{message_compress.c → message_compress.cc} +0 -0
- data/src/core/lib/compression/message_compress.h +8 -0
- data/src/core/lib/compression/{stream_compression.c → stream_compression.cc} +12 -12
- data/src/core/lib/compression/stream_compression.h +27 -19
- data/src/core/lib/compression/{stream_compression_gzip.c → stream_compression_gzip.cc} +35 -36
- data/src/core/lib/compression/stream_compression_gzip.h +8 -0
- data/src/core/lib/compression/{stream_compression_identity.c → stream_compression_identity.cc} +19 -20
- data/src/core/lib/compression/stream_compression_identity.h +8 -0
- data/src/core/lib/debug/{stats.c → stats.cc} +19 -19
- data/src/core/lib/debug/stats.h +17 -9
- data/src/core/lib/debug/{stats_data.c → stats_data.cc} +45 -22
- data/src/core/lib/debug/stats_data.h +58 -19
- data/src/core/lib/debug/trace.cc +142 -0
- data/src/core/lib/debug/trace.h +74 -14
- data/src/core/lib/http/{format_request.c → format_request.cc} +10 -10
- data/src/core/lib/http/format_request.h +12 -4
- data/src/core/lib/http/{httpcli.c → httpcli.cc} +80 -80
- data/src/core/lib/http/httpcli.h +41 -33
- data/src/core/lib/http/{httpcli_security_connector.c → httpcli_security_connector.cc} +69 -55
- data/src/core/lib/http/{parser.c → parser.cc} +42 -42
- data/src/core/lib/http/parser.h +28 -20
- data/src/core/lib/{support → iomgr}/block_annotate.h +17 -8
- data/src/core/lib/iomgr/{call_combiner.c → call_combiner.cc} +29 -17
- data/src/core/lib/iomgr/call_combiner.h +9 -1
- data/src/core/lib/iomgr/closure.h +220 -62
- data/src/core/lib/iomgr/{combiner.c → combiner.cc} +63 -62
- data/src/core/lib/iomgr/combiner.h +16 -8
- data/src/core/lib/iomgr/{endpoint.c → endpoint.cc} +6 -0
- data/src/core/lib/iomgr/endpoint.h +47 -32
- data/src/core/lib/iomgr/endpoint_pair.h +12 -4
- data/src/core/lib/iomgr/{endpoint_pair_posix.c → endpoint_pair_posix.cc} +3 -3
- data/src/core/lib/iomgr/{endpoint_pair_uv.c → endpoint_pair_uv.cc} +2 -2
- data/src/core/lib/iomgr/{endpoint_pair_windows.c → endpoint_pair_windows.cc} +6 -6
- data/src/core/lib/iomgr/{error.c → error.cc} +125 -124
- data/src/core/lib/iomgr/error.h +32 -27
- data/src/core/lib/iomgr/error_internal.h +11 -2
- data/src/core/lib/iomgr/{ev_epoll1_linux.c → ev_epoll1_linux.cc} +214 -215
- data/src/core/lib/iomgr/ev_epoll1_linux.h +9 -1
- data/src/core/lib/iomgr/ev_epollex_linux.cc +1488 -0
- data/src/core/lib/iomgr/ev_epollex_linux.h +9 -1
- data/src/core/lib/iomgr/{ev_epollsig_linux.c → ev_epollsig_linux.cc} +304 -305
- data/src/core/lib/iomgr/ev_epollsig_linux.h +12 -4
- data/src/core/lib/iomgr/{ev_poll_posix.c → ev_poll_posix.cc} +272 -283
- data/src/core/lib/iomgr/ev_poll_posix.h +10 -2
- data/src/core/lib/iomgr/ev_posix.cc +288 -0
- data/src/core/lib/iomgr/ev_posix.h +75 -67
- data/src/core/lib/iomgr/{ev_windows.c → ev_windows.cc} +2 -2
- data/src/core/lib/iomgr/exec_ctx.cc +177 -0
- data/src/core/lib/iomgr/exec_ctx.h +35 -13
- data/src/core/lib/iomgr/{executor.c → executor.cc} +34 -35
- data/src/core/lib/iomgr/executor.h +12 -4
- data/src/core/lib/iomgr/{fork_posix.c → fork_posix.cc} +0 -0
- data/src/core/lib/iomgr/{fork_windows.c → fork_windows.cc} +0 -0
- data/src/core/lib/iomgr/gethostname.h +9 -1
- data/src/core/lib/iomgr/{gethostname_fallback.c → gethostname_fallback.cc} +2 -1
- data/src/core/lib/iomgr/{gethostname_host_name_max.c → gethostname_host_name_max.cc} +4 -3
- data/src/core/lib/iomgr/{gethostname_sysconf.c → gethostname_sysconf.cc} +3 -2
- data/src/core/lib/iomgr/{iocp_windows.c → iocp_windows.cc} +23 -25
- data/src/core/lib/iomgr/iocp_windows.h +17 -3
- data/src/core/lib/iomgr/{iomgr.c → iomgr.cc} +25 -19
- data/src/core/lib/iomgr/iomgr.h +11 -3
- data/src/core/lib/iomgr/iomgr_internal.h +13 -5
- data/src/core/lib/iomgr/{iomgr_posix.c → iomgr_posix.cc} +0 -1
- data/src/core/lib/iomgr/{iomgr_uv.c → iomgr_uv.cc} +1 -1
- data/src/core/lib/iomgr/iomgr_uv.h +8 -0
- data/src/core/lib/iomgr/{iomgr_windows.c → iomgr_windows.cc} +0 -0
- data/src/core/lib/iomgr/{is_epollexclusive_available.c → is_epollexclusive_available.cc} +1 -1
- data/src/core/lib/iomgr/is_epollexclusive_available.h +8 -0
- data/src/core/lib/iomgr/{load_file.c → load_file.cc} +12 -12
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/{lockfree_event.c → lockfree_event.cc} +76 -68
- data/src/core/lib/iomgr/lockfree_event.h +30 -11
- data/src/core/lib/iomgr/{network_status_tracker.c → network_status_tracker.cc} +3 -2
- data/src/core/lib/iomgr/network_status_tracker.h +2 -2
- data/src/core/lib/iomgr/{polling_entity.c → polling_entity.cc} +18 -18
- data/src/core/lib/iomgr/polling_entity.h +21 -13
- data/src/core/lib/iomgr/pollset.h +17 -11
- data/src/core/lib/iomgr/pollset_set.h +23 -15
- data/src/core/lib/iomgr/{pollset_set_uv.c → pollset_set_uv.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_set_windows.c → pollset_set_windows.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_uv.c → pollset_uv.cc} +31 -29
- data/src/core/lib/iomgr/pollset_uv.h +8 -0
- data/src/core/lib/iomgr/{pollset_windows.c → pollset_windows.cc} +24 -24
- data/src/core/lib/iomgr/pollset_windows.h +17 -4
- data/src/core/lib/iomgr/port.h +10 -0
- data/src/core/lib/iomgr/resolve_address.h +18 -10
- data/src/core/lib/iomgr/{resolve_address_posix.c → resolve_address_posix.cc} +40 -40
- data/src/core/lib/iomgr/{resolve_address_uv.c → resolve_address_uv.cc} +61 -56
- data/src/core/lib/iomgr/{resolve_address_windows.c → resolve_address_windows.cc} +36 -34
- data/src/core/lib/iomgr/{resource_quota.c → resource_quota.cc} +209 -180
- data/src/core/lib/iomgr/resource_quota.h +45 -37
- data/src/core/lib/iomgr/{sockaddr_utils.c → sockaddr_utils.cc} +61 -61
- data/src/core/lib/iomgr/sockaddr_utils.h +23 -15
- data/src/core/lib/iomgr/sockaddr_windows.h +6 -0
- data/src/core/lib/iomgr/{socket_factory_posix.c → socket_factory_posix.cc} +20 -20
- data/src/core/lib/iomgr/socket_factory_posix.h +15 -15
- data/src/core/lib/iomgr/{socket_mutator.c → socket_mutator.cc} +18 -18
- data/src/core/lib/iomgr/socket_mutator.h +11 -11
- data/src/core/lib/iomgr/socket_utils.h +9 -1
- data/src/core/lib/iomgr/{socket_utils_common_posix.c → socket_utils_common_posix.cc} +28 -28
- data/src/core/lib/iomgr/{socket_utils_linux.c → socket_utils_linux.cc} +3 -3
- data/src/core/lib/iomgr/{socket_utils_posix.c → socket_utils_posix.cc} +3 -3
- data/src/core/lib/iomgr/socket_utils_posix.h +26 -18
- data/src/core/lib/iomgr/{socket_utils_uv.c → socket_utils_uv.cc} +1 -1
- data/src/core/lib/iomgr/{socket_utils_windows.c → socket_utils_windows.cc} +2 -2
- data/src/core/lib/iomgr/{socket_windows.c → socket_windows.cc} +18 -18
- data/src/core/lib/iomgr/socket_windows.h +26 -13
- data/src/core/lib/iomgr/tcp_client.h +14 -6
- data/src/core/lib/iomgr/{tcp_client_posix.c → tcp_client_posix.cc} +69 -70
- data/src/core/lib/iomgr/tcp_client_posix.h +11 -3
- data/src/core/lib/iomgr/{tcp_client_uv.c → tcp_client_uv.cc} +47 -48
- data/src/core/lib/iomgr/{tcp_client_windows.c → tcp_client_windows.cc} +46 -44
- data/src/core/lib/iomgr/{tcp_posix.c → tcp_posix.cc} +198 -175
- data/src/core/lib/iomgr/tcp_posix.h +15 -7
- data/src/core/lib/iomgr/tcp_server.h +31 -23
- data/src/core/lib/iomgr/{tcp_server_posix.c → tcp_server_posix.cc} +78 -77
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +27 -19
- data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc} +27 -27
- data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc} +25 -25
- data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc} +2 -2
- data/src/core/lib/iomgr/{tcp_server_uv.c → tcp_server_uv.cc} +133 -105
- data/src/core/lib/iomgr/{tcp_server_windows.c → tcp_server_windows.cc} +81 -77
- data/src/core/lib/iomgr/tcp_uv.cc +420 -0
- data/src/core/lib/iomgr/tcp_uv.h +18 -4
- data/src/core/lib/iomgr/{tcp_windows.c → tcp_windows.cc} +90 -79
- data/src/core/lib/iomgr/tcp_windows.h +17 -4
- data/src/core/lib/iomgr/{time_averaged_stats.c → time_averaged_stats.cc} +0 -0
- data/src/core/lib/iomgr/time_averaged_stats.h +8 -0
- data/src/core/lib/iomgr/timer.h +16 -9
- data/src/core/lib/iomgr/{timer_generic.c → timer_generic.cc} +130 -171
- data/src/core/lib/iomgr/timer_generic.h +4 -4
- data/src/core/lib/iomgr/{timer_heap.c → timer_heap.cc} +20 -21
- data/src/core/lib/iomgr/timer_heap.h +16 -8
- data/src/core/lib/iomgr/{timer_manager.c → timer_manager.cc} +54 -52
- data/src/core/lib/iomgr/timer_manager.h +8 -0
- data/src/core/lib/iomgr/{timer_uv.c → timer_uv.cc} +22 -24
- data/src/core/lib/iomgr/timer_uv.h +2 -2
- data/src/core/lib/iomgr/{udp_server.c → udp_server.cc} +75 -75
- data/src/core/lib/iomgr/udp_server.h +25 -17
- data/src/core/lib/iomgr/{unix_sockets_posix.c → unix_sockets_posix.cc} +22 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +14 -6
- data/src/core/lib/iomgr/{unix_sockets_posix_noop.c → unix_sockets_posix_noop.cc} +5 -5
- data/src/core/lib/iomgr/{wakeup_fd_cv.c → wakeup_fd_cv.cc} +2 -2
- data/src/core/lib/iomgr/wakeup_fd_cv.h +10 -0
- data/src/core/lib/iomgr/{wakeup_fd_eventfd.c → wakeup_fd_eventfd.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_nospecial.c → wakeup_fd_nospecial.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_pipe.c → wakeup_fd_pipe.cc} +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +9 -1
- data/src/core/lib/iomgr/{wakeup_fd_posix.c → wakeup_fd_posix.cc} +6 -7
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -0
- data/src/core/lib/json/{json.c → json.cc} +0 -0
- data/src/core/lib/json/json.h +8 -0
- data/src/core/lib/json/{json_reader.c → json_reader.cc} +18 -18
- data/src/core/lib/json/json_reader.h +26 -18
- data/src/core/lib/json/{json_string.c → json_string.cc} +57 -57
- data/src/core/lib/json/{json_writer.c → json_writer.cc} +20 -20
- data/src/core/lib/json/json_writer.h +23 -15
- data/src/core/lib/profiling/{basic_timers.c → basic_timers.cc} +34 -34
- data/src/core/lib/profiling/{stap_timers.c → stap_timers.cc} +5 -5
- data/src/core/lib/profiling/timers.h +6 -6
- data/src/core/lib/security/context/{security_context.c → security_context.cc} +98 -95
- data/src/core/lib/security/context/security_context.h +27 -29
- data/src/core/lib/security/credentials/composite/{composite_credentials.c → composite_credentials.cc} +79 -73
- data/src/core/lib/security/credentials/composite/composite_credentials.h +17 -9
- data/src/core/lib/security/credentials/{credentials.c → credentials.cc} +97 -92
- data/src/core/lib/security/credentials/credentials.h +83 -75
- data/src/core/lib/security/credentials/{credentials_metadata.c → credentials_metadata.cc} +7 -6
- data/src/core/lib/security/credentials/fake/{fake_credentials.c → fake_credentials.cc} +39 -36
- data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -5
- data/src/core/lib/security/credentials/google_default/{credentials_generic.c → credentials_generic.cc} +5 -5
- data/src/core/lib/security/credentials/google_default/{google_default_credentials.c → google_default_credentials.cc} +55 -55
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -1
- data/src/core/lib/security/credentials/iam/{iam_credentials.c → iam_credentials.cc} +19 -18
- data/src/core/lib/security/credentials/jwt/{json_token.c → json_token.cc} +80 -75
- data/src/core/lib/security/credentials/jwt/json_token.h +23 -15
- data/src/core/lib/security/credentials/jwt/{jwt_credentials.c → jwt_credentials.cc} +45 -41
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
- data/src/core/lib/security/credentials/jwt/{jwt_verifier.c → jwt_verifier.cc} +262 -252
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +38 -30
- data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc} +138 -141
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +30 -22
- data/src/core/lib/security/credentials/plugin/{plugin_credentials.c → plugin_credentials.cc} +52 -53
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +7 -7
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +344 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -0
- data/src/core/lib/security/transport/auth_filters.h +16 -0
- data/src/core/lib/security/transport/{client_auth_filter.c → client_auth_filter.cc} +127 -115
- data/src/core/lib/security/transport/{lb_targets_info.c → lb_targets_info.cc} +16 -13
- data/src/core/lib/security/transport/lb_targets_info.h +11 -3
- data/src/core/lib/security/transport/{secure_endpoint.c → secure_endpoint.cc} +84 -76
- data/src/core/lib/security/transport/secure_endpoint.h +13 -5
- data/src/core/lib/security/transport/security_connector.cc +1121 -0
- data/src/core/lib/security/transport/security_connector.h +97 -79
- data/src/core/lib/security/transport/{security_handshaker.c → security_handshaker.cc} +139 -132
- data/src/core/lib/security/transport/security_handshaker.h +11 -3
- data/src/core/lib/security/transport/{server_auth_filter.c → server_auth_filter.cc} +68 -68
- data/src/core/lib/security/transport/{tsi_error.c → tsi_error.cc} +1 -1
- data/src/core/lib/security/transport/tsi_error.h +9 -1
- data/src/core/lib/security/util/{json_util.c → json_util.cc} +11 -11
- data/src/core/lib/security/util/json_util.h +12 -4
- data/src/core/lib/slice/{b64.c → b64.cc} +15 -15
- data/src/core/lib/slice/b64.h +12 -4
- data/src/core/lib/slice/{percent_encoding.c → percent_encoding.cc} +15 -15
- data/src/core/lib/slice/percent_encoding.h +11 -3
- data/src/core/lib/slice/{slice.c → slice.cc} +64 -64
- data/src/core/lib/slice/{slice_buffer.c → slice_buffer.cc} +38 -38
- data/src/core/lib/slice/{slice_hash_table.c → slice_hash_table.cc} +7 -7
- data/src/core/lib/slice/slice_hash_table.h +19 -11
- data/src/core/lib/slice/{slice_intern.c → slice_intern.cc} +35 -34
- data/src/core/lib/slice/slice_internal.h +17 -6
- data/src/core/lib/slice/{slice_string_helpers.c → slice_string_helpers.cc} +9 -9
- data/src/core/lib/slice/slice_string_helpers.h +3 -3
- data/src/core/lib/support/abstract.h +29 -0
- data/src/core/lib/support/{alloc.c → alloc.cc} +22 -22
- data/src/core/lib/support/{arena.c → arena.cc} +12 -12
- data/src/core/lib/support/arena.h +11 -3
- data/src/core/lib/support/{atm.c → atm.cc} +1 -1
- data/src/core/lib/support/{avl.c → avl.cc} +71 -70
- data/src/core/lib/support/{cmdline.c → cmdline.cc} +62 -62
- data/src/core/lib/support/{cpu_iphone.c → cpu_iphone.cc} +2 -0
- data/src/core/lib/support/{cpu_linux.c → cpu_linux.cc} +10 -0
- data/src/core/lib/support/{cpu_posix.c → cpu_posix.cc} +27 -4
- data/src/core/lib/support/{cpu_windows.c → cpu_windows.cc} +1 -0
- data/src/core/lib/support/env.h +3 -3
- data/src/core/lib/support/{env_linux.c → env_linux.cc} +11 -11
- data/src/core/lib/support/{env_posix.c → env_posix.cc} +4 -4
- data/src/core/lib/support/{env_windows.c → env_windows.cc} +5 -5
- data/src/core/lib/support/{fork.c → fork.cc} +2 -2
- data/src/core/lib/support/{histogram.c → histogram.cc} +25 -26
- data/src/core/lib/support/{host_port.c → host_port.cc} +16 -16
- data/src/core/lib/support/{log.c → log.cc} +8 -8
- data/src/core/lib/support/{log_android.c → log_android.cc} +7 -7
- data/src/core/lib/support/{log_linux.c → log_linux.cc} +8 -8
- data/src/core/lib/support/{log_posix.c → log_posix.cc} +9 -10
- data/src/core/lib/support/{log_windows.c → log_windows.cc} +7 -7
- data/src/core/lib/support/manual_constructor.h +211 -0
- data/src/core/lib/support/memory.h +41 -0
- data/src/core/lib/support/mpscq.cc +114 -0
- data/src/core/lib/support/mpscq.h +45 -7
- data/src/core/lib/support/{murmur_hash.c → murmur_hash.cc} +9 -12
- data/src/core/lib/support/murmur_hash.h +9 -1
- data/src/core/lib/support/spinlock.h +8 -1
- data/src/core/lib/support/{string.c → string.cc} +56 -55
- data/src/core/lib/support/string.h +21 -21
- data/src/core/lib/support/{string_posix.c → string_posix.cc} +5 -4
- data/src/core/lib/support/{string_util_windows.c → string_util_windows.cc} +9 -6
- data/src/core/lib/support/{string_windows.c → string_windows.cc} +3 -2
- data/src/core/lib/support/string_windows.h +8 -0
- data/src/core/lib/support/{subprocess_posix.c → subprocess_posix.cc} +13 -13
- data/src/core/lib/support/{subprocess_windows.c → subprocess_windows.cc} +9 -9
- data/src/core/lib/support/{sync.c → sync.cc} +22 -22
- data/src/core/lib/support/{sync_posix.c → sync_posix.cc} +6 -2
- data/src/core/lib/support/{sync_windows.c → sync_windows.cc} +14 -14
- data/src/core/lib/support/{thd.c → thd.cc} +0 -0
- data/src/core/lib/support/{thd_posix.c → thd_posix.cc} +10 -10
- data/src/core/lib/support/{thd_windows.c → thd_windows.cc} +10 -10
- data/src/core/lib/support/{time.c → time.cc} +0 -0
- data/src/core/lib/support/{time_posix.c → time_posix.cc} +5 -6
- data/src/core/lib/support/{time_precise.c → time_precise.cc} +6 -4
- data/src/core/lib/support/time_precise.h +9 -1
- data/src/core/lib/support/{time_windows.c → time_windows.cc} +2 -3
- data/src/core/lib/support/{tls_pthread.c → tls_pthread.cc} +2 -2
- data/src/core/lib/support/tmpfile.h +1 -1
- data/src/core/lib/support/{tmpfile_msys.c → tmpfile_msys.cc} +2 -2
- data/src/core/lib/support/{tmpfile_posix.c → tmpfile_posix.cc} +7 -7
- data/src/core/lib/support/{tmpfile_windows.c → tmpfile_windows.cc} +2 -2
- data/src/core/lib/support/{wrap_memcpy.c → wrap_memcpy.cc} +4 -2
- data/src/core/lib/surface/{alarm.c → alarm.cc} +32 -31
- data/src/core/lib/surface/alarm_internal.h +10 -2
- data/src/core/lib/surface/{api_trace.c → api_trace.cc} +1 -1
- data/src/core/lib/surface/api_trace.h +2 -2
- data/src/core/lib/surface/{byte_buffer.c → byte_buffer.cc} +13 -13
- data/src/core/lib/surface/{byte_buffer_reader.c → byte_buffer_reader.cc} +9 -9
- data/src/core/lib/surface/{call.c → call.cc} +379 -372
- data/src/core/lib/surface/call.h +37 -38
- data/src/core/lib/surface/{call_details.c → call_details.cc} +0 -0
- data/src/core/lib/surface/{call_log_batch.c → call_log_batch.cc} +13 -11
- data/src/core/lib/surface/call_test_only.h +5 -5
- data/src/core/lib/surface/{channel.c → channel.cc} +94 -95
- data/src/core/lib/surface/channel.h +29 -21
- data/src/core/lib/surface/{channel_init.c → channel_init.cc} +13 -13
- data/src/core/lib/surface/channel_init.h +6 -6
- data/src/core/lib/surface/{channel_ping.c → channel_ping.cc} +12 -12
- data/src/core/lib/surface/{channel_stack_type.c → channel_stack_type.cc} +1 -1
- data/src/core/lib/surface/channel_stack_type.h +9 -1
- data/src/core/lib/surface/{completion_queue.c → completion_queue.cc} +416 -379
- data/src/core/lib/surface/completion_queue.h +29 -29
- data/src/core/lib/surface/{completion_queue_factory.c → completion_queue_factory.cc} +1 -1
- data/src/core/lib/surface/completion_queue_factory.h +8 -0
- data/src/core/lib/surface/{event_string.c → event_string.cc} +9 -9
- data/src/core/lib/surface/event_string.h +9 -1
- data/src/core/lib/surface/{init.c → init.cc} +16 -39
- data/src/core/lib/surface/init.h +8 -0
- data/src/core/lib/surface/{init_secure.c → init_secure.cc} +12 -25
- data/src/core/lib/surface/lame_client.cc +38 -40
- data/src/core/lib/surface/lame_client.h +8 -0
- data/src/core/lib/surface/{metadata_array.c → metadata_array.cc} +0 -0
- data/src/core/lib/surface/{server.c → server.cc} +340 -404
- data/src/core/lib/surface/server.h +22 -14
- data/src/core/lib/surface/{validate_metadata.c → validate_metadata.cc} +10 -9
- data/src/core/lib/surface/validate_metadata.h +10 -2
- data/src/core/lib/surface/{version.c → version.cc} +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +84 -0
- data/src/core/lib/transport/bdp_estimator.h +67 -42
- data/src/core/lib/transport/{byte_stream.c → byte_stream.cc} +51 -51
- data/src/core/lib/transport/byte_stream.h +41 -33
- data/src/core/lib/transport/{connectivity_state.c → connectivity_state.cc} +36 -40
- data/src/core/lib/transport/connectivity_state.h +29 -21
- data/src/core/lib/transport/{error_utils.c → error_utils.cc} +26 -22
- data/src/core/lib/transport/error_utils.h +18 -6
- data/src/core/lib/transport/{metadata.c → metadata.cc} +92 -88
- data/src/core/lib/transport/metadata.h +22 -20
- data/src/core/lib/transport/{metadata_batch.c → metadata_batch.cc} +78 -79
- data/src/core/lib/transport/metadata_batch.h +46 -45
- data/src/core/lib/transport/pid_controller.cc +48 -0
- data/src/core/lib/transport/pid_controller.h +84 -32
- data/src/core/lib/transport/{service_config.c → service_config.cc} +66 -48
- data/src/core/lib/transport/service_config.h +11 -2
- data/src/core/lib/transport/{static_metadata.c → static_metadata.cc} +2 -2
- data/src/core/lib/transport/static_metadata.h +30 -23
- data/src/core/lib/transport/{status_conversion.c → status_conversion.cc} +4 -3
- data/src/core/lib/transport/status_conversion.h +12 -2
- data/src/core/lib/transport/{timeout_encoding.c → timeout_encoding.cc} +28 -61
- data/src/core/lib/transport/timeout_encoding.h +11 -2
- data/src/core/lib/transport/{transport.c → transport.cc} +79 -79
- data/src/core/lib/transport/transport.h +78 -80
- data/src/core/lib/transport/transport_impl.h +27 -19
- data/src/core/lib/transport/{transport_op_string.c → transport_op_string.cc} +32 -30
- data/src/core/plugin_registry/{grpc_plugin_registry.c → grpc_plugin_registry.cc} +34 -38
- data/src/core/tsi/{fake_transport_security.c → fake_transport_security.cc} +141 -132
- data/src/core/tsi/fake_transport_security.h +5 -5
- data/src/core/tsi/{gts_transport_security.c → gts_transport_security.cc} +4 -4
- data/src/core/tsi/gts_transport_security.h +11 -3
- data/src/core/tsi/{ssl_transport_security.c → ssl_transport_security.cc} +309 -300
- data/src/core/tsi/ssl_transport_security.h +25 -25
- data/src/core/tsi/ssl_types.h +8 -0
- data/src/core/tsi/{transport_security.c → transport_security.cc} +94 -87
- data/src/core/tsi/transport_security.h +55 -55
- data/src/core/tsi/{transport_security_adapter.c → transport_security_adapter.cc} +58 -55
- data/src/core/tsi/transport_security_adapter.h +2 -2
- data/src/core/tsi/{transport_security_grpc.c → transport_security_grpc.cc} +21 -21
- data/src/core/tsi/transport_security_grpc.h +19 -19
- data/src/core/tsi/transport_security_interface.h +41 -41
- data/src/ruby/ext/grpc/extconf.rb +4 -2
- data/src/ruby/ext/grpc/rb_byte_buffer.c +5 -5
- data/src/ruby/ext/grpc/rb_byte_buffer.h +2 -2
- data/src/ruby/ext/grpc/rb_call.c +41 -42
- data/src/ruby/ext/grpc/rb_call.h +6 -6
- data/src/ruby/ext/grpc/rb_call_credentials.c +30 -30
- data/src/ruby/ext/grpc/rb_channel.c +87 -87
- data/src/ruby/ext/grpc/rb_channel_credentials.c +23 -23
- data/src/ruby/ext/grpc/rb_completion_queue.c +11 -11
- data/src/ruby/ext/grpc/rb_completion_queue.h +3 -3
- data/src/ruby/ext/grpc/rb_compression_options.c +20 -20
- data/src/ruby/ext/grpc/rb_event_thread.c +14 -14
- data/src/ruby/ext/grpc/rb_event_thread.h +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +8 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -58
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +242 -306
- data/src/ruby/ext/grpc/rb_server.c +23 -23
- data/src/ruby/ext/grpc/rb_server_credentials.c +13 -13
- data/src/ruby/lib/grpc/generic/rpc_server.rb +25 -12
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/checker.rb +14 -0
- data/src/ruby/spec/pb/health/checker_spec.rb +29 -0
- data/third_party/cares/config_freebsd/ares_config.h +502 -0
- data/third_party/cares/config_openbsd/ares_config.h +502 -0
- metadata +302 -328
- data/src/core/ext/census/aggregation.h +0 -51
- data/src/core/ext/census/base_resources.c +0 -56
- data/src/core/ext/census/base_resources.h +0 -24
- data/src/core/ext/census/census_interface.h +0 -61
- data/src/core/ext/census/census_rpc_stats.h +0 -86
- data/src/core/ext/census/context.c +0 -496
- data/src/core/ext/census/gen/census.pb.c +0 -161
- data/src/core/ext/census/gen/census.pb.h +0 -280
- data/src/core/ext/census/gen/trace_context.pb.c +0 -39
- data/src/core/ext/census/gen/trace_context.pb.h +0 -78
- data/src/core/ext/census/grpc_filter.c +0 -196
- data/src/core/ext/census/grpc_plugin.c +0 -70
- data/src/core/ext/census/initialize.c +0 -51
- data/src/core/ext/census/intrusive_hash_map.c +0 -305
- data/src/core/ext/census/intrusive_hash_map.h +0 -152
- data/src/core/ext/census/intrusive_hash_map_internal.h +0 -48
- data/src/core/ext/census/mlog.c +0 -586
- data/src/core/ext/census/mlog.h +0 -80
- data/src/core/ext/census/operation.c +0 -48
- data/src/core/ext/census/placeholders.c +0 -49
- data/src/core/ext/census/resource.c +0 -303
- data/src/core/ext/census/resource.h +0 -48
- data/src/core/ext/census/rpc_metric_id.h +0 -36
- data/src/core/ext/census/trace_context.c +0 -71
- data/src/core/ext/census/trace_context.h +0 -56
- data/src/core/ext/census/trace_label.h +0 -46
- data/src/core/ext/census/trace_propagation.h +0 -48
- data/src/core/ext/census/trace_status.h +0 -30
- data/src/core/ext/census/trace_string.h +0 -35
- data/src/core/ext/census/tracing.c +0 -55
- data/src/core/ext/census/tracing.h +0 -109
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +0 -714
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +0 -924
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +0 -60
- data/src/core/ext/transport/chttp2/transport/flow_control.c +0 -502
- data/src/core/ext/transport/chttp2/transport/writing.c +0 -534
- data/src/core/lib/debug/trace.c +0 -146
- data/src/core/lib/iomgr/closure.c +0 -219
- data/src/core/lib/iomgr/ev_epollex_linux.c +0 -1461
- data/src/core/lib/iomgr/ev_posix.c +0 -266
- data/src/core/lib/iomgr/exec_ctx.c +0 -113
- data/src/core/lib/iomgr/tcp_uv.c +0 -381
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +0 -194
- data/src/core/lib/security/transport/security_connector.c +0 -914
- data/src/core/lib/support/backoff.c +0 -72
- data/src/core/lib/support/backoff.h +0 -56
- data/src/core/lib/support/mpscq.c +0 -79
- data/src/core/lib/support/stack_lockfree.c +0 -137
- data/src/core/lib/support/stack_lockfree.h +0 -38
- data/src/core/lib/transport/bdp_estimator.c +0 -110
- data/src/core/lib/transport/pid_controller.c +0 -63
@@ -23,8 +23,8 @@
|
|
23
23
|
void grpc_network_status_init(void);
|
24
24
|
void grpc_network_status_shutdown(void);
|
25
25
|
|
26
|
-
void grpc_network_status_register_endpoint(grpc_endpoint
|
27
|
-
void grpc_network_status_unregister_endpoint(grpc_endpoint
|
26
|
+
void grpc_network_status_register_endpoint(grpc_endpoint* ep);
|
27
|
+
void grpc_network_status_unregister_endpoint(grpc_endpoint* ep);
|
28
28
|
void grpc_network_status_shutdown_all_endpoints();
|
29
29
|
|
30
30
|
#endif /* GRPC_CORE_LIB_IOMGR_NETWORK_STATUS_TRACKER_H */
|
@@ -22,7 +22,7 @@
|
|
22
22
|
#include "src/core/lib/iomgr/polling_entity.h"
|
23
23
|
|
24
24
|
grpc_polling_entity grpc_polling_entity_create_from_pollset_set(
|
25
|
-
grpc_pollset_set
|
25
|
+
grpc_pollset_set* pollset_set) {
|
26
26
|
grpc_polling_entity pollent;
|
27
27
|
pollent.pollent.pollset_set = pollset_set;
|
28
28
|
pollent.tag = GRPC_POLLS_POLLSET_SET;
|
@@ -30,40 +30,40 @@ grpc_polling_entity grpc_polling_entity_create_from_pollset_set(
|
|
30
30
|
}
|
31
31
|
|
32
32
|
grpc_polling_entity grpc_polling_entity_create_from_pollset(
|
33
|
-
grpc_pollset
|
33
|
+
grpc_pollset* pollset) {
|
34
34
|
grpc_polling_entity pollent;
|
35
35
|
pollent.pollent.pollset = pollset;
|
36
36
|
pollent.tag = GRPC_POLLS_POLLSET;
|
37
37
|
return pollent;
|
38
38
|
}
|
39
39
|
|
40
|
-
grpc_pollset
|
40
|
+
grpc_pollset* grpc_polling_entity_pollset(grpc_polling_entity* pollent) {
|
41
41
|
if (pollent->tag == GRPC_POLLS_POLLSET) {
|
42
42
|
return pollent->pollent.pollset;
|
43
43
|
}
|
44
|
-
return
|
44
|
+
return nullptr;
|
45
45
|
}
|
46
46
|
|
47
|
-
grpc_pollset_set
|
48
|
-
grpc_polling_entity
|
47
|
+
grpc_pollset_set* grpc_polling_entity_pollset_set(
|
48
|
+
grpc_polling_entity* pollent) {
|
49
49
|
if (pollent->tag == GRPC_POLLS_POLLSET_SET) {
|
50
50
|
return pollent->pollent.pollset_set;
|
51
51
|
}
|
52
|
-
return
|
52
|
+
return nullptr;
|
53
53
|
}
|
54
54
|
|
55
|
-
bool grpc_polling_entity_is_empty(const grpc_polling_entity
|
55
|
+
bool grpc_polling_entity_is_empty(const grpc_polling_entity* pollent) {
|
56
56
|
return pollent->tag == GRPC_POLLS_NONE;
|
57
57
|
}
|
58
58
|
|
59
|
-
void grpc_polling_entity_add_to_pollset_set(grpc_exec_ctx
|
60
|
-
grpc_polling_entity
|
61
|
-
grpc_pollset_set
|
59
|
+
void grpc_polling_entity_add_to_pollset_set(grpc_exec_ctx* exec_ctx,
|
60
|
+
grpc_polling_entity* pollent,
|
61
|
+
grpc_pollset_set* pss_dst) {
|
62
62
|
if (pollent->tag == GRPC_POLLS_POLLSET) {
|
63
|
-
GPR_ASSERT(pollent->pollent.pollset !=
|
63
|
+
GPR_ASSERT(pollent->pollent.pollset != nullptr);
|
64
64
|
grpc_pollset_set_add_pollset(exec_ctx, pss_dst, pollent->pollent.pollset);
|
65
65
|
} else if (pollent->tag == GRPC_POLLS_POLLSET_SET) {
|
66
|
-
GPR_ASSERT(pollent->pollent.pollset_set !=
|
66
|
+
GPR_ASSERT(pollent->pollent.pollset_set != nullptr);
|
67
67
|
grpc_pollset_set_add_pollset_set(exec_ctx, pss_dst,
|
68
68
|
pollent->pollent.pollset_set);
|
69
69
|
} else {
|
@@ -72,14 +72,14 @@ void grpc_polling_entity_add_to_pollset_set(grpc_exec_ctx *exec_ctx,
|
|
72
72
|
}
|
73
73
|
}
|
74
74
|
|
75
|
-
void grpc_polling_entity_del_from_pollset_set(grpc_exec_ctx
|
76
|
-
grpc_polling_entity
|
77
|
-
grpc_pollset_set
|
75
|
+
void grpc_polling_entity_del_from_pollset_set(grpc_exec_ctx* exec_ctx,
|
76
|
+
grpc_polling_entity* pollent,
|
77
|
+
grpc_pollset_set* pss_dst) {
|
78
78
|
if (pollent->tag == GRPC_POLLS_POLLSET) {
|
79
|
-
GPR_ASSERT(pollent->pollent.pollset !=
|
79
|
+
GPR_ASSERT(pollent->pollent.pollset != nullptr);
|
80
80
|
grpc_pollset_set_del_pollset(exec_ctx, pss_dst, pollent->pollent.pollset);
|
81
81
|
} else if (pollent->tag == GRPC_POLLS_POLLSET_SET) {
|
82
|
-
GPR_ASSERT(pollent->pollent.pollset_set !=
|
82
|
+
GPR_ASSERT(pollent->pollent.pollset_set != nullptr);
|
83
83
|
grpc_pollset_set_del_pollset_set(exec_ctx, pss_dst,
|
84
84
|
pollent->pollent.pollset_set);
|
85
85
|
} else {
|
@@ -22,6 +22,10 @@
|
|
22
22
|
#include "src/core/lib/iomgr/pollset.h"
|
23
23
|
#include "src/core/lib/iomgr/pollset_set.h"
|
24
24
|
|
25
|
+
#ifdef __cplusplus
|
26
|
+
extern "C" {
|
27
|
+
#endif
|
28
|
+
|
25
29
|
typedef enum grpc_pollset_tag {
|
26
30
|
GRPC_POLLS_NONE,
|
27
31
|
GRPC_POLLS_POLLSET,
|
@@ -34,34 +38,38 @@ typedef enum grpc_pollset_tag {
|
|
34
38
|
|
35
39
|
typedef struct grpc_polling_entity {
|
36
40
|
union {
|
37
|
-
grpc_pollset
|
38
|
-
grpc_pollset_set
|
41
|
+
grpc_pollset* pollset;
|
42
|
+
grpc_pollset_set* pollset_set;
|
39
43
|
} pollent;
|
40
44
|
grpc_pollset_tag tag;
|
41
45
|
} grpc_polling_entity;
|
42
46
|
|
43
47
|
grpc_polling_entity grpc_polling_entity_create_from_pollset_set(
|
44
|
-
grpc_pollset_set
|
48
|
+
grpc_pollset_set* pollset_set);
|
45
49
|
grpc_polling_entity grpc_polling_entity_create_from_pollset(
|
46
|
-
grpc_pollset
|
50
|
+
grpc_pollset* pollset);
|
47
51
|
|
48
52
|
/** If \a pollent contains a pollset, return it. Otherwise, return NULL */
|
49
|
-
grpc_pollset
|
53
|
+
grpc_pollset* grpc_polling_entity_pollset(grpc_polling_entity* pollent);
|
50
54
|
|
51
55
|
/** If \a pollent contains a pollset_set, return it. Otherwise, return NULL */
|
52
|
-
grpc_pollset_set
|
56
|
+
grpc_pollset_set* grpc_polling_entity_pollset_set(grpc_polling_entity* pollent);
|
53
57
|
|
54
|
-
bool grpc_polling_entity_is_empty(const grpc_polling_entity
|
58
|
+
bool grpc_polling_entity_is_empty(const grpc_polling_entity* pollent);
|
55
59
|
|
56
60
|
/** Add the pollset or pollset_set in \a pollent to the destination pollset_set
|
57
61
|
* \a * pss_dst */
|
58
|
-
void grpc_polling_entity_add_to_pollset_set(grpc_exec_ctx
|
59
|
-
grpc_polling_entity
|
60
|
-
grpc_pollset_set
|
62
|
+
void grpc_polling_entity_add_to_pollset_set(grpc_exec_ctx* exec_ctx,
|
63
|
+
grpc_polling_entity* pollent,
|
64
|
+
grpc_pollset_set* pss_dst);
|
61
65
|
|
62
66
|
/** Delete the pollset or pollset_set in \a pollent from the destination
|
63
67
|
* pollset_set \a * pss_dst */
|
64
|
-
void grpc_polling_entity_del_from_pollset_set(grpc_exec_ctx
|
65
|
-
grpc_polling_entity
|
66
|
-
grpc_pollset_set
|
68
|
+
void grpc_polling_entity_del_from_pollset_set(grpc_exec_ctx* exec_ctx,
|
69
|
+
grpc_polling_entity* pollent,
|
70
|
+
grpc_pollset_set* pss_dst);
|
71
|
+
#ifdef __cplusplus
|
72
|
+
}
|
73
|
+
#endif
|
74
|
+
|
67
75
|
#endif /* GRPC_CORE_LIB_IOMGR_POLLING_ENTITY_H */
|
@@ -25,10 +25,12 @@
|
|
25
25
|
|
26
26
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
27
27
|
|
28
|
-
#
|
29
|
-
extern
|
28
|
+
#ifdef __cplusplus
|
29
|
+
extern "C" {
|
30
30
|
#endif
|
31
31
|
|
32
|
+
extern grpc_core::DebugOnlyTraceFlag grpc_trace_fd_refcount;
|
33
|
+
|
32
34
|
/* A grpc_pollset is a set of file descriptors that a higher level item is
|
33
35
|
interested in. For example:
|
34
36
|
- a server will typically keep a pollset containing all connected channels,
|
@@ -41,12 +43,12 @@ typedef struct grpc_pollset_worker grpc_pollset_worker;
|
|
41
43
|
|
42
44
|
size_t grpc_pollset_size(void);
|
43
45
|
/* Initialize a pollset: assumes *pollset contains all zeros */
|
44
|
-
void grpc_pollset_init(grpc_pollset
|
46
|
+
void grpc_pollset_init(grpc_pollset* pollset, gpr_mu** mu);
|
45
47
|
/* Begin shutting down the pollset, and call closure when done.
|
46
48
|
* pollset's mutex must be held */
|
47
|
-
void grpc_pollset_shutdown(grpc_exec_ctx
|
48
|
-
grpc_closure
|
49
|
-
void grpc_pollset_destroy(grpc_exec_ctx
|
49
|
+
void grpc_pollset_shutdown(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
|
50
|
+
grpc_closure* closure);
|
51
|
+
void grpc_pollset_destroy(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset);
|
50
52
|
|
51
53
|
/* Do some work on a pollset.
|
52
54
|
May involve invoking asynchronous callbacks, or actually polling file
|
@@ -70,14 +72,18 @@ void grpc_pollset_destroy(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset);
|
|
70
72
|
May call grpc_closure_list_run on grpc_closure_list, without holding the
|
71
73
|
pollset
|
72
74
|
lock */
|
73
|
-
grpc_error
|
74
|
-
grpc_pollset_worker
|
75
|
-
|
75
|
+
grpc_error* grpc_pollset_work(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
|
76
|
+
grpc_pollset_worker** worker,
|
77
|
+
grpc_millis deadline) GRPC_MUST_USE_RESULT;
|
76
78
|
|
77
79
|
/* Break one polling thread out of polling work for this pollset.
|
78
80
|
If specific_worker is non-NULL, then kick that worker. */
|
79
|
-
grpc_error
|
80
|
-
grpc_pollset_worker
|
81
|
+
grpc_error* grpc_pollset_kick(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
|
82
|
+
grpc_pollset_worker* specific_worker)
|
81
83
|
GRPC_MUST_USE_RESULT;
|
82
84
|
|
85
|
+
#ifdef __cplusplus
|
86
|
+
}
|
87
|
+
#endif
|
88
|
+
|
83
89
|
#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_H */
|
@@ -21,6 +21,10 @@
|
|
21
21
|
|
22
22
|
#include "src/core/lib/iomgr/pollset.h"
|
23
23
|
|
24
|
+
#ifdef __cplusplus
|
25
|
+
extern "C" {
|
26
|
+
#endif
|
27
|
+
|
24
28
|
/* A grpc_pollset_set is a set of pollsets that are interested in an
|
25
29
|
action. Adding a pollset to a pollset_set automatically adds any
|
26
30
|
fd's (etc) that have been registered with the set_set to that pollset.
|
@@ -28,20 +32,24 @@
|
|
28
32
|
|
29
33
|
typedef struct grpc_pollset_set grpc_pollset_set;
|
30
34
|
|
31
|
-
grpc_pollset_set
|
32
|
-
void grpc_pollset_set_destroy(grpc_exec_ctx
|
33
|
-
grpc_pollset_set
|
34
|
-
void grpc_pollset_set_add_pollset(grpc_exec_ctx
|
35
|
-
grpc_pollset_set
|
36
|
-
grpc_pollset
|
37
|
-
void grpc_pollset_set_del_pollset(grpc_exec_ctx
|
38
|
-
grpc_pollset_set
|
39
|
-
grpc_pollset
|
40
|
-
void grpc_pollset_set_add_pollset_set(grpc_exec_ctx
|
41
|
-
grpc_pollset_set
|
42
|
-
grpc_pollset_set
|
43
|
-
void grpc_pollset_set_del_pollset_set(grpc_exec_ctx
|
44
|
-
grpc_pollset_set
|
45
|
-
grpc_pollset_set
|
35
|
+
grpc_pollset_set* grpc_pollset_set_create(void);
|
36
|
+
void grpc_pollset_set_destroy(grpc_exec_ctx* exec_ctx,
|
37
|
+
grpc_pollset_set* pollset_set);
|
38
|
+
void grpc_pollset_set_add_pollset(grpc_exec_ctx* exec_ctx,
|
39
|
+
grpc_pollset_set* pollset_set,
|
40
|
+
grpc_pollset* pollset);
|
41
|
+
void grpc_pollset_set_del_pollset(grpc_exec_ctx* exec_ctx,
|
42
|
+
grpc_pollset_set* pollset_set,
|
43
|
+
grpc_pollset* pollset);
|
44
|
+
void grpc_pollset_set_add_pollset_set(grpc_exec_ctx* exec_ctx,
|
45
|
+
grpc_pollset_set* bag,
|
46
|
+
grpc_pollset_set* item);
|
47
|
+
void grpc_pollset_set_del_pollset_set(grpc_exec_ctx* exec_ctx,
|
48
|
+
grpc_pollset_set* bag,
|
49
|
+
grpc_pollset_set* item);
|
50
|
+
|
51
|
+
#ifdef __cplusplus
|
52
|
+
}
|
53
|
+
#endif
|
46
54
|
|
47
55
|
#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_SET_H */
|
File without changes
|
File without changes
|
@@ -34,13 +34,10 @@
|
|
34
34
|
|
35
35
|
#include "src/core/lib/debug/trace.h"
|
36
36
|
|
37
|
-
|
38
|
-
grpc_tracer_flag grpc_trace_fd_refcount =
|
39
|
-
GRPC_TRACER_INITIALIZER(false, "fd_refcount");
|
40
|
-
#endif
|
37
|
+
grpc_core::DebugOnlyTraceFlag grpc_trace_fd_refcount(false, "fd_refcount");
|
41
38
|
|
42
39
|
struct grpc_pollset {
|
43
|
-
uv_timer_t timer;
|
40
|
+
uv_timer_t* timer;
|
44
41
|
int shutting_down;
|
45
42
|
};
|
46
43
|
|
@@ -55,17 +52,17 @@ gpr_mu grpc_polling_mu;
|
|
55
52
|
immediately in the next loop iteration.
|
56
53
|
Note: In the future, if there is a bug that involves missing wakeups in the
|
57
54
|
future, try adding a uv_async_t to kick the loop differently */
|
58
|
-
uv_timer_t
|
55
|
+
uv_timer_t* dummy_uv_handle;
|
59
56
|
|
60
57
|
size_t grpc_pollset_size() { return sizeof(grpc_pollset); }
|
61
58
|
|
62
|
-
void dummy_timer_cb(uv_timer_t
|
59
|
+
void dummy_timer_cb(uv_timer_t* handle) {}
|
63
60
|
|
64
|
-
void dummy_handle_close_cb(uv_handle_t
|
61
|
+
void dummy_handle_close_cb(uv_handle_t* handle) { gpr_free(handle); }
|
65
62
|
|
66
63
|
void grpc_pollset_global_init(void) {
|
67
64
|
gpr_mu_init(&grpc_polling_mu);
|
68
|
-
dummy_uv_handle = gpr_malloc(sizeof(uv_timer_t));
|
65
|
+
dummy_uv_handle = (uv_timer_t*)gpr_malloc(sizeof(uv_timer_t));
|
69
66
|
uv_timer_init(uv_default_loop(), dummy_uv_handle);
|
70
67
|
grpc_pollset_work_run_loop = 1;
|
71
68
|
}
|
@@ -73,22 +70,26 @@ void grpc_pollset_global_init(void) {
|
|
73
70
|
void grpc_pollset_global_shutdown(void) {
|
74
71
|
GRPC_UV_ASSERT_SAME_THREAD();
|
75
72
|
gpr_mu_destroy(&grpc_polling_mu);
|
76
|
-
uv_close((uv_handle_t
|
73
|
+
uv_close((uv_handle_t*)dummy_uv_handle, dummy_handle_close_cb);
|
77
74
|
}
|
78
75
|
|
79
|
-
static void timer_run_cb(uv_timer_t
|
76
|
+
static void timer_run_cb(uv_timer_t* timer) {}
|
80
77
|
|
81
|
-
static void timer_close_cb(uv_handle_t
|
78
|
+
static void timer_close_cb(uv_handle_t* handle) {
|
79
|
+
handle->data = (void*)1;
|
80
|
+
gpr_free(handle);
|
81
|
+
}
|
82
82
|
|
83
|
-
void grpc_pollset_init(grpc_pollset
|
83
|
+
void grpc_pollset_init(grpc_pollset* pollset, gpr_mu** mu) {
|
84
84
|
GRPC_UV_ASSERT_SAME_THREAD();
|
85
85
|
*mu = &grpc_polling_mu;
|
86
|
-
|
86
|
+
pollset->timer = (uv_timer_t*)gpr_malloc(sizeof(uv_timer_t));
|
87
|
+
uv_timer_init(uv_default_loop(), pollset->timer);
|
87
88
|
pollset->shutting_down = 0;
|
88
89
|
}
|
89
90
|
|
90
|
-
void grpc_pollset_shutdown(grpc_exec_ctx
|
91
|
-
grpc_closure
|
91
|
+
void grpc_pollset_shutdown(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
|
92
|
+
grpc_closure* closure) {
|
92
93
|
GPR_ASSERT(!pollset->shutting_down);
|
93
94
|
GRPC_UV_ASSERT_SAME_THREAD();
|
94
95
|
pollset->shutting_down = 1;
|
@@ -102,38 +103,39 @@ void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
|
|
102
103
|
GRPC_CLOSURE_SCHED(exec_ctx, closure, GRPC_ERROR_NONE);
|
103
104
|
}
|
104
105
|
|
105
|
-
void grpc_pollset_destroy(grpc_exec_ctx
|
106
|
+
void grpc_pollset_destroy(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset) {
|
106
107
|
GRPC_UV_ASSERT_SAME_THREAD();
|
107
|
-
uv_close((uv_handle_t
|
108
|
+
uv_close((uv_handle_t*)pollset->timer, timer_close_cb);
|
108
109
|
// timer.data is a boolean indicating that the timer has finished closing
|
109
|
-
pollset->timer
|
110
|
+
pollset->timer->data = (void*)0;
|
110
111
|
if (grpc_pollset_work_run_loop) {
|
111
|
-
while (!pollset->timer
|
112
|
+
while (!pollset->timer->data) {
|
112
113
|
uv_run(uv_default_loop(), UV_RUN_NOWAIT);
|
113
114
|
}
|
114
115
|
}
|
115
116
|
}
|
116
117
|
|
117
|
-
grpc_error
|
118
|
-
grpc_pollset_worker
|
119
|
-
|
118
|
+
grpc_error* grpc_pollset_work(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
|
119
|
+
grpc_pollset_worker** worker_hdl,
|
120
|
+
grpc_millis deadline) {
|
120
121
|
uint64_t timeout;
|
121
122
|
GRPC_UV_ASSERT_SAME_THREAD();
|
122
123
|
gpr_mu_unlock(&grpc_polling_mu);
|
123
124
|
if (grpc_pollset_work_run_loop) {
|
124
|
-
|
125
|
-
|
125
|
+
grpc_millis now = grpc_exec_ctx_now(exec_ctx);
|
126
|
+
if (deadline >= now) {
|
127
|
+
timeout = deadline - now;
|
126
128
|
} else {
|
127
129
|
timeout = 0;
|
128
130
|
}
|
129
131
|
/* We special-case timeout=0 so that we don't bother with the timer when
|
130
132
|
the loop won't block anyway */
|
131
133
|
if (timeout > 0) {
|
132
|
-
uv_timer_start(
|
134
|
+
uv_timer_start(pollset->timer, timer_run_cb, timeout, 0);
|
133
135
|
/* Run until there is some I/O activity or the timer triggers. It doesn't
|
134
136
|
matter which happens */
|
135
137
|
uv_run(uv_default_loop(), UV_RUN_ONCE);
|
136
|
-
uv_timer_stop(
|
138
|
+
uv_timer_stop(pollset->timer);
|
137
139
|
} else {
|
138
140
|
uv_run(uv_default_loop(), UV_RUN_NOWAIT);
|
139
141
|
}
|
@@ -145,8 +147,8 @@ grpc_error *grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
|
|
145
147
|
return GRPC_ERROR_NONE;
|
146
148
|
}
|
147
149
|
|
148
|
-
grpc_error
|
149
|
-
grpc_pollset_worker
|
150
|
+
grpc_error* grpc_pollset_kick(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
|
151
|
+
grpc_pollset_worker* specific_worker) {
|
150
152
|
GRPC_UV_ASSERT_SAME_THREAD();
|
151
153
|
uv_timer_start(dummy_uv_handle, dummy_timer_cb, 0, 0);
|
152
154
|
return GRPC_ERROR_NONE;
|
@@ -19,9 +19,17 @@
|
|
19
19
|
#ifndef GRPC_CORE_LIB_IOMGR_POLLSET_UV_H
|
20
20
|
#define GRPC_CORE_LIB_IOMGR_POLLSET_UV_H
|
21
21
|
|
22
|
+
#ifdef __cplusplus
|
23
|
+
extern "C" {
|
24
|
+
#endif
|
25
|
+
|
22
26
|
extern int grpc_pollset_work_run_loop;
|
23
27
|
|
24
28
|
void grpc_pollset_global_init(void);
|
25
29
|
void grpc_pollset_global_shutdown(void);
|
26
30
|
|
31
|
+
#ifdef __cplusplus
|
32
|
+
}
|
33
|
+
#endif
|
34
|
+
|
27
35
|
#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_UV_H */
|
@@ -28,15 +28,12 @@
|
|
28
28
|
#include "src/core/lib/iomgr/pollset.h"
|
29
29
|
#include "src/core/lib/iomgr/pollset_windows.h"
|
30
30
|
|
31
|
-
#define GRPC_POLLSET_KICK_BROADCAST ((grpc_pollset_worker
|
31
|
+
#define GRPC_POLLSET_KICK_BROADCAST ((grpc_pollset_worker*)1)
|
32
32
|
|
33
|
-
|
34
|
-
grpc_tracer_flag grpc_trace_fd_refcount =
|
35
|
-
GRPC_TRACER_INITIALIZER(false, "fd_refcount");
|
36
|
-
#endif
|
33
|
+
grpc_core::DebugOnlyTraceFlag grpc_trace_fd_refcount(false, "fd_refcount");
|
37
34
|
|
38
35
|
gpr_mu grpc_polling_mu;
|
39
|
-
static grpc_pollset_worker
|
36
|
+
static grpc_pollset_worker* g_active_poller;
|
40
37
|
static grpc_pollset_worker g_global_root_worker;
|
41
38
|
|
42
39
|
void grpc_pollset_global_init(void) {
|
@@ -49,22 +46,22 @@ void grpc_pollset_global_init(void) {
|
|
49
46
|
|
50
47
|
void grpc_pollset_global_shutdown(void) { gpr_mu_destroy(&grpc_polling_mu); }
|
51
48
|
|
52
|
-
static void remove_worker(grpc_pollset_worker
|
49
|
+
static void remove_worker(grpc_pollset_worker* worker,
|
53
50
|
grpc_pollset_worker_link_type type) {
|
54
51
|
worker->links[type].prev->links[type].next = worker->links[type].next;
|
55
52
|
worker->links[type].next->links[type].prev = worker->links[type].prev;
|
56
53
|
worker->links[type].next = worker->links[type].prev = worker;
|
57
54
|
}
|
58
55
|
|
59
|
-
static int has_workers(grpc_pollset_worker
|
56
|
+
static int has_workers(grpc_pollset_worker* root,
|
60
57
|
grpc_pollset_worker_link_type type) {
|
61
58
|
return root->links[type].next != root;
|
62
59
|
}
|
63
60
|
|
64
|
-
static grpc_pollset_worker
|
65
|
-
grpc_pollset_worker
|
61
|
+
static grpc_pollset_worker* pop_front_worker(
|
62
|
+
grpc_pollset_worker* root, grpc_pollset_worker_link_type type) {
|
66
63
|
if (has_workers(root, type)) {
|
67
|
-
grpc_pollset_worker
|
64
|
+
grpc_pollset_worker* w = root->links[type].next;
|
68
65
|
remove_worker(w, type);
|
69
66
|
return w;
|
70
67
|
} else {
|
@@ -72,9 +69,9 @@ static grpc_pollset_worker *pop_front_worker(
|
|
72
69
|
}
|
73
70
|
}
|
74
71
|
|
75
|
-
static void push_front_worker(grpc_pollset_worker
|
72
|
+
static void push_front_worker(grpc_pollset_worker* root,
|
76
73
|
grpc_pollset_worker_link_type type,
|
77
|
-
grpc_pollset_worker
|
74
|
+
grpc_pollset_worker* worker) {
|
78
75
|
worker->links[type].prev = root;
|
79
76
|
worker->links[type].next = worker->links[type].prev->links[type].next;
|
80
77
|
worker->links[type].prev->links[type].next =
|
@@ -88,15 +85,15 @@ size_t grpc_pollset_size(void) { return sizeof(grpc_pollset); }
|
|
88
85
|
set of features for the sake of the rest of grpc. But grpc_pollset_work
|
89
86
|
won't actually do any polling, and return as quickly as possible. */
|
90
87
|
|
91
|
-
void grpc_pollset_init(grpc_pollset
|
88
|
+
void grpc_pollset_init(grpc_pollset* pollset, gpr_mu** mu) {
|
92
89
|
*mu = &grpc_polling_mu;
|
93
90
|
pollset->root_worker.links[GRPC_POLLSET_WORKER_LINK_POLLSET].next =
|
94
91
|
pollset->root_worker.links[GRPC_POLLSET_WORKER_LINK_POLLSET].prev =
|
95
92
|
&pollset->root_worker;
|
96
93
|
}
|
97
94
|
|
98
|
-
void grpc_pollset_shutdown(grpc_exec_ctx
|
99
|
-
grpc_closure
|
95
|
+
void grpc_pollset_shutdown(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
|
96
|
+
grpc_closure* closure) {
|
100
97
|
pollset->shutting_down = 1;
|
101
98
|
grpc_pollset_kick(exec_ctx, pollset, GRPC_POLLSET_KICK_BROADCAST);
|
102
99
|
if (!pollset->is_iocp_worker) {
|
@@ -106,11 +103,11 @@ void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
|
|
106
103
|
}
|
107
104
|
}
|
108
105
|
|
109
|
-
void grpc_pollset_destroy(grpc_exec_ctx
|
106
|
+
void grpc_pollset_destroy(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset) {}
|
110
107
|
|
111
|
-
grpc_error
|
112
|
-
grpc_pollset_worker
|
113
|
-
|
108
|
+
grpc_error* grpc_pollset_work(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
|
109
|
+
grpc_pollset_worker** worker_hdl,
|
110
|
+
grpc_millis deadline) {
|
114
111
|
grpc_pollset_worker worker;
|
115
112
|
if (worker_hdl) *worker_hdl = &worker;
|
116
113
|
|
@@ -124,7 +121,7 @@ grpc_error *grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
|
|
124
121
|
gpr_cv_init(&worker.cv);
|
125
122
|
if (!pollset->kicked_without_pollers && !pollset->shutting_down) {
|
126
123
|
if (g_active_poller == NULL) {
|
127
|
-
grpc_pollset_worker
|
124
|
+
grpc_pollset_worker* next_worker;
|
128
125
|
/* become poller */
|
129
126
|
pollset->is_iocp_worker = 1;
|
130
127
|
g_active_poller = &worker;
|
@@ -159,9 +156,12 @@ grpc_error *grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
|
|
159
156
|
&worker);
|
160
157
|
added_worker = 1;
|
161
158
|
while (!worker.kicked) {
|
162
|
-
if (gpr_cv_wait(&worker.cv, &grpc_polling_mu,
|
159
|
+
if (gpr_cv_wait(&worker.cv, &grpc_polling_mu,
|
160
|
+
grpc_millis_to_timespec(deadline, GPR_CLOCK_REALTIME))) {
|
161
|
+
grpc_exec_ctx_invalidate_now(exec_ctx);
|
163
162
|
break;
|
164
163
|
}
|
164
|
+
grpc_exec_ctx_invalidate_now(exec_ctx);
|
165
165
|
}
|
166
166
|
} else {
|
167
167
|
pollset->kicked_without_pollers = 0;
|
@@ -181,8 +181,8 @@ done:
|
|
181
181
|
return GRPC_ERROR_NONE;
|
182
182
|
}
|
183
183
|
|
184
|
-
grpc_error
|
185
|
-
grpc_pollset_worker
|
184
|
+
grpc_error* grpc_pollset_kick(grpc_exec_ctx* exec_ctx, grpc_pollset* p,
|
185
|
+
grpc_pollset_worker* specific_worker) {
|
186
186
|
if (specific_worker != NULL) {
|
187
187
|
if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
|
188
188
|
for (specific_worker =
|