grpc 1.8.7 → 1.9.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (488) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +549 -325
  3. data/include/grpc/impl/codegen/grpc_types.h +1 -2
  4. data/include/grpc/impl/codegen/port_platform.h +46 -5
  5. data/include/grpc/impl/codegen/slice.h +1 -2
  6. data/include/grpc/module.modulemap +0 -2
  7. data/include/grpc/slice_buffer.h +1 -2
  8. data/include/grpc/support/log.h +4 -2
  9. data/include/grpc/support/thd.h +4 -1
  10. data/include/grpc/support/tls.h +6 -0
  11. data/include/grpc/support/tls_gcc.h +5 -40
  12. data/include/grpc/support/tls_msvc.h +9 -0
  13. data/include/grpc/support/tls_pthread.h +9 -0
  14. data/src/core/ext/filters/client_channel/backup_poller.cc +32 -29
  15. data/src/core/ext/filters/client_channel/backup_poller.h +2 -2
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +26 -32
  17. data/src/core/ext/filters/client_channel/client_channel.cc +325 -356
  18. data/src/core/ext/filters/client_channel/client_channel.h +4 -12
  19. data/src/core/ext/filters/client_channel/client_channel_factory.cc +9 -14
  20. data/src/core/ext/filters/client_channel/client_channel_factory.h +7 -20
  21. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +7 -10
  22. data/src/core/ext/filters/client_channel/connector.cc +6 -7
  23. data/src/core/ext/filters/client_channel/connector.h +6 -16
  24. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +38 -50
  25. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -8
  26. data/src/core/ext/filters/client_channel/http_proxy.cc +9 -13
  27. data/src/core/ext/filters/client_channel/http_proxy.h +0 -8
  28. data/src/core/ext/filters/client_channel/lb_policy.cc +72 -94
  29. data/src/core/ext/filters/client_channel/lb_policy.h +83 -92
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -19
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +0 -8
  32. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +474 -591
  33. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -8
  34. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +2 -10
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +6 -6
  36. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +0 -8
  37. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +0 -9
  38. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +0 -9
  39. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +3 -4
  40. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +9 -12
  41. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +160 -182
  42. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -221
  43. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +24 -35
  44. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +9 -20
  45. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +6 -9
  46. data/src/core/ext/filters/client_channel/lb_policy_factory.h +4 -15
  47. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -3
  48. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -9
  49. data/src/core/ext/filters/client_channel/parse_address.cc +1 -1
  50. data/src/core/ext/filters/client_channel/parse_address.h +0 -8
  51. data/src/core/ext/filters/client_channel/proxy_mapper.cc +6 -8
  52. data/src/core/ext/filters/client_channel/proxy_mapper.h +6 -16
  53. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +13 -17
  54. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +2 -12
  55. data/src/core/ext/filters/client_channel/resolver.cc +11 -13
  56. data/src/core/ext/filters/client_channel/resolver.h +14 -25
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +57 -70
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -12
  59. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +23 -31
  60. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +27 -45
  61. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -15
  62. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +9 -11
  63. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +53 -66
  64. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +25 -33
  65. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -9
  66. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +26 -35
  67. data/src/core/ext/filters/client_channel/resolver_factory.cc +2 -3
  68. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -12
  69. data/src/core/ext/filters/client_channel/resolver_registry.cc +12 -15
  70. data/src/core/ext/filters/client_channel/resolver_registry.h +3 -12
  71. data/src/core/ext/filters/client_channel/retry_throttle.h +0 -8
  72. data/src/core/ext/filters/client_channel/subchannel.cc +289 -301
  73. data/src/core/ext/filters/client_channel/subchannel.h +57 -84
  74. data/src/core/ext/filters/client_channel/subchannel_index.cc +30 -33
  75. data/src/core/ext/filters/client_channel/subchannel_index.h +4 -16
  76. data/src/core/ext/filters/client_channel/uri_parser.cc +13 -17
  77. data/src/core/ext/filters/client_channel/uri_parser.h +1 -10
  78. data/src/core/ext/filters/deadline/deadline_filter.cc +49 -67
  79. data/src/core/ext/filters/deadline/deadline_filter.h +4 -14
  80. data/src/core/ext/filters/http/client/http_client_filter.cc +60 -77
  81. data/src/core/ext/filters/http/client/http_client_filter.h +0 -8
  82. data/src/core/ext/filters/http/http_filters_plugin.cc +4 -6
  83. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +63 -79
  84. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -8
  85. data/src/core/ext/filters/http/server/http_server_filter.cc +57 -71
  86. data/src/core/ext/filters/http/server/http_server_filter.h +0 -8
  87. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +19 -24
  88. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +0 -8
  89. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +3 -3
  90. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +0 -8
  91. data/src/core/ext/filters/max_age/max_age_filter.cc +49 -62
  92. data/src/core/ext/filters/max_age/max_age_filter.h +0 -8
  93. data/src/core/ext/filters/message_size/message_size_filter.cc +23 -29
  94. data/src/core/ext/filters/message_size/message_size_filter.h +0 -8
  95. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -18
  96. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +0 -8
  97. data/src/core/ext/filters/workarounds/workaround_utils.h +0 -8
  98. data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -8
  99. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +33 -40
  100. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -8
  101. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +15 -17
  102. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +8 -8
  103. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +23 -28
  104. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +50 -57
  105. data/src/core/ext/transport/chttp2/server/chttp2_server.h +1 -10
  106. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -3
  107. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -10
  108. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -6
  109. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -9
  110. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -11
  111. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -9
  112. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +10 -2
  113. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +516 -636
  114. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -11
  115. data/src/core/ext/transport/chttp2/transport/flow_control.cc +29 -13
  116. data/src/core/ext/transport/chttp2/transport/flow_control.h +196 -53
  117. data/src/core/ext/transport/chttp2/transport/frame.h +0 -8
  118. data/src/core/ext/transport/chttp2/transport/frame_data.cc +31 -33
  119. data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -12
  120. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -3
  121. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -10
  122. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
  123. data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -9
  124. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
  125. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -10
  126. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +8 -3
  127. data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -10
  128. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +8 -8
  129. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -11
  130. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +63 -81
  131. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -12
  132. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +230 -318
  133. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -19
  134. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +14 -20
  135. data/src/core/ext/transport/chttp2/transport/hpack_table.h +5 -16
  136. data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -7
  137. data/src/core/ext/transport/chttp2/transport/huffsyms.h +0 -8
  138. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +8 -11
  139. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +4 -13
  140. data/src/core/ext/transport/chttp2/transport/internal.h +51 -75
  141. data/src/core/ext/transport/chttp2/transport/parsing.cc +83 -109
  142. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -0
  143. data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -8
  144. data/src/core/ext/transport/chttp2/transport/varint.h +0 -8
  145. data/src/core/ext/transport/chttp2/transport/writing.cc +61 -65
  146. data/src/core/ext/transport/inproc/inproc_plugin.cc +2 -4
  147. data/src/core/ext/transport/inproc/inproc_transport.cc +177 -188
  148. data/src/core/ext/transport/inproc/inproc_transport.h +0 -8
  149. data/src/core/lib/backoff/backoff.cc +39 -44
  150. data/src/core/lib/backoff/backoff.h +61 -57
  151. data/src/core/lib/channel/channel_args.cc +8 -10
  152. data/src/core/lib/channel/channel_args.h +4 -13
  153. data/src/core/lib/channel/channel_stack.cc +19 -27
  154. data/src/core/lib/channel/channel_stack.h +27 -47
  155. data/src/core/lib/channel/channel_stack_builder.cc +11 -14
  156. data/src/core/lib/channel/channel_stack_builder.h +4 -15
  157. data/src/core/lib/channel/connected_channel.cc +23 -36
  158. data/src/core/lib/channel/connected_channel.h +1 -10
  159. data/src/core/lib/channel/handshaker.cc +31 -40
  160. data/src/core/lib/channel/handshaker.h +14 -25
  161. data/src/core/lib/channel/handshaker_factory.cc +6 -6
  162. data/src/core/lib/channel/handshaker_factory.h +5 -15
  163. data/src/core/lib/channel/handshaker_registry.cc +9 -13
  164. data/src/core/lib/channel/handshaker_registry.h +2 -11
  165. data/src/core/lib/compression/algorithm_metadata.h +0 -8
  166. data/src/core/lib/compression/message_compress.cc +19 -23
  167. data/src/core/lib/compression/message_compress.h +2 -12
  168. data/src/core/lib/compression/stream_compression.cc +1 -1
  169. data/src/core/lib/compression/stream_compression.h +0 -8
  170. data/src/core/lib/compression/stream_compression_gzip.cc +12 -11
  171. data/src/core/lib/compression/stream_compression_gzip.h +0 -8
  172. data/src/core/lib/compression/stream_compression_identity.h +0 -8
  173. data/src/core/lib/debug/stats.cc +4 -4
  174. data/src/core/lib/debug/stats.h +9 -19
  175. data/src/core/lib/debug/stats_data.cc +85 -116
  176. data/src/core/lib/debug/stats_data.h +236 -312
  177. data/src/core/lib/debug/trace.cc +1 -1
  178. data/src/core/lib/debug/trace.h +0 -12
  179. data/src/core/lib/{support → gpr++}/abstract.h +8 -3
  180. data/src/core/lib/{support → gpr++}/atomic.h +5 -5
  181. data/src/core/lib/{support → gpr++}/atomic_with_atm.h +3 -3
  182. data/src/core/lib/{support → gpr++}/atomic_with_std.h +3 -3
  183. data/src/core/lib/gpr++/debug_location.h +52 -0
  184. data/src/core/lib/gpr++/inlined_vector.h +112 -0
  185. data/src/core/lib/{support → gpr++}/manual_constructor.h +2 -2
  186. data/src/core/lib/{support → gpr++}/memory.h +3 -3
  187. data/src/core/lib/gpr++/orphanable.h +171 -0
  188. data/src/core/lib/gpr++/ref_counted.h +133 -0
  189. data/src/core/lib/gpr++/ref_counted_ptr.h +99 -0
  190. data/src/core/lib/{support → gpr}/alloc.cc +0 -0
  191. data/src/core/lib/{support → gpr}/arena.cc +1 -1
  192. data/src/core/lib/{support → gpr}/arena.h +3 -11
  193. data/src/core/lib/{support → gpr}/atm.cc +0 -0
  194. data/src/core/lib/{support → gpr}/avl.cc +0 -0
  195. data/src/core/lib/{support → gpr}/cmdline.cc +1 -1
  196. data/src/core/lib/{support → gpr}/cpu_iphone.cc +0 -0
  197. data/src/core/lib/{support → gpr}/cpu_linux.cc +0 -0
  198. data/src/core/lib/{support → gpr}/cpu_posix.cc +0 -0
  199. data/src/core/lib/{support → gpr}/cpu_windows.cc +0 -0
  200. data/src/core/lib/{support → gpr}/env.h +3 -11
  201. data/src/core/lib/{support → gpr}/env_linux.cc +2 -2
  202. data/src/core/lib/{support → gpr}/env_posix.cc +4 -4
  203. data/src/core/lib/{support → gpr}/env_windows.cc +3 -3
  204. data/src/core/lib/{support → gpr}/fork.cc +3 -3
  205. data/src/core/lib/{support → gpr}/fork.h +3 -3
  206. data/src/core/lib/{support → gpr}/host_port.cc +1 -1
  207. data/src/core/lib/{support → gpr}/log.cc +3 -3
  208. data/src/core/lib/{support → gpr}/log_android.cc +3 -3
  209. data/src/core/lib/{support → gpr}/log_linux.cc +1 -1
  210. data/src/core/lib/{support → gpr}/log_posix.cc +5 -5
  211. data/src/core/lib/{support → gpr}/log_windows.cc +3 -3
  212. data/src/core/lib/{support → gpr}/mpscq.cc +1 -1
  213. data/src/core/lib/{support → gpr}/mpscq.h +3 -10
  214. data/src/core/lib/{support → gpr}/murmur_hash.cc +1 -1
  215. data/src/core/lib/{support → gpr}/murmur_hash.h +3 -11
  216. data/src/core/lib/{support → gpr}/spinlock.h +3 -3
  217. data/src/core/lib/{support → gpr}/string.cc +1 -1
  218. data/src/core/lib/{support → gpr}/string.h +3 -10
  219. data/src/core/lib/{support → gpr}/string_posix.cc +0 -0
  220. data/src/core/lib/{support → gpr}/string_util_windows.cc +2 -2
  221. data/src/core/lib/{support → gpr}/string_windows.cc +1 -1
  222. data/src/core/lib/{support → gpr}/string_windows.h +3 -11
  223. data/src/core/lib/{support → gpr}/subprocess_posix.cc +0 -0
  224. data/src/core/lib/{support → gpr}/subprocess_windows.cc +2 -2
  225. data/src/core/lib/{support → gpr}/sync.cc +0 -0
  226. data/src/core/lib/{support → gpr}/sync_posix.cc +10 -1
  227. data/src/core/lib/{support → gpr}/sync_windows.cc +0 -0
  228. data/src/core/lib/{support → gpr}/thd.cc +0 -0
  229. data/src/core/lib/{support → gpr}/thd_internal.h +3 -3
  230. data/src/core/lib/{support → gpr}/thd_posix.cc +18 -2
  231. data/src/core/lib/{support → gpr}/thd_windows.cc +2 -1
  232. data/src/core/lib/{support → gpr}/time.cc +0 -0
  233. data/src/core/lib/{support → gpr}/time_posix.cc +2 -4
  234. data/src/core/lib/{support → gpr}/time_precise.cc +1 -1
  235. data/src/core/lib/{support → gpr}/time_precise.h +3 -11
  236. data/src/core/lib/{support → gpr}/time_windows.cc +1 -3
  237. data/src/core/lib/{support → gpr}/tls_pthread.cc +0 -0
  238. data/src/core/lib/{support → gpr}/tmpfile.h +3 -11
  239. data/src/core/lib/{support → gpr}/tmpfile_msys.cc +2 -2
  240. data/src/core/lib/{support → gpr}/tmpfile_posix.cc +2 -2
  241. data/src/core/lib/{support → gpr}/tmpfile_windows.cc +2 -2
  242. data/src/core/lib/{support → gpr}/wrap_memcpy.cc +0 -0
  243. data/src/core/lib/http/format_request.cc +1 -1
  244. data/src/core/lib/http/format_request.h +0 -8
  245. data/src/core/lib/http/httpcli.cc +55 -74
  246. data/src/core/lib/http/httpcli.h +13 -22
  247. data/src/core/lib/http/httpcli_security_connector.cc +27 -33
  248. data/src/core/lib/http/parser.h +0 -8
  249. data/src/core/lib/iomgr/block_annotate.h +10 -17
  250. data/src/core/lib/iomgr/call_combiner.cc +14 -17
  251. data/src/core/lib/iomgr/call_combiner.h +16 -34
  252. data/src/core/lib/iomgr/closure.h +24 -37
  253. data/src/core/lib/iomgr/combiner.cc +62 -66
  254. data/src/core/lib/iomgr/combiner.h +6 -16
  255. data/src/core/lib/iomgr/endpoint.cc +15 -21
  256. data/src/core/lib/iomgr/endpoint.h +16 -33
  257. data/src/core/lib/iomgr/endpoint_pair.h +0 -8
  258. data/src/core/lib/iomgr/endpoint_pair_posix.cc +4 -5
  259. data/src/core/lib/iomgr/endpoint_pair_windows.cc +4 -6
  260. data/src/core/lib/iomgr/error.cc +2 -6
  261. data/src/core/lib/iomgr/error.h +4 -9
  262. data/src/core/lib/iomgr/error_internal.h +0 -8
  263. data/src/core/lib/iomgr/ev_epoll1_linux.cc +110 -117
  264. data/src/core/lib/iomgr/ev_epoll1_linux.h +0 -8
  265. data/src/core/lib/iomgr/ev_epollex_linux.cc +111 -141
  266. data/src/core/lib/iomgr/ev_epollex_linux.h +0 -8
  267. data/src/core/lib/iomgr/ev_epollsig_linux.cc +83 -109
  268. data/src/core/lib/iomgr/ev_epollsig_linux.h +2 -10
  269. data/src/core/lib/iomgr/ev_poll_posix.cc +103 -125
  270. data/src/core/lib/iomgr/ev_poll_posix.h +0 -8
  271. data/src/core/lib/iomgr/ev_posix.cc +35 -50
  272. data/src/core/lib/iomgr/ev_posix.h +27 -53
  273. data/src/core/lib/iomgr/exec_ctx.cc +46 -78
  274. data/src/core/lib/iomgr/exec_ctx.h +127 -60
  275. data/src/core/lib/iomgr/executor.cc +34 -38
  276. data/src/core/lib/iomgr/executor.h +3 -11
  277. data/src/core/lib/iomgr/fork_posix.cc +13 -12
  278. data/src/core/lib/iomgr/gethostname.h +0 -8
  279. data/src/core/lib/iomgr/gethostname_sysconf.cc +1 -1
  280. data/src/core/lib/iomgr/iocp_windows.cc +14 -16
  281. data/src/core/lib/iomgr/iocp_windows.h +1 -10
  282. data/src/core/lib/iomgr/iomgr.cc +60 -59
  283. data/src/core/lib/iomgr/iomgr.h +3 -12
  284. data/src/core/lib/iomgr/iomgr_internal.h +0 -8
  285. data/src/core/lib/iomgr/iomgr_uv.cc +2 -3
  286. data/src/core/lib/iomgr/iomgr_uv.h +0 -8
  287. data/src/core/lib/iomgr/is_epollexclusive_available.cc +1 -1
  288. data/src/core/lib/iomgr/load_file.cc +1 -1
  289. data/src/core/lib/iomgr/load_file.h +0 -8
  290. data/src/core/lib/iomgr/lockfree_event.cc +7 -8
  291. data/src/core/lib/iomgr/lockfree_event.h +3 -3
  292. data/src/core/lib/iomgr/polling_entity.cc +6 -10
  293. data/src/core/lib/iomgr/polling_entity.h +2 -11
  294. data/src/core/lib/iomgr/pollset.h +4 -13
  295. data/src/core/lib/iomgr/pollset_set.h +5 -18
  296. data/src/core/lib/iomgr/pollset_set_uv.cc +5 -10
  297. data/src/core/lib/iomgr/pollset_set_windows.cc +5 -10
  298. data/src/core/lib/iomgr/pollset_uv.cc +8 -9
  299. data/src/core/lib/iomgr/pollset_uv.h +0 -8
  300. data/src/core/lib/iomgr/pollset_windows.cc +14 -15
  301. data/src/core/lib/iomgr/pollset_windows.h +0 -8
  302. data/src/core/lib/iomgr/port.h +6 -1
  303. data/src/core/lib/iomgr/resolve_address.h +1 -10
  304. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -12
  305. data/src/core/lib/iomgr/resolve_address_uv.cc +7 -8
  306. data/src/core/lib/iomgr/resolve_address_windows.cc +8 -9
  307. data/src/core/lib/iomgr/resource_quota.cc +77 -107
  308. data/src/core/lib/iomgr/resource_quota.h +8 -25
  309. data/src/core/lib/iomgr/sockaddr_utils.cc +1 -1
  310. data/src/core/lib/iomgr/sockaddr_utils.h +0 -8
  311. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  312. data/src/core/lib/iomgr/socket_factory_posix.h +0 -8
  313. data/src/core/lib/iomgr/socket_mutator.cc +1 -1
  314. data/src/core/lib/iomgr/socket_mutator.h +1 -9
  315. data/src/core/lib/iomgr/socket_utils.h +0 -8
  316. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -1
  317. data/src/core/lib/iomgr/socket_utils_posix.h +0 -8
  318. data/src/core/lib/iomgr/socket_windows.cc +8 -11
  319. data/src/core/lib/iomgr/socket_windows.h +3 -14
  320. data/src/core/lib/iomgr/tcp_client.h +1 -10
  321. data/src/core/lib/iomgr/tcp_client_posix.cc +94 -78
  322. data/src/core/lib/iomgr/tcp_client_posix.h +36 -8
  323. data/src/core/lib/iomgr/tcp_client_uv.cc +16 -23
  324. data/src/core/lib/iomgr/tcp_client_windows.cc +22 -25
  325. data/src/core/lib/iomgr/tcp_posix.cc +131 -153
  326. data/src/core/lib/iomgr/tcp_posix.h +3 -12
  327. data/src/core/lib/iomgr/tcp_server.h +6 -17
  328. data/src/core/lib/iomgr/tcp_server_posix.cc +31 -35
  329. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -8
  330. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
  331. data/src/core/lib/iomgr/tcp_server_uv.cc +23 -34
  332. data/src/core/lib/iomgr/tcp_server_windows.cc +24 -34
  333. data/src/core/lib/iomgr/tcp_uv.cc +42 -56
  334. data/src/core/lib/iomgr/tcp_uv.h +0 -8
  335. data/src/core/lib/iomgr/tcp_windows.cc +43 -50
  336. data/src/core/lib/iomgr/tcp_windows.h +1 -9
  337. data/src/core/lib/iomgr/time_averaged_stats.h +0 -8
  338. data/src/core/lib/iomgr/timer.h +6 -15
  339. data/src/core/lib/iomgr/timer_generic.cc +22 -27
  340. data/src/core/lib/iomgr/timer_heap.h +0 -8
  341. data/src/core/lib/iomgr/timer_manager.cc +17 -19
  342. data/src/core/lib/iomgr/timer_manager.h +0 -8
  343. data/src/core/lib/iomgr/timer_uv.cc +12 -14
  344. data/src/core/lib/iomgr/udp_server.cc +148 -54
  345. data/src/core/lib/iomgr/udp_server.h +16 -21
  346. data/src/core/lib/iomgr/unix_sockets_posix.h +0 -8
  347. data/src/core/lib/iomgr/wakeup_fd_cv.cc +4 -4
  348. data/src/core/lib/iomgr/wakeup_fd_cv.h +12 -20
  349. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
  350. data/src/core/lib/iomgr/wakeup_fd_pipe.h +0 -8
  351. data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -8
  352. data/src/core/lib/json/json.h +0 -8
  353. data/src/core/lib/json/json_reader.h +0 -8
  354. data/src/core/lib/json/json_writer.h +0 -8
  355. data/src/core/lib/profiling/basic_timers.cc +3 -2
  356. data/src/core/lib/profiling/timers.h +0 -8
  357. data/src/core/lib/security/context/security_context.cc +9 -10
  358. data/src/core/lib/security/context/security_context.h +0 -8
  359. data/src/core/lib/security/credentials/composite/composite_credentials.cc +23 -28
  360. data/src/core/lib/security/credentials/composite/composite_credentials.h +0 -8
  361. data/src/core/lib/security/credentials/credentials.cc +33 -42
  362. data/src/core/lib/security/credentials/credentials.h +24 -43
  363. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  364. data/src/core/lib/security/credentials/fake/fake_credentials.cc +16 -22
  365. data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -8
  366. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
  367. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +28 -34
  368. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +0 -8
  369. data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -13
  370. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
  371. data/src/core/lib/security/credentials/jwt/json_token.h +0 -8
  372. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +14 -20
  373. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -10
  374. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +56 -72
  375. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +5 -17
  376. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +47 -55
  377. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +3 -12
  378. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +23 -28
  379. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +8 -13
  380. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -8
  381. data/src/core/lib/security/transport/auth_filters.h +0 -8
  382. data/src/core/lib/security/transport/client_auth_filter.cc +45 -54
  383. data/src/core/lib/security/transport/lb_targets_info.cc +2 -2
  384. data/src/core/lib/security/transport/lb_targets_info.h +0 -8
  385. data/src/core/lib/security/transport/secure_endpoint.cc +54 -68
  386. data/src/core/lib/security/transport/secure_endpoint.h +0 -8
  387. data/src/core/lib/security/transport/security_connector.cc +62 -86
  388. data/src/core/lib/security/transport/security_connector.h +22 -39
  389. data/src/core/lib/security/transport/security_handshaker.cc +83 -106
  390. data/src/core/lib/security/transport/security_handshaker.h +1 -10
  391. data/src/core/lib/security/transport/server_auth_filter.cc +31 -38
  392. data/src/core/lib/security/transport/tsi_error.h +0 -8
  393. data/src/core/lib/security/util/json_util.h +0 -8
  394. data/src/core/lib/slice/b64.cc +5 -6
  395. data/src/core/lib/slice/b64.h +3 -12
  396. data/src/core/lib/slice/percent_encoding.h +0 -8
  397. data/src/core/lib/slice/slice.cc +8 -9
  398. data/src/core/lib/slice/slice_buffer.cc +11 -16
  399. data/src/core/lib/slice/slice_hash_table.cc +5 -7
  400. data/src/core/lib/slice/slice_hash_table.h +2 -12
  401. data/src/core/lib/slice/slice_intern.cc +4 -5
  402. data/src/core/lib/slice/slice_internal.h +4 -15
  403. data/src/core/lib/slice/slice_string_helpers.cc +1 -1
  404. data/src/core/lib/slice/slice_string_helpers.h +1 -9
  405. data/src/core/lib/surface/alarm.cc +11 -14
  406. data/src/core/lib/surface/alarm_internal.h +0 -8
  407. data/src/core/lib/surface/byte_buffer.cc +2 -3
  408. data/src/core/lib/surface/byte_buffer_reader.cc +7 -9
  409. data/src/core/lib/surface/call.cc +198 -241
  410. data/src/core/lib/surface/call.h +9 -23
  411. data/src/core/lib/surface/call_details.cc +3 -4
  412. data/src/core/lib/surface/call_log_batch.cc +1 -1
  413. data/src/core/lib/surface/call_test_only.h +0 -8
  414. data/src/core/lib/surface/channel.cc +53 -64
  415. data/src/core/lib/surface/channel.h +12 -23
  416. data/src/core/lib/surface/channel_init.cc +2 -3
  417. data/src/core/lib/surface/channel_init.h +2 -12
  418. data/src/core/lib/surface/channel_ping.cc +7 -9
  419. data/src/core/lib/surface/channel_stack_type.h +0 -8
  420. data/src/core/lib/surface/completion_queue.cc +158 -176
  421. data/src/core/lib/surface/completion_queue.h +9 -20
  422. data/src/core/lib/surface/completion_queue_factory.h +0 -8
  423. data/src/core/lib/surface/event_string.cc +1 -1
  424. data/src/core/lib/surface/event_string.h +0 -8
  425. data/src/core/lib/surface/init.cc +27 -25
  426. data/src/core/lib/surface/init.h +0 -8
  427. data/src/core/lib/surface/init_secure.cc +2 -2
  428. data/src/core/lib/surface/lame_client.cc +30 -33
  429. data/src/core/lib/surface/lame_client.h +0 -8
  430. data/src/core/lib/surface/server.cc +151 -203
  431. data/src/core/lib/surface/server.h +7 -16
  432. data/src/core/lib/surface/validate_metadata.h +0 -8
  433. data/src/core/lib/surface/version.cc +2 -2
  434. data/src/core/lib/transport/bdp_estimator.cc +2 -2
  435. data/src/core/lib/transport/bdp_estimator.h +1 -1
  436. data/src/core/lib/transport/byte_stream.cc +24 -38
  437. data/src/core/lib/transport/byte_stream.h +10 -25
  438. data/src/core/lib/transport/connectivity_state.cc +9 -13
  439. data/src/core/lib/transport/connectivity_state.h +4 -14
  440. data/src/core/lib/transport/error_utils.cc +6 -6
  441. data/src/core/lib/transport/error_utils.h +2 -11
  442. data/src/core/lib/transport/metadata.cc +21 -23
  443. data/src/core/lib/transport/metadata.h +8 -20
  444. data/src/core/lib/transport/metadata_batch.cc +34 -45
  445. data/src/core/lib/transport/metadata_batch.h +18 -32
  446. data/src/core/lib/transport/service_config.cc +11 -15
  447. data/src/core/lib/transport/service_config.h +3 -13
  448. data/src/core/lib/transport/static_metadata.cc +1 -1
  449. data/src/core/lib/transport/static_metadata.h +1 -7
  450. data/src/core/lib/transport/status_conversion.cc +2 -3
  451. data/src/core/lib/transport/status_conversion.h +1 -10
  452. data/src/core/lib/transport/timeout_encoding.cc +1 -1
  453. data/src/core/lib/transport/timeout_encoding.h +1 -9
  454. data/src/core/lib/transport/transport.cc +36 -50
  455. data/src/core/lib/transport/transport.h +28 -30
  456. data/src/core/lib/transport/transport_impl.h +12 -23
  457. data/src/core/lib/transport/transport_op_string.cc +2 -2
  458. data/src/core/plugin_registry/grpc_plugin_registry.cc +34 -34
  459. data/src/core/tsi/fake_transport_security.cc +7 -10
  460. data/src/core/tsi/fake_transport_security.h +0 -8
  461. data/src/core/tsi/gts_transport_security.cc +2 -2
  462. data/src/core/tsi/gts_transport_security.h +0 -8
  463. data/src/core/tsi/ssl_transport_security.cc +3 -0
  464. data/src/core/tsi/ssl_transport_security.h +0 -8
  465. data/src/core/tsi/ssl_types.h +0 -8
  466. data/src/core/tsi/transport_security.h +1 -9
  467. data/src/core/tsi/transport_security_adapter.h +0 -8
  468. data/src/core/tsi/transport_security_grpc.cc +11 -18
  469. data/src/core/tsi/transport_security_grpc.h +9 -21
  470. data/src/core/tsi/transport_security_interface.h +0 -8
  471. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +0 -30
  472. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -48
  473. data/src/ruby/lib/grpc/version.rb +1 -1
  474. data/src/ruby/spec/channel_connection_spec.rb +2 -1
  475. data/src/ruby/spec/client_auth_spec.rb +1 -1
  476. data/src/ruby/spec/client_server_spec.rb +2 -2
  477. data/src/ruby/spec/generic/active_call_spec.rb +1 -1
  478. data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
  479. data/src/ruby/spec/generic/interceptor_registry_spec.rb +1 -1
  480. data/src/ruby/spec/generic/rpc_server_spec.rb +12 -12
  481. data/src/ruby/spec/google_rpc_status_utils_spec.rb +3 -2
  482. data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
  483. data/src/ruby/spec/server_spec.rb +9 -9
  484. data/src/ruby/spec/support/helpers.rb +35 -1
  485. metadata +68 -66
  486. data/include/grpc/impl/codegen/exec_ctx_fwd.h +0 -26
  487. data/include/grpc/support/histogram.h +0 -64
  488. data/src/core/lib/support/histogram.cc +0 -227
