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
@@ -26,11 +26,11 @@ struct grpc_timer {
|
|
26
26
|
gpr_atm deadline;
|
27
27
|
uint32_t heap_index; /* INVALID_HEAP_INDEX if not in heap */
|
28
28
|
bool pending;
|
29
|
-
struct grpc_timer
|
30
|
-
struct grpc_timer
|
31
|
-
grpc_closure
|
29
|
+
struct grpc_timer* next;
|
30
|
+
struct grpc_timer* prev;
|
31
|
+
grpc_closure* closure;
|
32
32
|
#ifndef NDEBUG
|
33
|
-
struct grpc_timer
|
33
|
+
struct grpc_timer* hash_table_next;
|
34
34
|
#endif
|
35
35
|
};
|
36
36
|
|
@@ -32,7 +32,7 @@
|
|
32
32
|
position. This functor is called each time immediately after modifying a
|
33
33
|
value in the underlying container, with the offset of the modified element as
|
34
34
|
its argument. */
|
35
|
-
static void adjust_upwards(grpc_timer
|
35
|
+
static void adjust_upwards(grpc_timer** first, uint32_t i, grpc_timer* t) {
|
36
36
|
while (i > 0) {
|
37
37
|
uint32_t parent = (uint32_t)(((int)i - 1) / 2);
|
38
38
|
if (first[parent]->deadline <= t->deadline) break;
|
@@ -47,17 +47,16 @@ static void adjust_upwards(grpc_timer **first, uint32_t i, grpc_timer *t) {
|
|
47
47
|
/* Adjusts a heap so as to move a hole at position i farther away from the root,
|
48
48
|
until a suitable position is found for element t. Then, copies t into that
|
49
49
|
position. */
|
50
|
-
static void adjust_downwards(grpc_timer
|
51
|
-
grpc_timer
|
50
|
+
static void adjust_downwards(grpc_timer** first, uint32_t i, uint32_t length,
|
51
|
+
grpc_timer* t) {
|
52
52
|
for (;;) {
|
53
53
|
uint32_t left_child = 1u + 2u * i;
|
54
54
|
if (left_child >= length) break;
|
55
55
|
uint32_t right_child = left_child + 1;
|
56
|
-
uint32_t next_i =
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
: left_child;
|
56
|
+
uint32_t next_i = right_child < length && first[left_child]->deadline >
|
57
|
+
first[right_child]->deadline
|
58
|
+
? right_child
|
59
|
+
: left_child;
|
61
60
|
if (t->deadline <= first[next_i]->deadline) break;
|
62
61
|
first[i] = first[next_i];
|
63
62
|
first[i]->heap_index = i;
|
@@ -70,16 +69,16 @@ static void adjust_downwards(grpc_timer **first, uint32_t i, uint32_t length,
|
|
70
69
|
#define SHRINK_MIN_ELEMS 8
|
71
70
|
#define SHRINK_FULLNESS_FACTOR 2
|
72
71
|
|
73
|
-
static void maybe_shrink(grpc_timer_heap
|
72
|
+
static void maybe_shrink(grpc_timer_heap* heap) {
|
74
73
|
if (heap->timer_count >= 8 &&
|
75
74
|
heap->timer_count <= heap->timer_capacity / SHRINK_FULLNESS_FACTOR / 2) {
|
76
75
|
heap->timer_capacity = heap->timer_count * SHRINK_FULLNESS_FACTOR;
|
77
|
-
heap->timers = (grpc_timer
|
78
|
-
heap->timers, heap->timer_capacity * sizeof(grpc_timer
|
76
|
+
heap->timers = (grpc_timer**)gpr_realloc(
|
77
|
+
heap->timers, heap->timer_capacity * sizeof(grpc_timer*));
|
79
78
|
}
|
80
79
|
}
|
81
80
|
|
82
|
-
static void note_changed_priority(grpc_timer_heap
|
81
|
+
static void note_changed_priority(grpc_timer_heap* heap, grpc_timer* timer) {
|
83
82
|
uint32_t i = timer->heap_index;
|
84
83
|
uint32_t parent = (uint32_t)(((int)i - 1) / 2);
|
85
84
|
if (heap->timers[parent]->deadline > timer->deadline) {
|
@@ -89,18 +88,18 @@ static void note_changed_priority(grpc_timer_heap *heap, grpc_timer *timer) {
|
|
89
88
|
}
|
90
89
|
}
|
91
90
|
|
92
|
-
void grpc_timer_heap_init(grpc_timer_heap
|
91
|
+
void grpc_timer_heap_init(grpc_timer_heap* heap) {
|
93
92
|
memset(heap, 0, sizeof(*heap));
|
94
93
|
}
|
95
94
|
|
96
|
-
void grpc_timer_heap_destroy(grpc_timer_heap
|
95
|
+
void grpc_timer_heap_destroy(grpc_timer_heap* heap) { gpr_free(heap->timers); }
|
97
96
|
|
98
|
-
int grpc_timer_heap_add(grpc_timer_heap
|
97
|
+
int grpc_timer_heap_add(grpc_timer_heap* heap, grpc_timer* timer) {
|
99
98
|
if (heap->timer_count == heap->timer_capacity) {
|
100
99
|
heap->timer_capacity =
|
101
100
|
GPR_MAX(heap->timer_capacity + 1, heap->timer_capacity * 3 / 2);
|
102
|
-
heap->timers = (grpc_timer
|
103
|
-
heap->timers, heap->timer_capacity * sizeof(grpc_timer
|
101
|
+
heap->timers = (grpc_timer**)gpr_realloc(
|
102
|
+
heap->timers, heap->timer_capacity * sizeof(grpc_timer*));
|
104
103
|
}
|
105
104
|
timer->heap_index = heap->timer_count;
|
106
105
|
adjust_upwards(heap->timers, heap->timer_count, timer);
|
@@ -108,7 +107,7 @@ int grpc_timer_heap_add(grpc_timer_heap *heap, grpc_timer *timer) {
|
|
108
107
|
return timer->heap_index == 0;
|
109
108
|
}
|
110
109
|
|
111
|
-
void grpc_timer_heap_remove(grpc_timer_heap
|
110
|
+
void grpc_timer_heap_remove(grpc_timer_heap* heap, grpc_timer* timer) {
|
112
111
|
uint32_t i = timer->heap_index;
|
113
112
|
if (i == heap->timer_count - 1) {
|
114
113
|
heap->timer_count--;
|
@@ -122,15 +121,15 @@ void grpc_timer_heap_remove(grpc_timer_heap *heap, grpc_timer *timer) {
|
|
122
121
|
note_changed_priority(heap, heap->timers[i]);
|
123
122
|
}
|
124
123
|
|
125
|
-
int grpc_timer_heap_is_empty(grpc_timer_heap
|
124
|
+
int grpc_timer_heap_is_empty(grpc_timer_heap* heap) {
|
126
125
|
return heap->timer_count == 0;
|
127
126
|
}
|
128
127
|
|
129
|
-
grpc_timer
|
128
|
+
grpc_timer* grpc_timer_heap_top(grpc_timer_heap* heap) {
|
130
129
|
return heap->timers[0];
|
131
130
|
}
|
132
131
|
|
133
|
-
void grpc_timer_heap_pop(grpc_timer_heap
|
132
|
+
void grpc_timer_heap_pop(grpc_timer_heap* heap) {
|
134
133
|
grpc_timer_heap_remove(heap, grpc_timer_heap_top(heap));
|
135
134
|
}
|
136
135
|
|
@@ -21,22 +21,30 @@
|
|
21
21
|
|
22
22
|
#include "src/core/lib/iomgr/timer.h"
|
23
23
|
|
24
|
+
#ifdef __cplusplus
|
25
|
+
extern "C" {
|
26
|
+
#endif
|
27
|
+
|
24
28
|
typedef struct {
|
25
|
-
grpc_timer
|
29
|
+
grpc_timer** timers;
|
26
30
|
uint32_t timer_count;
|
27
31
|
uint32_t timer_capacity;
|
28
32
|
} grpc_timer_heap;
|
29
33
|
|
30
34
|
/* return 1 if the new timer is the first timer in the heap */
|
31
|
-
int grpc_timer_heap_add(grpc_timer_heap
|
35
|
+
int grpc_timer_heap_add(grpc_timer_heap* heap, grpc_timer* timer);
|
36
|
+
|
37
|
+
void grpc_timer_heap_init(grpc_timer_heap* heap);
|
38
|
+
void grpc_timer_heap_destroy(grpc_timer_heap* heap);
|
32
39
|
|
33
|
-
void
|
34
|
-
|
40
|
+
void grpc_timer_heap_remove(grpc_timer_heap* heap, grpc_timer* timer);
|
41
|
+
grpc_timer* grpc_timer_heap_top(grpc_timer_heap* heap);
|
42
|
+
void grpc_timer_heap_pop(grpc_timer_heap* heap);
|
35
43
|
|
36
|
-
|
37
|
-
grpc_timer *grpc_timer_heap_top(grpc_timer_heap *heap);
|
38
|
-
void grpc_timer_heap_pop(grpc_timer_heap *heap);
|
44
|
+
int grpc_timer_heap_is_empty(grpc_timer_heap* heap);
|
39
45
|
|
40
|
-
|
46
|
+
#ifdef __cplusplus
|
47
|
+
}
|
48
|
+
#endif
|
41
49
|
|
42
50
|
#endif /* GRPC_CORE_LIB_IOMGR_TIMER_HEAP_H */
|
@@ -20,17 +20,20 @@
|
|
20
20
|
|
21
21
|
#include <grpc/support/alloc.h>
|
22
22
|
#include <grpc/support/log.h>
|
23
|
+
#include <grpc/support/port_platform.h>
|
23
24
|
#include <grpc/support/thd.h>
|
24
25
|
|
26
|
+
#include <inttypes.h>
|
27
|
+
|
25
28
|
#include "src/core/lib/debug/trace.h"
|
26
29
|
#include "src/core/lib/iomgr/timer.h"
|
27
30
|
|
28
31
|
typedef struct completed_thread {
|
29
32
|
gpr_thd_id t;
|
30
|
-
struct completed_thread
|
33
|
+
struct completed_thread* next;
|
31
34
|
} completed_thread;
|
32
35
|
|
33
|
-
extern
|
36
|
+
extern grpc_core::TraceFlag grpc_timer_check_trace;
|
34
37
|
|
35
38
|
// global mutex
|
36
39
|
static gpr_mu g_mu;
|
@@ -45,27 +48,27 @@ static int g_thread_count;
|
|
45
48
|
// number of threads sitting around waiting
|
46
49
|
static int g_waiter_count;
|
47
50
|
// linked list of threads that have completed (and need joining)
|
48
|
-
static completed_thread
|
51
|
+
static completed_thread* g_completed_threads;
|
49
52
|
// was the manager kicked by the timer system
|
50
53
|
static bool g_kicked;
|
51
54
|
// is there a thread waiting until the next timer should fire?
|
52
55
|
static bool g_has_timed_waiter;
|
53
56
|
// the deadline of the current timed waiter thread (only relevant if
|
54
57
|
// g_has_timed_waiter is true)
|
55
|
-
static
|
58
|
+
static grpc_millis g_timed_waiter_deadline;
|
56
59
|
// generation counter to track which thread is waiting for the next timer
|
57
60
|
static uint64_t g_timed_waiter_generation;
|
58
61
|
|
59
|
-
static void timer_thread(void
|
62
|
+
static void timer_thread(void* completed_thread_ptr);
|
60
63
|
|
61
64
|
static void gc_completed_threads(void) {
|
62
|
-
if (g_completed_threads !=
|
63
|
-
completed_thread
|
64
|
-
g_completed_threads =
|
65
|
+
if (g_completed_threads != nullptr) {
|
66
|
+
completed_thread* to_gc = g_completed_threads;
|
67
|
+
g_completed_threads = nullptr;
|
65
68
|
gpr_mu_unlock(&g_mu);
|
66
|
-
while (to_gc !=
|
69
|
+
while (to_gc != nullptr) {
|
67
70
|
gpr_thd_join(to_gc->t);
|
68
|
-
completed_thread
|
71
|
+
completed_thread* next = to_gc->next;
|
69
72
|
gpr_free(to_gc);
|
70
73
|
to_gc = next;
|
71
74
|
}
|
@@ -78,12 +81,12 @@ static void start_timer_thread_and_unlock(void) {
|
|
78
81
|
++g_waiter_count;
|
79
82
|
++g_thread_count;
|
80
83
|
gpr_mu_unlock(&g_mu);
|
81
|
-
if (
|
84
|
+
if (grpc_timer_check_trace.enabled()) {
|
82
85
|
gpr_log(GPR_DEBUG, "Spawn timer thread");
|
83
86
|
}
|
84
87
|
gpr_thd_options opt = gpr_thd_options_default();
|
85
88
|
gpr_thd_options_set_joinable(&opt);
|
86
|
-
completed_thread
|
89
|
+
completed_thread* ct = (completed_thread*)gpr_malloc(sizeof(*ct));
|
87
90
|
// The call to gpr_thd_new() has to be under the same lock used by
|
88
91
|
// gc_completed_threads(), particularly due to ct->t, which is written here
|
89
92
|
// (internally by gpr_thd_new) and read there. Otherwise it's possible for ct
|
@@ -96,13 +99,12 @@ static void start_timer_thread_and_unlock(void) {
|
|
96
99
|
|
97
100
|
void grpc_timer_manager_tick() {
|
98
101
|
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
|
99
|
-
|
100
|
-
|
101
|
-
grpc_timer_check(&exec_ctx, now, &next);
|
102
|
+
grpc_millis next = GRPC_MILLIS_INF_FUTURE;
|
103
|
+
grpc_timer_check(&exec_ctx, &next);
|
102
104
|
grpc_exec_ctx_finish(&exec_ctx);
|
103
105
|
}
|
104
106
|
|
105
|
-
static void run_some_timers(grpc_exec_ctx
|
107
|
+
static void run_some_timers(grpc_exec_ctx* exec_ctx) {
|
106
108
|
// if there's something to execute...
|
107
109
|
gpr_mu_lock(&g_mu);
|
108
110
|
// remove a waiter from the pool, and start another thread if necessary
|
@@ -113,7 +115,7 @@ static void run_some_timers(grpc_exec_ctx *exec_ctx) {
|
|
113
115
|
// if there's no thread waiting with a timeout, kick an existing
|
114
116
|
// waiter so that the next deadline is not missed
|
115
117
|
if (!g_has_timed_waiter) {
|
116
|
-
if (
|
118
|
+
if (grpc_timer_check_trace.enabled()) {
|
117
119
|
gpr_log(GPR_DEBUG, "kick untimed waiter");
|
118
120
|
}
|
119
121
|
gpr_cv_signal(&g_cv_wait);
|
@@ -121,6 +123,9 @@ static void run_some_timers(grpc_exec_ctx *exec_ctx) {
|
|
121
123
|
gpr_mu_unlock(&g_mu);
|
122
124
|
}
|
123
125
|
// without our lock, flush the exec_ctx
|
126
|
+
if (grpc_timer_check_trace.enabled()) {
|
127
|
+
gpr_log(GPR_DEBUG, "flush exec_ctx");
|
128
|
+
}
|
124
129
|
grpc_exec_ctx_flush(exec_ctx);
|
125
130
|
gpr_mu_lock(&g_mu);
|
126
131
|
// garbage collect any threads hanging out that are dead
|
@@ -133,8 +138,7 @@ static void run_some_timers(grpc_exec_ctx *exec_ctx) {
|
|
133
138
|
// wait until 'next' (or forever if there is already a timed waiter in the pool)
|
134
139
|
// returns true if the thread should continue executing (false if it should
|
135
140
|
// shutdown)
|
136
|
-
static bool wait_until(
|
137
|
-
const gpr_timespec inf_future = gpr_inf_future(GPR_CLOCK_MONOTONIC);
|
141
|
+
static bool wait_until(grpc_exec_ctx* exec_ctx, grpc_millis next) {
|
138
142
|
gpr_mu_lock(&g_mu);
|
139
143
|
// if we're not threaded anymore, leave
|
140
144
|
if (!g_threaded) {
|
@@ -168,32 +172,30 @@ static bool wait_until(gpr_timespec next) {
|
|
168
172
|
unless their 'next' is earlier than the current timed-waiter's deadline
|
169
173
|
(in which case the thread with earlier 'next' takes over as the new timed
|
170
174
|
waiter) */
|
171
|
-
if (
|
172
|
-
if (!g_has_timed_waiter ||
|
173
|
-
(gpr_time_cmp(next, g_timed_waiter_deadline) < 0)) {
|
175
|
+
if (next != GRPC_MILLIS_INF_FUTURE) {
|
176
|
+
if (!g_has_timed_waiter || (next < g_timed_waiter_deadline)) {
|
174
177
|
my_timed_waiter_generation = ++g_timed_waiter_generation;
|
175
178
|
g_has_timed_waiter = true;
|
176
179
|
g_timed_waiter_deadline = next;
|
177
180
|
|
178
|
-
if (
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
wait_time.tv_sec, wait_time.tv_nsec);
|
181
|
+
if (grpc_timer_check_trace.enabled()) {
|
182
|
+
grpc_millis wait_time = next - grpc_exec_ctx_now(exec_ctx);
|
183
|
+
gpr_log(GPR_DEBUG, "sleep for a %" PRIdPTR " milliseconds",
|
184
|
+
wait_time);
|
183
185
|
}
|
184
186
|
} else { // g_timed_waiter == true && next >= g_timed_waiter_deadline
|
185
|
-
next =
|
187
|
+
next = GRPC_MILLIS_INF_FUTURE;
|
186
188
|
}
|
187
189
|
}
|
188
190
|
|
189
|
-
if (
|
190
|
-
gpr_time_cmp(next, inf_future) == 0) {
|
191
|
+
if (grpc_timer_check_trace.enabled() && next == GRPC_MILLIS_INF_FUTURE) {
|
191
192
|
gpr_log(GPR_DEBUG, "sleep until kicked");
|
192
193
|
}
|
193
194
|
|
194
|
-
gpr_cv_wait(&g_cv_wait, &g_mu,
|
195
|
+
gpr_cv_wait(&g_cv_wait, &g_mu,
|
196
|
+
grpc_millis_to_timespec(next, GPR_CLOCK_REALTIME));
|
195
197
|
|
196
|
-
if (
|
198
|
+
if (grpc_timer_check_trace.enabled()) {
|
197
199
|
gpr_log(GPR_DEBUG, "wait ended: was_timed:%d kicked:%d",
|
198
200
|
my_timed_waiter_generation == g_timed_waiter_generation,
|
199
201
|
g_kicked);
|
@@ -203,7 +205,7 @@ static bool wait_until(gpr_timespec next) {
|
|
203
205
|
// there's work to do after checking timers (code above)
|
204
206
|
if (my_timed_waiter_generation == g_timed_waiter_generation) {
|
205
207
|
g_has_timed_waiter = false;
|
206
|
-
g_timed_waiter_deadline =
|
208
|
+
g_timed_waiter_deadline = GRPC_MILLIS_INF_FUTURE;
|
207
209
|
}
|
208
210
|
}
|
209
211
|
|
@@ -218,13 +220,13 @@ static bool wait_until(gpr_timespec next) {
|
|
218
220
|
return true;
|
219
221
|
}
|
220
222
|
|
221
|
-
static void timer_main_loop(grpc_exec_ctx
|
222
|
-
const gpr_timespec inf_future = gpr_inf_future(GPR_CLOCK_MONOTONIC);
|
223
|
+
static void timer_main_loop(grpc_exec_ctx* exec_ctx) {
|
223
224
|
for (;;) {
|
224
|
-
|
225
|
-
|
225
|
+
grpc_millis next = GRPC_MILLIS_INF_FUTURE;
|
226
|
+
grpc_exec_ctx_invalidate_now(exec_ctx);
|
227
|
+
|
226
228
|
// check timer state, updates next to the next time to run a check
|
227
|
-
switch (grpc_timer_check(exec_ctx,
|
229
|
+
switch (grpc_timer_check(exec_ctx, &next)) {
|
228
230
|
case GRPC_TIMERS_FIRED:
|
229
231
|
run_some_timers(exec_ctx);
|
230
232
|
break;
|
@@ -238,13 +240,13 @@ static void timer_main_loop(grpc_exec_ctx *exec_ctx) {
|
|
238
240
|
|
239
241
|
Consequently, we can just sleep forever here and be happy at some
|
240
242
|
saved wakeup cycles. */
|
241
|
-
if (
|
243
|
+
if (grpc_timer_check_trace.enabled()) {
|
242
244
|
gpr_log(GPR_DEBUG, "timers not checked: expect another thread to");
|
243
245
|
}
|
244
|
-
next =
|
246
|
+
next = GRPC_MILLIS_INF_FUTURE;
|
245
247
|
/* fall through */
|
246
248
|
case GRPC_TIMERS_CHECKED_AND_EMPTY:
|
247
|
-
if (!wait_until(next)) {
|
249
|
+
if (!wait_until(exec_ctx, next)) {
|
248
250
|
return;
|
249
251
|
}
|
250
252
|
break;
|
@@ -252,7 +254,7 @@ static void timer_main_loop(grpc_exec_ctx *exec_ctx) {
|
|
252
254
|
}
|
253
255
|
}
|
254
256
|
|
255
|
-
static void timer_thread_cleanup(completed_thread
|
257
|
+
static void timer_thread_cleanup(completed_thread* ct) {
|
256
258
|
gpr_mu_lock(&g_mu);
|
257
259
|
// terminate the thread: drop the waiter count, thread count, and let whomever
|
258
260
|
// stopped the threading stuff know that we're done
|
@@ -264,19 +266,19 @@ static void timer_thread_cleanup(completed_thread *ct) {
|
|
264
266
|
ct->next = g_completed_threads;
|
265
267
|
g_completed_threads = ct;
|
266
268
|
gpr_mu_unlock(&g_mu);
|
267
|
-
if (
|
269
|
+
if (grpc_timer_check_trace.enabled()) {
|
268
270
|
gpr_log(GPR_DEBUG, "End timer thread");
|
269
271
|
}
|
270
272
|
}
|
271
273
|
|
272
|
-
static void timer_thread(void
|
274
|
+
static void timer_thread(void* completed_thread_ptr) {
|
273
275
|
// this threads exec_ctx: we try to run things through to completion here
|
274
276
|
// since it's easy to spin up new threads
|
275
277
|
grpc_exec_ctx exec_ctx =
|
276
|
-
GRPC_EXEC_CTX_INITIALIZER(0, grpc_never_ready_to_finish,
|
278
|
+
GRPC_EXEC_CTX_INITIALIZER(0, grpc_never_ready_to_finish, nullptr);
|
277
279
|
timer_main_loop(&exec_ctx);
|
278
280
|
grpc_exec_ctx_finish(&exec_ctx);
|
279
|
-
timer_thread_cleanup((completed_thread
|
281
|
+
timer_thread_cleanup((completed_thread*)completed_thread_ptr);
|
280
282
|
}
|
281
283
|
|
282
284
|
static void start_threads(void) {
|
@@ -297,28 +299,28 @@ void grpc_timer_manager_init(void) {
|
|
297
299
|
g_threaded = false;
|
298
300
|
g_thread_count = 0;
|
299
301
|
g_waiter_count = 0;
|
300
|
-
g_completed_threads =
|
302
|
+
g_completed_threads = nullptr;
|
301
303
|
|
302
304
|
g_has_timed_waiter = false;
|
303
|
-
g_timed_waiter_deadline =
|
305
|
+
g_timed_waiter_deadline = GRPC_MILLIS_INF_FUTURE;
|
304
306
|
|
305
307
|
start_threads();
|
306
308
|
}
|
307
309
|
|
308
310
|
static void stop_threads(void) {
|
309
311
|
gpr_mu_lock(&g_mu);
|
310
|
-
if (
|
312
|
+
if (grpc_timer_check_trace.enabled()) {
|
311
313
|
gpr_log(GPR_DEBUG, "stop timer threads: threaded=%d", g_threaded);
|
312
314
|
}
|
313
315
|
if (g_threaded) {
|
314
316
|
g_threaded = false;
|
315
317
|
gpr_cv_broadcast(&g_cv_wait);
|
316
|
-
if (
|
318
|
+
if (grpc_timer_check_trace.enabled()) {
|
317
319
|
gpr_log(GPR_DEBUG, "num timer threads: %d", g_thread_count);
|
318
320
|
}
|
319
321
|
while (g_thread_count > 0) {
|
320
322
|
gpr_cv_wait(&g_cv_shutdown, &g_mu, gpr_inf_future(GPR_CLOCK_REALTIME));
|
321
|
-
if (
|
323
|
+
if (grpc_timer_check_trace.enabled()) {
|
322
324
|
gpr_log(GPR_DEBUG, "num timer threads: %d", g_thread_count);
|
323
325
|
}
|
324
326
|
gc_completed_threads();
|
@@ -347,7 +349,7 @@ void grpc_kick_poller(void) {
|
|
347
349
|
gpr_mu_lock(&g_mu);
|
348
350
|
g_kicked = true;
|
349
351
|
g_has_timed_waiter = false;
|
350
|
-
g_timed_waiter_deadline =
|
352
|
+
g_timed_waiter_deadline = GRPC_MILLIS_INF_FUTURE;
|
351
353
|
++g_timed_waiter_generation;
|
352
354
|
gpr_cv_signal(&g_cv_wait);
|
353
355
|
gpr_mu_unlock(&g_mu);
|
@@ -21,6 +21,10 @@
|
|
21
21
|
|
22
22
|
#include <stdbool.h>
|
23
23
|
|
24
|
+
#ifdef __cplusplus
|
25
|
+
extern "C" {
|
26
|
+
#endif
|
27
|
+
|
24
28
|
/* Timer Manager tries to keep one thread waiting for the next timeout at all
|
25
29
|
times */
|
26
30
|
|
@@ -34,4 +38,8 @@ void grpc_timer_manager_set_threading(bool enabled);
|
|
34
38
|
* disabled */
|
35
39
|
void grpc_timer_manager_tick(void);
|
36
40
|
|
41
|
+
#ifdef __cplusplus
|
42
|
+
}
|
43
|
+
#endif
|
44
|
+
|
37
45
|
#endif /* GRPC_CORE_LIB_IOMGR_TIMER_MANAGER_H */
|