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
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
#include "src/core/lib/debug/trace.h"
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
grpc_core::TraceFlag grpc_polling_trace(false,
|
26
|
+
"polling"); /* Disabled by default */
|
27
27
|
|
28
28
|
#endif // GRPC_WINSOCK_SOCKET
|
@@ -0,0 +1,177 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2015 gRPC authors.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
|
19
|
+
#include "src/core/lib/iomgr/exec_ctx.h"
|
20
|
+
|
21
|
+
#include <grpc/support/log.h>
|
22
|
+
#include <grpc/support/sync.h>
|
23
|
+
#include <grpc/support/thd.h>
|
24
|
+
|
25
|
+
#include "src/core/lib/iomgr/combiner.h"
|
26
|
+
#include "src/core/lib/profiling/timers.h"
|
27
|
+
|
28
|
+
bool grpc_exec_ctx_ready_to_finish(grpc_exec_ctx* exec_ctx) {
|
29
|
+
if ((exec_ctx->flags & GRPC_EXEC_CTX_FLAG_IS_FINISHED) == 0) {
|
30
|
+
if (exec_ctx->check_ready_to_finish(exec_ctx,
|
31
|
+
exec_ctx->check_ready_to_finish_arg)) {
|
32
|
+
exec_ctx->flags |= GRPC_EXEC_CTX_FLAG_IS_FINISHED;
|
33
|
+
return true;
|
34
|
+
}
|
35
|
+
return false;
|
36
|
+
} else {
|
37
|
+
return true;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
bool grpc_never_ready_to_finish(grpc_exec_ctx* exec_ctx, void* arg_ignored) {
|
42
|
+
return false;
|
43
|
+
}
|
44
|
+
|
45
|
+
bool grpc_always_ready_to_finish(grpc_exec_ctx* exec_ctx, void* arg_ignored) {
|
46
|
+
return true;
|
47
|
+
}
|
48
|
+
|
49
|
+
bool grpc_exec_ctx_has_work(grpc_exec_ctx* exec_ctx) {
|
50
|
+
return exec_ctx->active_combiner != nullptr ||
|
51
|
+
!grpc_closure_list_empty(exec_ctx->closure_list);
|
52
|
+
}
|
53
|
+
|
54
|
+
void grpc_exec_ctx_finish(grpc_exec_ctx* exec_ctx) {
|
55
|
+
exec_ctx->flags |= GRPC_EXEC_CTX_FLAG_IS_FINISHED;
|
56
|
+
grpc_exec_ctx_flush(exec_ctx);
|
57
|
+
}
|
58
|
+
|
59
|
+
static void exec_ctx_run(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
|
60
|
+
grpc_error* error) {
|
61
|
+
#ifndef NDEBUG
|
62
|
+
closure->scheduled = false;
|
63
|
+
if (grpc_trace_closure.enabled()) {
|
64
|
+
gpr_log(GPR_DEBUG, "running closure %p: created [%s:%d]: %s [%s:%d]",
|
65
|
+
closure, closure->file_created, closure->line_created,
|
66
|
+
closure->run ? "run" : "scheduled", closure->file_initiated,
|
67
|
+
closure->line_initiated);
|
68
|
+
}
|
69
|
+
#endif
|
70
|
+
closure->cb(exec_ctx, closure->cb_arg, error);
|
71
|
+
#ifndef NDEBUG
|
72
|
+
if (grpc_trace_closure.enabled()) {
|
73
|
+
gpr_log(GPR_DEBUG, "closure %p finished", closure);
|
74
|
+
}
|
75
|
+
#endif
|
76
|
+
GRPC_ERROR_UNREF(error);
|
77
|
+
}
|
78
|
+
|
79
|
+
bool grpc_exec_ctx_flush(grpc_exec_ctx* exec_ctx) {
|
80
|
+
bool did_something = 0;
|
81
|
+
GPR_TIMER_BEGIN("grpc_exec_ctx_flush", 0);
|
82
|
+
for (;;) {
|
83
|
+
if (!grpc_closure_list_empty(exec_ctx->closure_list)) {
|
84
|
+
grpc_closure* c = exec_ctx->closure_list.head;
|
85
|
+
exec_ctx->closure_list.head = exec_ctx->closure_list.tail = nullptr;
|
86
|
+
while (c != nullptr) {
|
87
|
+
grpc_closure* next = c->next_data.next;
|
88
|
+
grpc_error* error = c->error_data.error;
|
89
|
+
did_something = true;
|
90
|
+
exec_ctx_run(exec_ctx, c, error);
|
91
|
+
c = next;
|
92
|
+
}
|
93
|
+
} else if (!grpc_combiner_continue_exec_ctx(exec_ctx)) {
|
94
|
+
break;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
GPR_ASSERT(exec_ctx->active_combiner == nullptr);
|
98
|
+
GPR_TIMER_END("grpc_exec_ctx_flush", 0);
|
99
|
+
return did_something;
|
100
|
+
}
|
101
|
+
|
102
|
+
static void exec_ctx_sched(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
|
103
|
+
grpc_error* error) {
|
104
|
+
grpc_closure_list_append(&exec_ctx->closure_list, closure, error);
|
105
|
+
}
|
106
|
+
|
107
|
+
static gpr_timespec g_start_time;
|
108
|
+
|
109
|
+
void grpc_exec_ctx_global_init(void) {
|
110
|
+
g_start_time = gpr_now(GPR_CLOCK_MONOTONIC);
|
111
|
+
}
|
112
|
+
|
113
|
+
void grpc_exec_ctx_global_shutdown(void) {}
|
114
|
+
|
115
|
+
static gpr_atm timespec_to_atm_round_down(gpr_timespec ts) {
|
116
|
+
ts = gpr_time_sub(ts, g_start_time);
|
117
|
+
double x =
|
118
|
+
GPR_MS_PER_SEC * (double)ts.tv_sec + (double)ts.tv_nsec / GPR_NS_PER_MS;
|
119
|
+
if (x < 0) return 0;
|
120
|
+
if (x > GPR_ATM_MAX) return GPR_ATM_MAX;
|
121
|
+
return (gpr_atm)x;
|
122
|
+
}
|
123
|
+
|
124
|
+
static gpr_atm timespec_to_atm_round_up(gpr_timespec ts) {
|
125
|
+
ts = gpr_time_sub(ts, g_start_time);
|
126
|
+
double x = GPR_MS_PER_SEC * (double)ts.tv_sec +
|
127
|
+
(double)ts.tv_nsec / GPR_NS_PER_MS +
|
128
|
+
(double)(GPR_NS_PER_SEC - 1) / (double)GPR_NS_PER_SEC;
|
129
|
+
if (x < 0) return 0;
|
130
|
+
if (x > GPR_ATM_MAX) return GPR_ATM_MAX;
|
131
|
+
return (gpr_atm)x;
|
132
|
+
}
|
133
|
+
|
134
|
+
grpc_millis grpc_exec_ctx_now(grpc_exec_ctx* exec_ctx) {
|
135
|
+
if (!exec_ctx->now_is_valid) {
|
136
|
+
exec_ctx->now = timespec_to_atm_round_down(gpr_now(GPR_CLOCK_MONOTONIC));
|
137
|
+
exec_ctx->now_is_valid = true;
|
138
|
+
}
|
139
|
+
return exec_ctx->now;
|
140
|
+
}
|
141
|
+
|
142
|
+
void grpc_exec_ctx_invalidate_now(grpc_exec_ctx* exec_ctx) {
|
143
|
+
exec_ctx->now_is_valid = false;
|
144
|
+
}
|
145
|
+
|
146
|
+
gpr_timespec grpc_millis_to_timespec(grpc_millis millis,
|
147
|
+
gpr_clock_type clock_type) {
|
148
|
+
// special-case infinities as grpc_millis can be 32bit on some platforms
|
149
|
+
// while gpr_time_from_millis always takes an int64_t.
|
150
|
+
if (millis == GRPC_MILLIS_INF_FUTURE) {
|
151
|
+
return gpr_inf_future(clock_type);
|
152
|
+
}
|
153
|
+
if (millis == GRPC_MILLIS_INF_PAST) {
|
154
|
+
return gpr_inf_past(clock_type);
|
155
|
+
}
|
156
|
+
|
157
|
+
if (clock_type == GPR_TIMESPAN) {
|
158
|
+
return gpr_time_from_millis(millis, GPR_TIMESPAN);
|
159
|
+
}
|
160
|
+
return gpr_time_add(gpr_convert_clock_type(g_start_time, clock_type),
|
161
|
+
gpr_time_from_millis(millis, GPR_TIMESPAN));
|
162
|
+
}
|
163
|
+
|
164
|
+
grpc_millis grpc_timespec_to_millis_round_down(gpr_timespec ts) {
|
165
|
+
return timespec_to_atm_round_down(
|
166
|
+
gpr_convert_clock_type(ts, g_start_time.clock_type));
|
167
|
+
}
|
168
|
+
|
169
|
+
grpc_millis grpc_timespec_to_millis_round_up(gpr_timespec ts) {
|
170
|
+
return timespec_to_atm_round_up(
|
171
|
+
gpr_convert_clock_type(ts, g_start_time.clock_type));
|
172
|
+
}
|
173
|
+
|
174
|
+
static const grpc_closure_scheduler_vtable exec_ctx_scheduler_vtable = {
|
175
|
+
exec_ctx_run, exec_ctx_sched, "exec_ctx"};
|
176
|
+
static grpc_closure_scheduler exec_ctx_scheduler = {&exec_ctx_scheduler_vtable};
|
177
|
+
grpc_closure_scheduler* grpc_schedule_on_exec_ctx = &exec_ctx_scheduler;
|
@@ -19,10 +19,19 @@
|
|
19
19
|
#ifndef GRPC_CORE_LIB_IOMGR_EXEC_CTX_H
|
20
20
|
#define GRPC_CORE_LIB_IOMGR_EXEC_CTX_H
|
21
21
|
|
22
|
+
#include <grpc/support/atm.h>
|
22
23
|
#include <grpc/support/cpu.h>
|
24
|
+
|
23
25
|
#include "src/core/lib/iomgr/closure.h"
|
24
26
|
|
25
|
-
|
27
|
+
#ifdef __cplusplus
|
28
|
+
extern "C" {
|
29
|
+
#endif
|
30
|
+
|
31
|
+
typedef gpr_atm grpc_millis;
|
32
|
+
|
33
|
+
#define GRPC_MILLIS_INF_FUTURE GPR_ATM_MAX
|
34
|
+
#define GRPC_MILLIS_INF_PAST GPR_ATM_MIN
|
26
35
|
|
27
36
|
/** A workqueue represents a list of work to be executed asynchronously.
|
28
37
|
Forward declared here to avoid a circular dependency with workqueue.h. */
|
@@ -59,13 +68,16 @@ typedef struct grpc_combiner grpc_combiner;
|
|
59
68
|
struct grpc_exec_ctx {
|
60
69
|
grpc_closure_list closure_list;
|
61
70
|
/** currently active combiner: updated only via combiner.c */
|
62
|
-
grpc_combiner
|
71
|
+
grpc_combiner* active_combiner;
|
63
72
|
/** last active combiner in the active combiner list */
|
64
|
-
grpc_combiner
|
73
|
+
grpc_combiner* last_combiner;
|
65
74
|
uintptr_t flags;
|
66
75
|
unsigned starting_cpu;
|
67
|
-
void
|
68
|
-
bool (*check_ready_to_finish)(grpc_exec_ctx
|
76
|
+
void* check_ready_to_finish_arg;
|
77
|
+
bool (*check_ready_to_finish)(grpc_exec_ctx* exec_ctx, void* arg);
|
78
|
+
|
79
|
+
bool now_is_valid;
|
80
|
+
grpc_millis now;
|
69
81
|
};
|
70
82
|
|
71
83
|
/* initializer for grpc_exec_ctx:
|
@@ -73,7 +85,7 @@ struct grpc_exec_ctx {
|
|
73
85
|
#define GRPC_EXEC_CTX_INITIALIZER(flags, finish_check, finish_check_arg) \
|
74
86
|
{ \
|
75
87
|
GRPC_CLOSURE_LIST_INIT, NULL, NULL, flags, gpr_cpu_current_cpu(), \
|
76
|
-
finish_check_arg, finish_check
|
88
|
+
finish_check_arg, finish_check, false, 0 \
|
77
89
|
}
|
78
90
|
|
79
91
|
/* initialize an execution context at the top level of an API call into grpc
|
@@ -81,29 +93,39 @@ struct grpc_exec_ctx {
|
|
81
93
|
#define GRPC_EXEC_CTX_INIT \
|
82
94
|
GRPC_EXEC_CTX_INITIALIZER(GRPC_EXEC_CTX_FLAG_IS_FINISHED, NULL, NULL)
|
83
95
|
|
84
|
-
extern grpc_closure_scheduler
|
96
|
+
extern grpc_closure_scheduler* grpc_schedule_on_exec_ctx;
|
85
97
|
|
86
|
-
bool grpc_exec_ctx_has_work(grpc_exec_ctx
|
98
|
+
bool grpc_exec_ctx_has_work(grpc_exec_ctx* exec_ctx);
|
87
99
|
|
88
100
|
/** Flush any work that has been enqueued onto this grpc_exec_ctx.
|
89
101
|
* Caller must guarantee that no interfering locks are held.
|
90
102
|
* Returns true if work was performed, false otherwise. */
|
91
|
-
bool grpc_exec_ctx_flush(grpc_exec_ctx
|
103
|
+
bool grpc_exec_ctx_flush(grpc_exec_ctx* exec_ctx);
|
92
104
|
/** Finish any pending work for a grpc_exec_ctx. Must be called before
|
93
105
|
* the instance is destroyed, or work may be lost. */
|
94
|
-
void grpc_exec_ctx_finish(grpc_exec_ctx
|
106
|
+
void grpc_exec_ctx_finish(grpc_exec_ctx* exec_ctx);
|
95
107
|
/** Returns true if we'd like to leave this execution context as soon as
|
96
108
|
possible: useful for deciding whether to do something more or not depending
|
97
109
|
on outside context */
|
98
|
-
bool grpc_exec_ctx_ready_to_finish(grpc_exec_ctx
|
110
|
+
bool grpc_exec_ctx_ready_to_finish(grpc_exec_ctx* exec_ctx);
|
99
111
|
/** A finish check that is never ready to finish */
|
100
|
-
bool grpc_never_ready_to_finish(grpc_exec_ctx
|
112
|
+
bool grpc_never_ready_to_finish(grpc_exec_ctx* exec_ctx, void* arg_ignored);
|
101
113
|
/** A finish check that is always ready to finish */
|
102
|
-
bool grpc_always_ready_to_finish(grpc_exec_ctx
|
114
|
+
bool grpc_always_ready_to_finish(grpc_exec_ctx* exec_ctx, void* arg_ignored);
|
103
115
|
|
104
116
|
void grpc_exec_ctx_global_init(void);
|
105
117
|
|
106
118
|
void grpc_exec_ctx_global_init(void);
|
107
119
|
void grpc_exec_ctx_global_shutdown(void);
|
108
120
|
|
121
|
+
grpc_millis grpc_exec_ctx_now(grpc_exec_ctx* exec_ctx);
|
122
|
+
void grpc_exec_ctx_invalidate_now(grpc_exec_ctx* exec_ctx);
|
123
|
+
gpr_timespec grpc_millis_to_timespec(grpc_millis millis, gpr_clock_type clock);
|
124
|
+
grpc_millis grpc_timespec_to_millis_round_down(gpr_timespec timespec);
|
125
|
+
grpc_millis grpc_timespec_to_millis_round_up(gpr_timespec timespec);
|
126
|
+
|
127
|
+
#ifdef __cplusplus
|
128
|
+
}
|
129
|
+
#endif
|
130
|
+
|
109
131
|
#endif /* GRPC_CORE_LIB_IOMGR_EXEC_CTX_H */
|
@@ -44,26 +44,25 @@ typedef struct {
|
|
44
44
|
gpr_thd_id id;
|
45
45
|
} thread_state;
|
46
46
|
|
47
|
-
static thread_state
|
47
|
+
static thread_state* g_thread_state;
|
48
48
|
static size_t g_max_threads;
|
49
49
|
static gpr_atm g_cur_threads;
|
50
50
|
static gpr_spinlock g_adding_thread_lock = GPR_SPINLOCK_STATIC_INITIALIZER;
|
51
51
|
|
52
52
|
GPR_TLS_DECL(g_this_thread_state);
|
53
53
|
|
54
|
-
|
55
|
-
GRPC_TRACER_INITIALIZER(false, "executor");
|
54
|
+
grpc_core::TraceFlag executor_trace(false, "executor");
|
56
55
|
|
57
|
-
static void executor_thread(void
|
56
|
+
static void executor_thread(void* arg);
|
58
57
|
|
59
|
-
static size_t run_closures(grpc_exec_ctx
|
58
|
+
static size_t run_closures(grpc_exec_ctx* exec_ctx, grpc_closure_list list) {
|
60
59
|
size_t n = 0;
|
61
60
|
|
62
|
-
grpc_closure
|
63
|
-
while (c !=
|
64
|
-
grpc_closure
|
65
|
-
grpc_error
|
66
|
-
if (
|
61
|
+
grpc_closure* c = list.head;
|
62
|
+
while (c != nullptr) {
|
63
|
+
grpc_closure* next = c->next_data.next;
|
64
|
+
grpc_error* error = c->error_data.error;
|
65
|
+
if (executor_trace.enabled()) {
|
67
66
|
#ifndef NDEBUG
|
68
67
|
gpr_log(GPR_DEBUG, "EXECUTOR: run %p [created by %s:%d]", c,
|
69
68
|
c->file_created, c->line_created);
|
@@ -88,7 +87,7 @@ bool grpc_executor_is_threaded() {
|
|
88
87
|
return gpr_atm_no_barrier_load(&g_cur_threads) > 0;
|
89
88
|
}
|
90
89
|
|
91
|
-
void grpc_executor_set_threading(grpc_exec_ctx
|
90
|
+
void grpc_executor_set_threading(grpc_exec_ctx* exec_ctx, bool threading) {
|
92
91
|
gpr_atm cur_threads = gpr_atm_no_barrier_load(&g_cur_threads);
|
93
92
|
if (threading) {
|
94
93
|
if (cur_threads > 0) return;
|
@@ -96,11 +95,11 @@ void grpc_executor_set_threading(grpc_exec_ctx *exec_ctx, bool threading) {
|
|
96
95
|
gpr_atm_no_barrier_store(&g_cur_threads, 1);
|
97
96
|
gpr_tls_init(&g_this_thread_state);
|
98
97
|
g_thread_state =
|
99
|
-
(thread_state
|
98
|
+
(thread_state*)gpr_zalloc(sizeof(thread_state) * g_max_threads);
|
100
99
|
for (size_t i = 0; i < g_max_threads; i++) {
|
101
100
|
gpr_mu_init(&g_thread_state[i].mu);
|
102
101
|
gpr_cv_init(&g_thread_state[i].cv);
|
103
|
-
g_thread_state[i].elems =
|
102
|
+
g_thread_state[i].elems = GRPC_CLOSURE_LIST_INIT;
|
104
103
|
}
|
105
104
|
|
106
105
|
gpr_thd_options opt = gpr_thd_options_default();
|
@@ -133,26 +132,25 @@ void grpc_executor_set_threading(grpc_exec_ctx *exec_ctx, bool threading) {
|
|
133
132
|
}
|
134
133
|
}
|
135
134
|
|
136
|
-
void grpc_executor_init(grpc_exec_ctx
|
137
|
-
grpc_register_tracer(&executor_trace);
|
135
|
+
void grpc_executor_init(grpc_exec_ctx* exec_ctx) {
|
138
136
|
gpr_atm_no_barrier_store(&g_cur_threads, 0);
|
139
137
|
grpc_executor_set_threading(exec_ctx, true);
|
140
138
|
}
|
141
139
|
|
142
|
-
void grpc_executor_shutdown(grpc_exec_ctx
|
140
|
+
void grpc_executor_shutdown(grpc_exec_ctx* exec_ctx) {
|
143
141
|
grpc_executor_set_threading(exec_ctx, false);
|
144
142
|
}
|
145
143
|
|
146
|
-
static void executor_thread(void
|
147
|
-
thread_state
|
144
|
+
static void executor_thread(void* arg) {
|
145
|
+
thread_state* ts = (thread_state*)arg;
|
148
146
|
gpr_tls_set(&g_this_thread_state, (intptr_t)ts);
|
149
147
|
|
150
148
|
grpc_exec_ctx exec_ctx =
|
151
|
-
GRPC_EXEC_CTX_INITIALIZER(0, grpc_never_ready_to_finish,
|
149
|
+
GRPC_EXEC_CTX_INITIALIZER(0, grpc_never_ready_to_finish, nullptr);
|
152
150
|
|
153
151
|
size_t subtract_depth = 0;
|
154
152
|
for (;;) {
|
155
|
-
if (
|
153
|
+
if (executor_trace.enabled()) {
|
156
154
|
gpr_log(GPR_DEBUG, "EXECUTOR[%d]: step (sub_depth=%" PRIdPTR ")",
|
157
155
|
(int)(ts - g_thread_state), subtract_depth);
|
158
156
|
}
|
@@ -163,7 +161,7 @@ static void executor_thread(void *arg) {
|
|
163
161
|
gpr_cv_wait(&ts->cv, &ts->mu, gpr_inf_future(GPR_CLOCK_REALTIME));
|
164
162
|
}
|
165
163
|
if (ts->shutdown) {
|
166
|
-
if (
|
164
|
+
if (executor_trace.enabled()) {
|
167
165
|
gpr_log(GPR_DEBUG, "EXECUTOR[%d]: shutdown",
|
168
166
|
(int)(ts - g_thread_state));
|
169
167
|
}
|
@@ -172,19 +170,20 @@ static void executor_thread(void *arg) {
|
|
172
170
|
}
|
173
171
|
GRPC_STATS_INC_EXECUTOR_QUEUE_DRAINED(&exec_ctx);
|
174
172
|
grpc_closure_list exec = ts->elems;
|
175
|
-
ts->elems =
|
173
|
+
ts->elems = GRPC_CLOSURE_LIST_INIT;
|
176
174
|
gpr_mu_unlock(&ts->mu);
|
177
|
-
if (
|
175
|
+
if (executor_trace.enabled()) {
|
178
176
|
gpr_log(GPR_DEBUG, "EXECUTOR[%d]: execute", (int)(ts - g_thread_state));
|
179
177
|
}
|
180
178
|
|
179
|
+
grpc_exec_ctx_invalidate_now(&exec_ctx);
|
181
180
|
subtract_depth = run_closures(&exec_ctx, exec);
|
182
181
|
}
|
183
182
|
grpc_exec_ctx_finish(&exec_ctx);
|
184
183
|
}
|
185
184
|
|
186
|
-
static void executor_push(grpc_exec_ctx
|
187
|
-
grpc_error
|
185
|
+
static void executor_push(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
|
186
|
+
grpc_error* error, bool is_short) {
|
188
187
|
bool retry_push;
|
189
188
|
if (is_short) {
|
190
189
|
GRPC_STATS_INC_EXECUTOR_SCHEDULED_SHORT_ITEMS(exec_ctx);
|
@@ -195,7 +194,7 @@ static void executor_push(grpc_exec_ctx *exec_ctx, grpc_closure *closure,
|
|
195
194
|
retry_push = false;
|
196
195
|
size_t cur_thread_count = (size_t)gpr_atm_no_barrier_load(&g_cur_threads);
|
197
196
|
if (cur_thread_count == 0) {
|
198
|
-
if (
|
197
|
+
if (executor_trace.enabled()) {
|
199
198
|
#ifndef NDEBUG
|
200
199
|
gpr_log(GPR_DEBUG, "EXECUTOR: schedule %p (created %s:%d) inline",
|
201
200
|
closure, closure->file_created, closure->line_created);
|
@@ -206,17 +205,17 @@ static void executor_push(grpc_exec_ctx *exec_ctx, grpc_closure *closure,
|
|
206
205
|
grpc_closure_list_append(&exec_ctx->closure_list, closure, error);
|
207
206
|
return;
|
208
207
|
}
|
209
|
-
thread_state
|
210
|
-
if (ts ==
|
208
|
+
thread_state* ts = (thread_state*)gpr_tls_get(&g_this_thread_state);
|
209
|
+
if (ts == nullptr) {
|
211
210
|
ts = &g_thread_state[GPR_HASH_POINTER(exec_ctx, cur_thread_count)];
|
212
211
|
} else {
|
213
212
|
GRPC_STATS_INC_EXECUTOR_SCHEDULED_TO_SELF(exec_ctx);
|
214
213
|
}
|
215
|
-
thread_state
|
214
|
+
thread_state* orig_ts = ts;
|
216
215
|
|
217
216
|
bool try_new_thread;
|
218
217
|
for (;;) {
|
219
|
-
if (
|
218
|
+
if (executor_trace.enabled()) {
|
220
219
|
#ifndef NDEBUG
|
221
220
|
gpr_log(
|
222
221
|
GPR_DEBUG,
|
@@ -275,13 +274,13 @@ static void executor_push(grpc_exec_ctx *exec_ctx, grpc_closure *closure,
|
|
275
274
|
} while (retry_push);
|
276
275
|
}
|
277
276
|
|
278
|
-
static void executor_push_short(grpc_exec_ctx
|
279
|
-
grpc_error
|
277
|
+
static void executor_push_short(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
|
278
|
+
grpc_error* error) {
|
280
279
|
executor_push(exec_ctx, closure, error, true);
|
281
280
|
}
|
282
281
|
|
283
|
-
static void executor_push_long(grpc_exec_ctx
|
284
|
-
grpc_error
|
282
|
+
static void executor_push_long(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
|
283
|
+
grpc_error* error) {
|
285
284
|
executor_push(exec_ctx, closure, error, false);
|
286
285
|
}
|
287
286
|
|
@@ -294,7 +293,7 @@ static const grpc_closure_scheduler_vtable executor_vtable_long = {
|
|
294
293
|
executor_push_long, executor_push_long, "executor"};
|
295
294
|
static grpc_closure_scheduler executor_scheduler_long = {&executor_vtable_long};
|
296
295
|
|
297
|
-
grpc_closure_scheduler
|
296
|
+
grpc_closure_scheduler* grpc_executor_scheduler(
|
298
297
|
grpc_executor_job_length length) {
|
299
298
|
return length == GRPC_EXECUTOR_SHORT ? &executor_scheduler_short
|
300
299
|
: &executor_scheduler_long;
|