@@ -46,14 +46,13 @@ static void grpc_proxy_mapper_list_register(grpc_proxy_mapper_list* list,
46
46
  ++list->num_mappers;
47
47
  }
48
48
 
49
- static bool grpc_proxy_mapper_list_map_name(grpc_exec_ctx* exec_ctx,
50
- grpc_proxy_mapper_list* list,
49
+ static bool grpc_proxy_mapper_list_map_name(grpc_proxy_mapper_list* list,
51
50
  const char* server_uri,
52
51
  const grpc_channel_args* args,
53
52
  char** name_to_resolve,
54
53
  grpc_channel_args** new_args) {
55
54
  for (size_t i = 0; i < list->num_mappers; ++i) {
56
- if (grpc_proxy_mapper_map_name(exec_ctx, list->list[i], server_uri, args,
55
+ if (grpc_proxy_mapper_map_name(list->list[i], server_uri, args,
57
56
  name_to_resolve, new_args)) {
58
57
  return true;
59
58
  }
@@ -62,12 +61,12 @@ static bool grpc_proxy_mapper_list_map_name(grpc_exec_ctx* exec_ctx,
62
61
  }
63
62
 
64
63
  static bool grpc_proxy_mapper_list_map_address(
65
- grpc_exec_ctx* exec_ctx, grpc_proxy_mapper_list* list,
66
- const grpc_resolved_address* address, const grpc_channel_args* args,
67
- grpc_resolved_address** new_address, grpc_channel_args** new_args) {
64
+ grpc_proxy_mapper_list* list, const grpc_resolved_address* address,
65
+ const grpc_channel_args* args, grpc_resolved_address** new_address,
66
+ grpc_channel_args** new_args) {
68
67
  for (size_t i = 0; i < list->num_mappers; ++i) {
69
- if (grpc_proxy_mapper_map_address(exec_ctx, list->list[i], address, args,
70
- new_address, new_args)) {
68
+ if (grpc_proxy_mapper_map_address(list->list[i], address, args, new_address,
69
+ new_args)) {
71
70
  return true;
72
71
  }
73
72
  }
@@ -105,20 +104,17 @@ void grpc_proxy_mapper_register(bool at_start, grpc_proxy_mapper* mapper) {
105
104
  grpc_proxy_mapper_list_register(&g_proxy_mapper_list, at_start, mapper);
106
105
  }
107
106
 
108
- bool grpc_proxy_mappers_map_name(grpc_exec_ctx* exec_ctx,
109
- const char* server_uri,
107
+ bool grpc_proxy_mappers_map_name(const char* server_uri,
110
108
  const grpc_channel_args* args,
111
109
  char** name_to_resolve,
112
110
  grpc_channel_args** new_args) {
113
- return grpc_proxy_mapper_list_map_name(exec_ctx, &g_proxy_mapper_list,
114
- server_uri, args, name_to_resolve,
115
- new_args);
111
+ return grpc_proxy_mapper_list_map_name(&g_proxy_mapper_list, server_uri, args,
112
+ name_to_resolve, new_args);
116
113
  }
117
- bool grpc_proxy_mappers_map_address(grpc_exec_ctx* exec_ctx,
118
- const grpc_resolved_address* address,
114
+ bool grpc_proxy_mappers_map_address(const grpc_resolved_address* address,
119
115
  const grpc_channel_args* args,
120
116
  grpc_resolved_address** new_address,
121
117
  grpc_channel_args** new_args) {
122
- return grpc_proxy_mapper_list_map_address(
123
- exec_ctx, &g_proxy_mapper_list, address, args, new_address, new_args);
118
+ return grpc_proxy_mapper_list_map_address(&g_proxy_mapper_list, address, args,
119
+ new_address, new_args);
124
120
  }
@@ -21,10 +21,6 @@
21
21
 
22
22
  #include "src/core/ext/filters/client_channel/proxy_mapper.h"
23
23
 
24
- #ifdef __cplusplus
25
- extern "C" {
26
- #endif
27
-
28
24
  void grpc_proxy_mapper_registry_init();
29
25
  void grpc_proxy_mapper_registry_shutdown();
30
26
 
@@ -33,20 +29,14 @@ void grpc_proxy_mapper_registry_shutdown();
33
29
  /// the list. Otherwise, it will be added to the end.
34
30
  void grpc_proxy_mapper_register(bool at_start, grpc_proxy_mapper* mapper);
35
31
 
36
- bool grpc_proxy_mappers_map_name(grpc_exec_ctx* exec_ctx,
37
- const char* server_uri,
32
+ bool grpc_proxy_mappers_map_name(const char* server_uri,
38
33
  const grpc_channel_args* args,
39
34
  char** name_to_resolve,
40
35
  grpc_channel_args** new_args);
41
36
 
42
- bool grpc_proxy_mappers_map_address(grpc_exec_ctx* exec_ctx,
43
- const grpc_resolved_address* address,
37
+ bool grpc_proxy_mappers_map_address(const grpc_resolved_address* address,
44
38
  const grpc_channel_args* args,
45
39
  grpc_resolved_address** new_address,
46
40
  grpc_channel_args** new_args);
47
41
 
48
- #ifdef __cplusplus
49
- }
50
- #endif
51
-
52
42
  #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_PROXY_MAPPER_REGISTRY_H */
@@ -46,8 +46,8 @@ void grpc_resolver_ref(grpc_resolver* resolver) {
46
46
  }
47
47
 
48
48
  #ifndef NDEBUG
49
- void grpc_resolver_unref(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
50
- const char* file, int line, const char* reason) {
49
+ void grpc_resolver_unref(grpc_resolver* resolver, const char* file, int line,
50
+ const char* reason) {
51
51
  if (grpc_trace_resolver_refcount.enabled()) {
52
52
  gpr_atm old_refs = gpr_atm_no_barrier_load(&resolver->refs.count);
53
53
  gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
@@ -55,27 +55,25 @@ void grpc_resolver_unref(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
55
55
  old_refs, old_refs - 1, reason);
56
56
  }
57
57
  #else
58
- void grpc_resolver_unref(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver) {
58
+ void grpc_resolver_unref(grpc_resolver* resolver) {
59
59
  #endif
60
60
  if (gpr_unref(&resolver->refs)) {
61
61
  grpc_combiner* combiner = resolver->combiner;
62
- resolver->vtable->destroy(exec_ctx, resolver);
63
- GRPC_COMBINER_UNREF(exec_ctx, combiner, "resolver");
62
+ resolver->vtable->destroy(resolver);
63
+ GRPC_COMBINER_UNREF(combiner, "resolver");
64
64
  }
65
65
  }
66
66
 
67
- void grpc_resolver_shutdown_locked(grpc_exec_ctx* exec_ctx,
68
- grpc_resolver* resolver) {
69
- resolver->vtable->shutdown_locked(exec_ctx, resolver);
67
+ void grpc_resolver_shutdown_locked(grpc_resolver* resolver) {
68
+ resolver->vtable->shutdown_locked(resolver);
70
69
  }
71
70
 
72
- void grpc_resolver_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
73
- grpc_resolver* resolver) {
74
- resolver->vtable->channel_saw_error_locked(exec_ctx, resolver);
71
+ void grpc_resolver_channel_saw_error_locked(grpc_resolver* resolver) {
72
+ resolver->vtable->channel_saw_error_locked(resolver);
75
73
  }
76
74
 
77
- void grpc_resolver_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
75
+ void grpc_resolver_next_locked(grpc_resolver* resolver,
78
76
  grpc_channel_args** result,
79
77
  grpc_closure* on_complete) {
80
- resolver->vtable->next_locked(exec_ctx, resolver, result, on_complete);
78
+ resolver->vtable->next_locked(resolver, result, on_complete);
81
79
  }
@@ -22,10 +22,6 @@
22
22
  #include "src/core/ext/filters/client_channel/subchannel.h"
23
23
  #include "src/core/lib/iomgr/iomgr.h"
24
24
 
25
- #ifdef __cplusplus
26
- extern "C" {
27
- #endif
28
-
29
25
  typedef struct grpc_resolver grpc_resolver;
30
26
  typedef struct grpc_resolver_vtable grpc_resolver_vtable;
31
27
 
@@ -39,43 +35,40 @@ struct grpc_resolver {
39
35
  };
40
36
 
41
37
  struct grpc_resolver_vtable {
42
- void (*destroy)(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver);
43
- void (*shutdown_locked)(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver);
44
- void (*channel_saw_error_locked)(grpc_exec_ctx* exec_ctx,
45
- grpc_resolver* resolver);
46
- void (*next_locked)(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
47
- grpc_channel_args** result, grpc_closure* on_complete);
38
+ void (*destroy)(grpc_resolver* resolver);
39
+ void (*shutdown_locked)(grpc_resolver* resolver);
40
+ void (*channel_saw_error_locked)(grpc_resolver* resolver);
41
+ void (*next_locked)(grpc_resolver* resolver, grpc_channel_args** result,
42
+ grpc_closure* on_complete);
48
43
  };
49
44
 
50
45
  #ifndef NDEBUG
51
46
  #define GRPC_RESOLVER_REF(p, r) grpc_resolver_ref((p), __FILE__, __LINE__, (r))
52
- #define GRPC_RESOLVER_UNREF(e, p, r) \
53
- grpc_resolver_unref((e), (p), __FILE__, __LINE__, (r))
47
+ #define GRPC_RESOLVER_UNREF(p, r) \
48
+ grpc_resolver_unref((p), __FILE__, __LINE__, (r))
54
49
  void grpc_resolver_ref(grpc_resolver* policy, const char* file, int line,
55
50
  const char* reason);
56
- void grpc_resolver_unref(grpc_exec_ctx* exec_ctx, grpc_resolver* policy,
57
- const char* file, int line, const char* reason);
51
+ void grpc_resolver_unref(grpc_resolver* policy, const char* file, int line,
52
+ const char* reason);
58
53
  #else
59
54
  #define GRPC_RESOLVER_REF(p, r) grpc_resolver_ref((p))
60
- #define GRPC_RESOLVER_UNREF(e, p, r) grpc_resolver_unref((e), (p))
55
+ #define GRPC_RESOLVER_UNREF(p, r) grpc_resolver_unref((p))
61
56
  void grpc_resolver_ref(grpc_resolver* policy);
62
- void grpc_resolver_unref(grpc_exec_ctx* exec_ctx, grpc_resolver* policy);
57
+ void grpc_resolver_unref(grpc_resolver* policy);
63
58
  #endif
64
59
 
65
60
  void grpc_resolver_init(grpc_resolver* resolver,
66
61
  const grpc_resolver_vtable* vtable,
67
62
  grpc_combiner* combiner);
68
63
 
69
- void grpc_resolver_shutdown_locked(grpc_exec_ctx* exec_ctx,
70
- grpc_resolver* resolver);
64
+ void grpc_resolver_shutdown_locked(grpc_resolver* resolver);
71
65
 
72
66
  /** Notification that the channel has seen an error on some address.
73
67
  Can be used as a hint that re-resolution is desirable soon.
74
68
 
75
69
  Must be called from the combiner passed as a resolver_arg at construction
76
70
  time.*/
77
- void grpc_resolver_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
78
- grpc_resolver* resolver);
71
+ void grpc_resolver_channel_saw_error_locked(grpc_resolver* resolver);
79
72
 
80
73
  /** Get the next result from the resolver. Expected to set \a *result with
81
74
  new channel args and then schedule \a on_complete for execution.
@@ -85,12 +78,8 @@ void grpc_resolver_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
85
78
 
86
79
  Must be called from the combiner passed as a resolver_arg at construction
87
80
  time.*/
88
- void grpc_resolver_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
81
+ void grpc_resolver_next_locked(grpc_resolver* resolver,
89
82
  grpc_channel_args** result,
90
83
  grpc_closure* on_complete);
91
84
 
92
- #ifdef __cplusplus
93
- }
94
- #endif
95
-
96
85
  #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_H */
@@ -34,16 +34,16 @@
34
34
  #include "src/core/ext/filters/client_channel/resolver_registry.h"
35
35
  #include "src/core/lib/backoff/backoff.h"
36
36
  #include "src/core/lib/channel/channel_args.h"
37
+ #include "src/core/lib/gpr++/manual_constructor.h"
38
+ #include "src/core/lib/gpr/env.h"
39
+ #include "src/core/lib/gpr/string.h"
37
40
  #include "src/core/lib/iomgr/combiner.h"
38
41
  #include "src/core/lib/iomgr/gethostname.h"
39
42
  #include "src/core/lib/iomgr/resolve_address.h"
40
43
  #include "src/core/lib/iomgr/timer.h"
41
44
  #include "src/core/lib/json/json.h"
42
- #include "src/core/lib/support/env.h"
43
- #include "src/core/lib/support/string.h"
44
45
  #include "src/core/lib/transport/service_config.h"
45
46
 
46
- #define GRPC_DNS_MIN_CONNECT_TIMEOUT_SECONDS 1
47
47
  #define GRPC_DNS_INITIAL_CONNECT_BACKOFF_SECONDS 1
48
48
  #define GRPC_DNS_RECONNECT_BACKOFF_MULTIPLIER 1.6
49
49
  #define GRPC_DNS_RECONNECT_MAX_BACKOFF_SECONDS 120
@@ -89,7 +89,7 @@ typedef struct {
89
89
  bool have_retry_timer;
90
90
  grpc_timer retry_timer;
91
91
  /** retry backoff state */
92
- grpc_backoff backoff_state;
92
+ grpc_core::ManualConstructor<grpc_core::BackOff> backoff;
93
93
 
94
94
  /** currently resolving addresses */
95
95
  grpc_lb_addresses* lb_addresses;
@@ -97,17 +97,14 @@ typedef struct {
97
97
  char* service_config_json;
98
98
  } ares_dns_resolver;
99
99
 
100
- static void dns_ares_destroy(grpc_exec_ctx* exec_ctx, grpc_resolver* r);
100
+ static void dns_ares_destroy(grpc_resolver* r);
101
101
 
102
- static void dns_ares_start_resolving_locked(grpc_exec_ctx* exec_ctx,
103
- ares_dns_resolver* r);
104
- static void dns_ares_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx,
105
- ares_dns_resolver* r);
102
+ static void dns_ares_start_resolving_locked(ares_dns_resolver* r);
103
+ static void dns_ares_maybe_finish_next_locked(ares_dns_resolver* r);
106
104
 
107
- static void dns_ares_shutdown_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* r);
108
- static void dns_ares_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
109
- grpc_resolver* r);
110
- static void dns_ares_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* r,
105
+ static void dns_ares_shutdown_locked(grpc_resolver* r);
106
+ static void dns_ares_channel_saw_error_locked(grpc_resolver* r);
107
+ static void dns_ares_next_locked(grpc_resolver* r,
111
108
  grpc_channel_args** target_result,
112
109
  grpc_closure* on_complete);
113
110
 
@@ -115,43 +112,39 @@ static const grpc_resolver_vtable dns_ares_resolver_vtable = {
115
112
  dns_ares_destroy, dns_ares_shutdown_locked,
116
113
  dns_ares_channel_saw_error_locked, dns_ares_next_locked};
117
114
 
118
- static void dns_ares_shutdown_locked(grpc_exec_ctx* exec_ctx,
119
- grpc_resolver* resolver) {
115
+ static void dns_ares_shutdown_locked(grpc_resolver* resolver) {
120
116
  ares_dns_resolver* r = (ares_dns_resolver*)resolver;
121
117
  if (r->have_retry_timer) {
122
- grpc_timer_cancel(exec_ctx, &r->retry_timer);
118
+ grpc_timer_cancel(&r->retry_timer);
123
119
  }
124
120
  if (r->pending_request != nullptr) {
125
- grpc_cancel_ares_request(exec_ctx, r->pending_request);
121
+ grpc_cancel_ares_request(r->pending_request);
126
122
  }
127
123
  if (r->next_completion != nullptr) {
128
124
  *r->target_result = nullptr;
129
- GRPC_CLOSURE_SCHED(
130
- exec_ctx, r->next_completion,
131
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("Resolver Shutdown"));
125
+ GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_CREATE_FROM_STATIC_STRING(
126
+ "Resolver Shutdown"));
132
127
  r->next_completion = nullptr;
133
128
  }
134
129
  }
135
130
 
136
- static void dns_ares_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
137
- grpc_resolver* resolver) {
131
+ static void dns_ares_channel_saw_error_locked(grpc_resolver* resolver) {
138
132
  ares_dns_resolver* r = (ares_dns_resolver*)resolver;
139
133
  if (!r->resolving) {
140
- grpc_backoff_reset(&r->backoff_state);
141
- dns_ares_start_resolving_locked(exec_ctx, r);
134
+ r->backoff->Reset();
135
+ dns_ares_start_resolving_locked(r);
142
136
  }
143
137
  }
144
138
 
145
- static void dns_ares_on_retry_timer_locked(grpc_exec_ctx* exec_ctx, void* arg,
146
- grpc_error* error) {
139
+ static void dns_ares_on_retry_timer_locked(void* arg, grpc_error* error) {
147
140
  ares_dns_resolver* r = (ares_dns_resolver*)arg;
148
141
  r->have_retry_timer = false;
149
142
  if (error == GRPC_ERROR_NONE) {
150
143
  if (!r->resolving) {
151
- dns_ares_start_resolving_locked(exec_ctx, r);
144
+ dns_ares_start_resolving_locked(r);
152
145
  }
153
146
  }
154
- GRPC_RESOLVER_UNREF(exec_ctx, &r->base, "retry-timer");
147
+ GRPC_RESOLVER_UNREF(&r->base, "retry-timer");
155
148
  }
156
149
 
157
150
  static bool value_in_json_array(grpc_json* array, const char* value) {
@@ -226,8 +219,7 @@ static char* choose_service_config(char* service_config_choice_json) {
226
219
  return service_config;
227
220
  }
228
221
 
229
- static void dns_ares_on_resolved_locked(grpc_exec_ctx* exec_ctx, void* arg,
230
- grpc_error* error) {
222
+ static void dns_ares_on_resolved_locked(void* arg, grpc_error* error) {
231
223
  ares_dns_resolver* r = (ares_dns_resolver*)arg;
232
224
  grpc_channel_args* result = nullptr;
233
225
  GPR_ASSERT(r->resolving);
@@ -268,13 +260,12 @@ static void dns_ares_on_resolved_locked(grpc_exec_ctx* exec_ctx, void* arg,
268
260
  num_args_to_add);
269
261
  if (service_config != nullptr) grpc_service_config_destroy(service_config);
270
262
  gpr_free(service_config_string);
271
- grpc_lb_addresses_destroy(exec_ctx, r->lb_addresses);
263
+ grpc_lb_addresses_destroy(r->lb_addresses);
272
264
  } else {
273
265
  const char* msg = grpc_error_string(error);
274
266
  gpr_log(GPR_DEBUG, "dns resolution failed: %s", msg);
275
- grpc_millis next_try =
276
- grpc_backoff_step(exec_ctx, &r->backoff_state).next_attempt_start_time;
277
- grpc_millis timeout = next_try - grpc_exec_ctx_now(exec_ctx);
267
+ grpc_millis next_try = r->backoff->NextAttemptTime();
268
+ grpc_millis timeout = next_try - grpc_core::ExecCtx::Get()->Now();
278
269
  gpr_log(GPR_INFO, "dns resolution failed (will retry): %s",
279
270
  grpc_error_string(error));
280
271
  GPR_ASSERT(!r->have_retry_timer);
@@ -285,20 +276,19 @@ static void dns_ares_on_resolved_locked(grpc_exec_ctx* exec_ctx, void* arg,
285
276
  } else {
286
277
  gpr_log(GPR_DEBUG, "retrying immediately");
287
278
  }
288
- grpc_timer_init(exec_ctx, &r->retry_timer, next_try,
279
+ grpc_timer_init(&r->retry_timer, next_try,
289
280
  &r->dns_ares_on_retry_timer_locked);
290
281
  }
291
282
  if (r->resolved_result != nullptr) {
292
- grpc_channel_args_destroy(exec_ctx, r->resolved_result);
283
+ grpc_channel_args_destroy(r->resolved_result);
293
284
  }
294
285
  r->resolved_result = result;
295
286
  r->resolved_version++;
296
- dns_ares_maybe_finish_next_locked(exec_ctx, r);
297
- GRPC_RESOLVER_UNREF(exec_ctx, &r->base, "dns-resolving");
287
+ dns_ares_maybe_finish_next_locked(r);
288
+ GRPC_RESOLVER_UNREF(&r->base, "dns-resolving");
298
289
  }
299
290
 
300
- static void dns_ares_next_locked(grpc_exec_ctx* exec_ctx,
301
- grpc_resolver* resolver,
291
+ static void dns_ares_next_locked(grpc_resolver* resolver,
302
292
  grpc_channel_args** target_result,
303
293
  grpc_closure* on_complete) {
304
294
  gpr_log(GPR_DEBUG, "dns_ares_next is called.");
@@ -307,57 +297,54 @@ static void dns_ares_next_locked(grpc_exec_ctx* exec_ctx,
307
297
  r->next_completion = on_complete;
308
298
  r->target_result = target_result;
309
299
  if (r->resolved_version == 0 && !r->resolving) {
310
- grpc_backoff_reset(&r->backoff_state);
311
- dns_ares_start_resolving_locked(exec_ctx, r);
300
+ r->backoff->Reset();
301
+ dns_ares_start_resolving_locked(r);
312
302
  } else {
313
- dns_ares_maybe_finish_next_locked(exec_ctx, r);
303
+ dns_ares_maybe_finish_next_locked(r);
314
304
  }
315
305
  }
316
306
 
317
- static void dns_ares_start_resolving_locked(grpc_exec_ctx* exec_ctx,
318
- ares_dns_resolver* r) {
307
+ static void dns_ares_start_resolving_locked(ares_dns_resolver* r) {
319
308
  GRPC_RESOLVER_REF(&r->base, "dns-resolving");
320
309
  GPR_ASSERT(!r->resolving);
321
310
  r->resolving = true;
322
311
  r->lb_addresses = nullptr;
323
312
  r->service_config_json = nullptr;
324
313
  r->pending_request = grpc_dns_lookup_ares(
325
- exec_ctx, r->dns_server, r->name_to_resolve, r->default_port,
326
- r->interested_parties, &r->dns_ares_on_resolved_locked, &r->lb_addresses,
314
+ r->dns_server, r->name_to_resolve, r->default_port, r->interested_parties,
315
+ &r->dns_ares_on_resolved_locked, &r->lb_addresses,
327
316
  true /* check_grpclb */,
328
317
  r->request_service_config ? &r->service_config_json : nullptr);
329
318
  }
330
319
 
331
- static void dns_ares_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx,
332
- ares_dns_resolver* r) {
320
+ static void dns_ares_maybe_finish_next_locked(ares_dns_resolver* r) {
333
321
  if (r->next_completion != nullptr &&
334
322
  r->resolved_version != r->published_version) {
335
323
  *r->target_result = r->resolved_result == nullptr
336
324
  ? nullptr
337
325
  : grpc_channel_args_copy(r->resolved_result);
338
326
  gpr_log(GPR_DEBUG, "dns_ares_maybe_finish_next_locked");
339
- GRPC_CLOSURE_SCHED(exec_ctx, r->next_completion, GRPC_ERROR_NONE);
327
+ GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_NONE);
340
328
  r->next_completion = nullptr;
341
329
  r->published_version = r->resolved_version;
342
330
  }
343
331
  }
344
332
 
345
- static void dns_ares_destroy(grpc_exec_ctx* exec_ctx, grpc_resolver* gr) {
333
+ static void dns_ares_destroy(grpc_resolver* gr) {
346
334
  gpr_log(GPR_DEBUG, "dns_ares_destroy");
347
335
  ares_dns_resolver* r = (ares_dns_resolver*)gr;
348
336
  if (r->resolved_result != nullptr) {
349
- grpc_channel_args_destroy(exec_ctx, r->resolved_result);
337
+ grpc_channel_args_destroy(r->resolved_result);
350
338
  }
351
- grpc_pollset_set_destroy(exec_ctx, r->interested_parties);
339
+ grpc_pollset_set_destroy(r->interested_parties);
352
340
  gpr_free(r->dns_server);
353
341
  gpr_free(r->name_to_resolve);
354
342
  gpr_free(r->default_port);
355
- grpc_channel_args_destroy(exec_ctx, r->channel_args);
343
+ grpc_channel_args_destroy(r->channel_args);
356
344
  gpr_free(r);
357
345
  }
358
346
 
359
- static grpc_resolver* dns_ares_create(grpc_exec_ctx* exec_ctx,
360
- grpc_resolver_args* args,
347
+ static grpc_resolver* dns_ares_create(grpc_resolver_args* args,
361
348
  const char* default_port) {
362
349
  /* Get name from args. */
363
350
  const char* path = args->uri->path;
@@ -378,14 +365,15 @@ static grpc_resolver* dns_ares_create(grpc_exec_ctx* exec_ctx,
378
365
  arg, (grpc_integer_options){false, false, true});
379
366
  r->interested_parties = grpc_pollset_set_create();
380
367
  if (args->pollset_set != nullptr) {
381
- grpc_pollset_set_add_pollset_set(exec_ctx, r->interested_parties,
382
- args->pollset_set);
368
+ grpc_pollset_set_add_pollset_set(r->interested_parties, args->pollset_set);
383
369
  }
384
- grpc_backoff_init(
385
- &r->backoff_state, GRPC_DNS_INITIAL_CONNECT_BACKOFF_SECONDS * 1000,
386
- GRPC_DNS_RECONNECT_BACKOFF_MULTIPLIER, GRPC_DNS_RECONNECT_JITTER,
387
- GRPC_DNS_MIN_CONNECT_TIMEOUT_SECONDS * 1000,
388
- GRPC_DNS_RECONNECT_MAX_BACKOFF_SECONDS * 1000);
370
+ grpc_core::BackOff::Options backoff_options;
371
+ backoff_options
372
+ .set_initial_backoff(GRPC_DNS_INITIAL_CONNECT_BACKOFF_SECONDS * 1000)
373
+ .set_multiplier(GRPC_DNS_RECONNECT_BACKOFF_MULTIPLIER)
374
+ .set_jitter(GRPC_DNS_RECONNECT_JITTER)
375
+ .set_max_backoff(GRPC_DNS_RECONNECT_MAX_BACKOFF_SECONDS * 1000);
376
+ r->backoff.Init(grpc_core::BackOff(backoff_options));
389
377
  GRPC_CLOSURE_INIT(&r->dns_ares_on_retry_timer_locked,
390
378
  dns_ares_on_retry_timer_locked, r,
391
379
  grpc_combiner_scheduler(r->base.combiner));
@@ -404,9 +392,8 @@ static void dns_ares_factory_ref(grpc_resolver_factory* factory) {}
404
392
  static void dns_ares_factory_unref(grpc_resolver_factory* factory) {}
405
393
 
406
394
  static grpc_resolver* dns_factory_create_resolver(
407
- grpc_exec_ctx* exec_ctx, grpc_resolver_factory* factory,
408
- grpc_resolver_args* args) {
409
- return dns_ares_create(exec_ctx, args, "https");
395
+ grpc_resolver_factory* factory, grpc_resolver_args* args) {
396
+ return dns_ares_create(args, "https");
410
397
  }
411
398
 
412
399
  static char* dns_ares_factory_get_default_host_name(
@@ -425,7 +412,7 @@ static grpc_resolver_factory* dns_ares_resolver_factory_create() {
425
412
  return &dns_resolver_factory;
426
413
  }
427
414
 
428
- extern "C" void grpc_resolver_dns_ares_init(void) {
415
+ void grpc_resolver_dns_ares_init(void) {
429
416
  char* resolver = gpr_getenv("GRPC_DNS_RESOLVER");
430
417
  /* TODO(zyc): Turn on c-ares based resolver by default after the address
431
418
  sorter and the CNAME support are added. */
@@ -441,7 +428,7 @@ extern "C" void grpc_resolver_dns_ares_init(void) {
441
428
  gpr_free(resolver);
442
429
  }
443
430
 
444
- extern "C" void grpc_resolver_dns_ares_shutdown(void) {
431
+ void grpc_resolver_dns_ares_shutdown(void) {
445
432
  char* resolver = gpr_getenv("GRPC_DNS_RESOLVER");
446
433
  if (resolver != nullptr && gpr_stricmp(resolver, "ares") == 0) {
447
434
  grpc_ares_cleanup();
@@ -451,8 +438,8 @@ extern "C" void grpc_resolver_dns_ares_shutdown(void) {
451
438
 
452
439
  #else /* GRPC_ARES == 1 && !defined(GRPC_UV) */
453
440
 
454
- extern "C" void grpc_resolver_dns_ares_init(void) {}
441
+ void grpc_resolver_dns_ares_init(void) {}
455
442
 
456
- extern "C" void grpc_resolver_dns_ares_shutdown(void) {}
443
+ void grpc_resolver_dns_ares_shutdown(void) {}
457
444
 
458
445
  #endif /* GRPC_ARES == 1 && !defined(GRPC_UV) */