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
@@ -29,13 +29,13 @@
29
29
  #include "src/core/ext/filters/client_channel/resolver_registry.h"
30
30
  #include "src/core/lib/backoff/backoff.h"
31
31
  #include "src/core/lib/channel/channel_args.h"
32
+ #include "src/core/lib/gpr++/manual_constructor.h"
33
+ #include "src/core/lib/gpr/env.h"
34
+ #include "src/core/lib/gpr/string.h"
32
35
  #include "src/core/lib/iomgr/combiner.h"
33
36
  #include "src/core/lib/iomgr/resolve_address.h"
34
37
  #include "src/core/lib/iomgr/timer.h"
35
- #include "src/core/lib/support/env.h"
36
- #include "src/core/lib/support/string.h"
37
38
 
38
- #define GRPC_DNS_MIN_CONNECT_TIMEOUT_SECONDS 1
39
39
  #define GRPC_DNS_INITIAL_CONNECT_BACKOFF_SECONDS 1
40
40
  #define GRPC_DNS_RECONNECT_BACKOFF_MULTIPLIER 1.6
41
41
  #define GRPC_DNS_RECONNECT_MAX_BACKOFF_SECONDS 120
@@ -70,55 +70,48 @@ typedef struct {
70
70
  grpc_timer retry_timer;
71
71
  grpc_closure on_retry;
72
72
  /** retry backoff state */
73
- grpc_backoff backoff_state;
73
+ grpc_core::ManualConstructor<grpc_core::BackOff> backoff;
74
74
 
75
75
  /** currently resolving addresses */
76
76
  grpc_resolved_addresses* addresses;
77
77
  } dns_resolver;
78
78
 
79
- static void dns_destroy(grpc_exec_ctx* exec_ctx, grpc_resolver* r);
79
+ static void dns_destroy(grpc_resolver* r);
80
80
 
81
- static void dns_start_resolving_locked(grpc_exec_ctx* exec_ctx,
82
- dns_resolver* r);
83
- static void dns_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx,
84
- dns_resolver* r);
81
+ static void dns_start_resolving_locked(dns_resolver* r);
82
+ static void dns_maybe_finish_next_locked(dns_resolver* r);
85
83
 
86
- static void dns_shutdown_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* r);
87
- static void dns_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
88
- grpc_resolver* r);
89
- static void dns_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* r,
90
- grpc_channel_args** target_result,
84
+ static void dns_shutdown_locked(grpc_resolver* r);
85
+ static void dns_channel_saw_error_locked(grpc_resolver* r);
86
+ static void dns_next_locked(grpc_resolver* r, grpc_channel_args** target_result,
91
87
  grpc_closure* on_complete);
92
88
 
93
89
  static const grpc_resolver_vtable dns_resolver_vtable = {
94
90
  dns_destroy, dns_shutdown_locked, dns_channel_saw_error_locked,
95
91
  dns_next_locked};
96
92
 
97
- static void dns_shutdown_locked(grpc_exec_ctx* exec_ctx,
98
- grpc_resolver* resolver) {
93
+ static void dns_shutdown_locked(grpc_resolver* resolver) {
99
94
  dns_resolver* r = (dns_resolver*)resolver;
100
95
  if (r->have_retry_timer) {
101
- grpc_timer_cancel(exec_ctx, &r->retry_timer);
96
+ grpc_timer_cancel(&r->retry_timer);
102
97
  }
103
98
  if (r->next_completion != nullptr) {
104
99
  *r->target_result = nullptr;
105
- GRPC_CLOSURE_SCHED(
106
- exec_ctx, r->next_completion,
107
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("Resolver Shutdown"));
100
+ GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_CREATE_FROM_STATIC_STRING(
101
+ "Resolver Shutdown"));
108
102
  r->next_completion = nullptr;
109
103
  }
110
104
  }
111
105
 
112
- static void dns_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
113
- grpc_resolver* resolver) {
106
+ static void dns_channel_saw_error_locked(grpc_resolver* resolver) {
114
107
  dns_resolver* r = (dns_resolver*)resolver;
115
108
  if (!r->resolving) {
116
- grpc_backoff_reset(&r->backoff_state);
117
- dns_start_resolving_locked(exec_ctx, r);
109
+ r->backoff->Reset();
110
+ dns_start_resolving_locked(r);
118
111
  }
119
112
  }
120
113
 
121
- static void dns_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
114
+ static void dns_next_locked(grpc_resolver* resolver,
122
115
  grpc_channel_args** target_result,
123
116
  grpc_closure* on_complete) {
124
117
  dns_resolver* r = (dns_resolver*)resolver;
@@ -126,29 +119,27 @@ static void dns_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
126
119
  r->next_completion = on_complete;
127
120
  r->target_result = target_result;
128
121
  if (r->resolved_version == 0 && !r->resolving) {
129
- grpc_backoff_reset(&r->backoff_state);
130
- dns_start_resolving_locked(exec_ctx, r);
122
+ r->backoff->Reset();
123
+ dns_start_resolving_locked(r);
131
124
  } else {
132
- dns_maybe_finish_next_locked(exec_ctx, r);
125
+ dns_maybe_finish_next_locked(r);
133
126
  }
134
127
  }
135
128
 
136
- static void dns_on_retry_timer_locked(grpc_exec_ctx* exec_ctx, void* arg,
137
- grpc_error* error) {
129
+ static void dns_on_retry_timer_locked(void* arg, grpc_error* error) {
138
130
  dns_resolver* r = (dns_resolver*)arg;
139
131
 
140
132
  r->have_retry_timer = false;
141
133
  if (error == GRPC_ERROR_NONE) {
142
134
  if (!r->resolving) {
143
- dns_start_resolving_locked(exec_ctx, r);
135
+ dns_start_resolving_locked(r);
144
136
  }
145
137
  }
146
138
 
147
- GRPC_RESOLVER_UNREF(exec_ctx, &r->base, "retry-timer");
139
+ GRPC_RESOLVER_UNREF(&r->base, "retry-timer");
148
140
  }
149
141
 
150
- static void dns_on_resolved_locked(grpc_exec_ctx* exec_ctx, void* arg,
151
- grpc_error* error) {
142
+ static void dns_on_resolved_locked(void* arg, grpc_error* error) {
152
143
  dns_resolver* r = (dns_resolver*)arg;
153
144
  grpc_channel_args* result = nullptr;
154
145
  GPR_ASSERT(r->resolving);
@@ -168,11 +159,10 @@ static void dns_on_resolved_locked(grpc_exec_ctx* exec_ctx, void* arg,
168
159
  grpc_arg new_arg = grpc_lb_addresses_create_channel_arg(addresses);
169
160
  result = grpc_channel_args_copy_and_add(r->channel_args, &new_arg, 1);
170
161
  grpc_resolved_addresses_destroy(r->addresses);
171
- grpc_lb_addresses_destroy(exec_ctx, addresses);
162
+ grpc_lb_addresses_destroy(addresses);
172
163
  } else {
173
- grpc_millis next_try =
174
- grpc_backoff_step(exec_ctx, &r->backoff_state).next_attempt_start_time;
175
- grpc_millis timeout = next_try - grpc_exec_ctx_now(exec_ctx);
164
+ grpc_millis next_try = r->backoff->NextAttemptTime();
165
+ grpc_millis timeout = next_try - grpc_core::ExecCtx::Get()->Now();
176
166
  gpr_log(GPR_INFO, "dns resolution failed (will retry): %s",
177
167
  grpc_error_string(error));
178
168
  GPR_ASSERT(!r->have_retry_timer);
@@ -185,59 +175,56 @@ static void dns_on_resolved_locked(grpc_exec_ctx* exec_ctx, void* arg,
185
175
  }
186
176
  GRPC_CLOSURE_INIT(&r->on_retry, dns_on_retry_timer_locked, r,
187
177
  grpc_combiner_scheduler(r->base.combiner));
188
- grpc_timer_init(exec_ctx, &r->retry_timer, next_try, &r->on_retry);
178
+ grpc_timer_init(&r->retry_timer, next_try, &r->on_retry);
189
179
  }
190
180
  if (r->resolved_result != nullptr) {
191
- grpc_channel_args_destroy(exec_ctx, r->resolved_result);
181
+ grpc_channel_args_destroy(r->resolved_result);
192
182
  }
193
183
  r->resolved_result = result;
194
184
  r->resolved_version++;
195
- dns_maybe_finish_next_locked(exec_ctx, r);
185
+ dns_maybe_finish_next_locked(r);
196
186
  GRPC_ERROR_UNREF(error);
197
187
 
198
- GRPC_RESOLVER_UNREF(exec_ctx, &r->base, "dns-resolving");
188
+ GRPC_RESOLVER_UNREF(&r->base, "dns-resolving");
199
189
  }
200
190
 
201
- static void dns_start_resolving_locked(grpc_exec_ctx* exec_ctx,
202
- dns_resolver* r) {
191
+ static void dns_start_resolving_locked(dns_resolver* r) {
203
192
  GRPC_RESOLVER_REF(&r->base, "dns-resolving");
204
193
  GPR_ASSERT(!r->resolving);
205
194
  r->resolving = true;
206
195
  r->addresses = nullptr;
207
196
  grpc_resolve_address(
208
- exec_ctx, r->name_to_resolve, r->default_port, r->interested_parties,
197
+ r->name_to_resolve, r->default_port, r->interested_parties,
209
198
  GRPC_CLOSURE_CREATE(dns_on_resolved_locked, r,
210
199
  grpc_combiner_scheduler(r->base.combiner)),
211
200
  &r->addresses);
212
201
  }
213
202
 
214
- static void dns_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx,
215
- dns_resolver* r) {
203
+ static void dns_maybe_finish_next_locked(dns_resolver* r) {
216
204
  if (r->next_completion != nullptr &&
217
205
  r->resolved_version != r->published_version) {
218
206
  *r->target_result = r->resolved_result == nullptr
219
207
  ? nullptr
220
208
  : grpc_channel_args_copy(r->resolved_result);
221
- GRPC_CLOSURE_SCHED(exec_ctx, r->next_completion, GRPC_ERROR_NONE);
209
+ GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_NONE);
222
210
  r->next_completion = nullptr;
223
211
  r->published_version = r->resolved_version;
224
212
  }
225
213
  }
226
214
 
227
- static void dns_destroy(grpc_exec_ctx* exec_ctx, grpc_resolver* gr) {
215
+ static void dns_destroy(grpc_resolver* gr) {
228
216
  dns_resolver* r = (dns_resolver*)gr;
229
217
  if (r->resolved_result != nullptr) {
230
- grpc_channel_args_destroy(exec_ctx, r->resolved_result);
218
+ grpc_channel_args_destroy(r->resolved_result);
231
219
  }
232
- grpc_pollset_set_destroy(exec_ctx, r->interested_parties);
220
+ grpc_pollset_set_destroy(r->interested_parties);
233
221
  gpr_free(r->name_to_resolve);
234
222
  gpr_free(r->default_port);
235
- grpc_channel_args_destroy(exec_ctx, r->channel_args);
223
+ grpc_channel_args_destroy(r->channel_args);
236
224
  gpr_free(r);
237
225
  }
238
226
 
239
- static grpc_resolver* dns_create(grpc_exec_ctx* exec_ctx,
240
- grpc_resolver_args* args,
227
+ static grpc_resolver* dns_create(grpc_resolver_args* args,
241
228
  const char* default_port) {
242
229
  if (0 != strcmp(args->uri->authority, "")) {
243
230
  gpr_log(GPR_ERROR, "authority based dns uri's not supported");
@@ -254,14 +241,15 @@ static grpc_resolver* dns_create(grpc_exec_ctx* exec_ctx,
254
241
  r->channel_args = grpc_channel_args_copy(args->args);
255
242
  r->interested_parties = grpc_pollset_set_create();
256
243
  if (args->pollset_set != nullptr) {
257
- grpc_pollset_set_add_pollset_set(exec_ctx, r->interested_parties,
258
- args->pollset_set);
244
+ grpc_pollset_set_add_pollset_set(r->interested_parties, args->pollset_set);
259
245
  }
260
- grpc_backoff_init(
261
- &r->backoff_state, GRPC_DNS_INITIAL_CONNECT_BACKOFF_SECONDS * 1000,
262
- GRPC_DNS_RECONNECT_BACKOFF_MULTIPLIER, GRPC_DNS_RECONNECT_JITTER,
263
- GRPC_DNS_MIN_CONNECT_TIMEOUT_SECONDS * 1000,
264
- GRPC_DNS_RECONNECT_MAX_BACKOFF_SECONDS * 1000);
246
+ grpc_core::BackOff::Options backoff_options;
247
+ backoff_options
248
+ .set_initial_backoff(GRPC_DNS_INITIAL_CONNECT_BACKOFF_SECONDS * 1000)
249
+ .set_multiplier(GRPC_DNS_RECONNECT_BACKOFF_MULTIPLIER)
250
+ .set_jitter(GRPC_DNS_RECONNECT_JITTER)
251
+ .set_max_backoff(GRPC_DNS_RECONNECT_MAX_BACKOFF_SECONDS * 1000);
252
+ r->backoff.Init(grpc_core::BackOff(backoff_options));
265
253
  return &r->base;
266
254
  }
267
255
 
@@ -274,9 +262,8 @@ static void dns_factory_ref(grpc_resolver_factory* factory) {}
274
262
  static void dns_factory_unref(grpc_resolver_factory* factory) {}
275
263
 
276
264
  static grpc_resolver* dns_factory_create_resolver(
277
- grpc_exec_ctx* exec_ctx, grpc_resolver_factory* factory,
278
- grpc_resolver_args* args) {
279
- return dns_create(exec_ctx, args, "https");
265
+ grpc_resolver_factory* factory, grpc_resolver_args* args) {
266
+ return dns_create(args, "https");
280
267
  }
281
268
 
282
269
  static char* dns_factory_get_default_host_name(grpc_resolver_factory* factory,
@@ -295,7 +282,7 @@ static grpc_resolver_factory* dns_resolver_factory_create() {
295
282
  return &dns_resolver_factory;
296
283
  }
297
284
 
298
- extern "C" void grpc_resolver_dns_native_init(void) {
285
+ void grpc_resolver_dns_native_init(void) {
299
286
  char* resolver = gpr_getenv("GRPC_DNS_RESOLVER");
300
287
  if (resolver != nullptr && gpr_stricmp(resolver, "native") == 0) {
301
288
  gpr_log(GPR_DEBUG, "Using native dns resolver");
@@ -313,4 +300,4 @@ extern "C" void grpc_resolver_dns_native_init(void) {
313
300
  gpr_free(resolver);
314
301
  }
315
302
 
316
- extern "C" void grpc_resolver_dns_native_shutdown(void) {}
303
+ void grpc_resolver_dns_native_shutdown(void) {}
@@ -32,13 +32,13 @@
32
32
  #include "src/core/ext/filters/client_channel/parse_address.h"
33
33
  #include "src/core/ext/filters/client_channel/resolver_registry.h"
34
34
  #include "src/core/lib/channel/channel_args.h"
35
+ #include "src/core/lib/gpr/string.h"
35
36
  #include "src/core/lib/iomgr/closure.h"
36
37
  #include "src/core/lib/iomgr/combiner.h"
37
38
  #include "src/core/lib/iomgr/resolve_address.h"
38
39
  #include "src/core/lib/iomgr/unix_sockets_posix.h"
39
40
  #include "src/core/lib/slice/slice_internal.h"
40
41
  #include "src/core/lib/slice/slice_string_helpers.h"
41
- #include "src/core/lib/support/string.h"
42
42
 
43
43
  #include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h"
44
44
 
@@ -67,57 +67,52 @@ typedef struct {
67
67
  grpc_channel_args** target_result;
68
68
  } fake_resolver;
69
69
 
70
- static void fake_resolver_destroy(grpc_exec_ctx* exec_ctx, grpc_resolver* gr) {
70
+ static void fake_resolver_destroy(grpc_resolver* gr) {
71
71
  fake_resolver* r = (fake_resolver*)gr;
72
- grpc_channel_args_destroy(exec_ctx, r->next_results);
73
- grpc_channel_args_destroy(exec_ctx, r->results_upon_error);
74
- grpc_channel_args_destroy(exec_ctx, r->channel_args);
72
+ grpc_channel_args_destroy(r->next_results);
73
+ grpc_channel_args_destroy(r->results_upon_error);
74
+ grpc_channel_args_destroy(r->channel_args);
75
75
  gpr_free(r);
76
76
  }
77
77
 
78
- static void fake_resolver_shutdown_locked(grpc_exec_ctx* exec_ctx,
79
- grpc_resolver* resolver) {
78
+ static void fake_resolver_shutdown_locked(grpc_resolver* resolver) {
80
79
  fake_resolver* r = (fake_resolver*)resolver;
81
80
  if (r->next_completion != nullptr) {
82
81
  *r->target_result = nullptr;
83
- GRPC_CLOSURE_SCHED(
84
- exec_ctx, r->next_completion,
85
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("Resolver Shutdown"));
82
+ GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_CREATE_FROM_STATIC_STRING(
83
+ "Resolver Shutdown"));
86
84
  r->next_completion = nullptr;
87
85
  }
88
86
  }
89
87
 
90
- static void fake_resolver_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx,
91
- fake_resolver* r) {
88
+ static void fake_resolver_maybe_finish_next_locked(fake_resolver* r) {
92
89
  if (r->next_completion != nullptr && r->next_results != nullptr) {
93
90
  *r->target_result =
94
91
  grpc_channel_args_union(r->next_results, r->channel_args);
95
- grpc_channel_args_destroy(exec_ctx, r->next_results);
92
+ grpc_channel_args_destroy(r->next_results);
96
93
  r->next_results = nullptr;
97
- GRPC_CLOSURE_SCHED(exec_ctx, r->next_completion, GRPC_ERROR_NONE);
94
+ GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_NONE);
98
95
  r->next_completion = nullptr;
99
96
  }
100
97
  }
101
98
 
102
- static void fake_resolver_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
103
- grpc_resolver* resolver) {
99
+ static void fake_resolver_channel_saw_error_locked(grpc_resolver* resolver) {
104
100
  fake_resolver* r = (fake_resolver*)resolver;
105
101
  if (r->next_results == nullptr && r->results_upon_error != nullptr) {
106
102
  // Pretend we re-resolved.
107
103
  r->next_results = grpc_channel_args_copy(r->results_upon_error);
108
104
  }
109
- fake_resolver_maybe_finish_next_locked(exec_ctx, r);
105
+ fake_resolver_maybe_finish_next_locked(r);
110
106
  }
111
107
 
112
- static void fake_resolver_next_locked(grpc_exec_ctx* exec_ctx,
113
- grpc_resolver* resolver,
108
+ static void fake_resolver_next_locked(grpc_resolver* resolver,
114
109
  grpc_channel_args** target_result,
115
110
  grpc_closure* on_complete) {
116
111
  fake_resolver* r = (fake_resolver*)resolver;
117
112
  GPR_ASSERT(!r->next_completion);
118
113
  r->next_completion = on_complete;
119
114
  r->target_result = target_result;
120
- fake_resolver_maybe_finish_next_locked(exec_ctx, r);
115
+ fake_resolver_maybe_finish_next_locked(r);
121
116
  }
122
117
 
123
118
  static const grpc_resolver_vtable fake_resolver_vtable = {
@@ -157,33 +152,31 @@ typedef struct set_response_closure_arg {
157
152
  grpc_channel_args* next_response;
158
153
  } set_response_closure_arg;
159
154
 
160
- static void set_response_closure_fn(grpc_exec_ctx* exec_ctx, void* arg,
161
- grpc_error* error) {
155
+ static void set_response_closure_fn(void* arg, grpc_error* error) {
162
156
  set_response_closure_arg* closure_arg = (set_response_closure_arg*)arg;
163
157
  grpc_fake_resolver_response_generator* generator = closure_arg->generator;
164
158
  fake_resolver* r = generator->resolver;
165
159
  if (r->next_results != nullptr) {
166
- grpc_channel_args_destroy(exec_ctx, r->next_results);
160
+ grpc_channel_args_destroy(r->next_results);
167
161
  }
168
162
  r->next_results = closure_arg->next_response;
169
163
  if (r->results_upon_error != nullptr) {
170
- grpc_channel_args_destroy(exec_ctx, r->results_upon_error);
164
+ grpc_channel_args_destroy(r->results_upon_error);
171
165
  }
172
166
  r->results_upon_error = grpc_channel_args_copy(closure_arg->next_response);
173
167
  gpr_free(closure_arg);
174
- fake_resolver_maybe_finish_next_locked(exec_ctx, r);
168
+ fake_resolver_maybe_finish_next_locked(r);
175
169
  }
176
170
 
177
171
  void grpc_fake_resolver_response_generator_set_response(
178
- grpc_exec_ctx* exec_ctx, grpc_fake_resolver_response_generator* generator,
172
+ grpc_fake_resolver_response_generator* generator,
179
173
  grpc_channel_args* next_response) {
180
174
  GPR_ASSERT(generator->resolver != nullptr);
181
175
  set_response_closure_arg* closure_arg =
182
176
  (set_response_closure_arg*)gpr_zalloc(sizeof(*closure_arg));
183
177
  closure_arg->generator = generator;
184
178
  closure_arg->next_response = grpc_channel_args_copy(next_response);
185
- GRPC_CLOSURE_SCHED(exec_ctx,
186
- GRPC_CLOSURE_INIT(&closure_arg->set_response_closure,
179
+ GRPC_CLOSURE_SCHED(GRPC_CLOSURE_INIT(&closure_arg->set_response_closure,
187
180
  set_response_closure_fn, closure_arg,
188
181
  grpc_combiner_scheduler(
189
182
  generator->resolver->base.combiner)),
@@ -195,7 +188,7 @@ static void* response_generator_arg_copy(void* p) {
195
188
  (grpc_fake_resolver_response_generator*)p);
196
189
  }
197
190
 
198
- static void response_generator_arg_destroy(grpc_exec_ctx* exec_ctx, void* p) {
191
+ static void response_generator_arg_destroy(void* p) {
199
192
  grpc_fake_resolver_response_generator_unref(
200
193
  (grpc_fake_resolver_response_generator*)p);
201
194
  }
@@ -232,8 +225,7 @@ static void fake_resolver_factory_ref(grpc_resolver_factory* factory) {}
232
225
 
233
226
  static void fake_resolver_factory_unref(grpc_resolver_factory* factory) {}
234
227
 
235
- static grpc_resolver* fake_resolver_create(grpc_exec_ctx* exec_ctx,
236
- grpc_resolver_factory* factory,
228
+ static grpc_resolver* fake_resolver_create(grpc_resolver_factory* factory,
237
229
  grpc_resolver_args* args) {
238
230
  fake_resolver* r = (fake_resolver*)gpr_zalloc(sizeof(*r));
239
231
  r->channel_args = grpc_channel_args_copy(args->args);
@@ -258,8 +250,8 @@ static const grpc_resolver_factory_vtable fake_resolver_factory_vtable = {
258
250
  static grpc_resolver_factory fake_resolver_factory = {
259
251
  &fake_resolver_factory_vtable};
260
252
 
261
- extern "C" void grpc_resolver_fake_init(void) {
253
+ void grpc_resolver_fake_init(void) {
262
254
  grpc_register_resolver_type(&fake_resolver_factory);
263
255
  }
264
256
 
265
- extern "C" void grpc_resolver_fake_shutdown(void) {}
257
+ void grpc_resolver_fake_shutdown(void) {}
@@ -21,10 +21,6 @@
21
21
  #include "src/core/ext/filters/client_channel/uri_parser.h"
22
22
  #include "src/core/lib/channel/channel_args.h"
23
23
 
24
- #ifdef __cplusplus
25
- extern "C" {
26
- #endif
27
-
28
24
  #define GRPC_ARG_FAKE_RESOLVER_RESPONSE_GENERATOR \
29
25
  "grpc.fake_resolver.response_generator"
30
26
 
@@ -43,7 +39,7 @@ grpc_fake_resolver_response_generator_create();
43
39
  // Instruct the fake resolver associated with the \a response_generator instance
44
40
  // to trigger a new resolution for \a uri and \a args.
45
41
  void grpc_fake_resolver_response_generator_set_response(
46
- grpc_exec_ctx* exec_ctx, grpc_fake_resolver_response_generator* generator,
42
+ grpc_fake_resolver_response_generator* generator,
47
43
  grpc_channel_args* next_response);
48
44
 
49
45
  // Return a \a grpc_arg for a \a grpc_fake_resolver_response_generator instance.
@@ -60,9 +56,5 @@ grpc_fake_resolver_response_generator_ref(
60
56
  void grpc_fake_resolver_response_generator_unref(
61
57
  grpc_fake_resolver_response_generator* generator);
62
58
 
63
- #ifdef __cplusplus
64
- }
65
- #endif
66
-
67
59
  #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_FAKE_FAKE_RESOLVER_H \
68
60
  */
@@ -30,12 +30,12 @@
30
30
  #include "src/core/ext/filters/client_channel/parse_address.h"
31
31
  #include "src/core/ext/filters/client_channel/resolver_registry.h"
32
32
  #include "src/core/lib/channel/channel_args.h"
33
+ #include "src/core/lib/gpr/string.h"
33
34
  #include "src/core/lib/iomgr/combiner.h"
34
35
  #include "src/core/lib/iomgr/resolve_address.h"
35
36
  #include "src/core/lib/iomgr/unix_sockets_posix.h"
36
37
  #include "src/core/lib/slice/slice_internal.h"
37
38
  #include "src/core/lib/slice/slice_string_helpers.h"
38
- #include "src/core/lib/support/string.h"
39
39
 
40
40
  typedef struct {
41
41
  /** base class: must be first */
@@ -52,15 +52,13 @@ typedef struct {
52
52
  grpc_channel_args** target_result;
53
53
  } sockaddr_resolver;
54
54
 
55
- static void sockaddr_destroy(grpc_exec_ctx* exec_ctx, grpc_resolver* r);
55
+ static void sockaddr_destroy(grpc_resolver* r);
56
56
 
57
- static void sockaddr_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx,
58
- sockaddr_resolver* r);
57
+ static void sockaddr_maybe_finish_next_locked(sockaddr_resolver* r);
59
58
 
60
- static void sockaddr_shutdown_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* r);
61
- static void sockaddr_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
62
- grpc_resolver* r);
63
- static void sockaddr_next_locked(grpc_exec_ctx* exec_ctx, grpc_resolver* r,
59
+ static void sockaddr_shutdown_locked(grpc_resolver* r);
60
+ static void sockaddr_channel_saw_error_locked(grpc_resolver* r);
61
+ static void sockaddr_next_locked(grpc_resolver* r,
64
62
  grpc_channel_args** target_result,
65
63
  grpc_closure* on_complete);
66
64
 
@@ -68,52 +66,47 @@ static const grpc_resolver_vtable sockaddr_resolver_vtable = {
68
66
  sockaddr_destroy, sockaddr_shutdown_locked,
69
67
  sockaddr_channel_saw_error_locked, sockaddr_next_locked};
70
68
 
71
- static void sockaddr_shutdown_locked(grpc_exec_ctx* exec_ctx,
72
- grpc_resolver* resolver) {
69
+ static void sockaddr_shutdown_locked(grpc_resolver* resolver) {
73
70
  sockaddr_resolver* r = (sockaddr_resolver*)resolver;
74
71
  if (r->next_completion != nullptr) {
75
72
  *r->target_result = nullptr;
76
- GRPC_CLOSURE_SCHED(
77
- exec_ctx, r->next_completion,
78
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("Resolver Shutdown"));
73
+ GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_CREATE_FROM_STATIC_STRING(
74
+ "Resolver Shutdown"));
79
75
  r->next_completion = nullptr;
80
76
  }
81
77
  }
82
78
 
83
- static void sockaddr_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
84
- grpc_resolver* resolver) {
79
+ static void sockaddr_channel_saw_error_locked(grpc_resolver* resolver) {
85
80
  sockaddr_resolver* r = (sockaddr_resolver*)resolver;
86
81
  r->published = false;
87
- sockaddr_maybe_finish_next_locked(exec_ctx, r);
82
+ sockaddr_maybe_finish_next_locked(r);
88
83
  }
89
84
 
90
- static void sockaddr_next_locked(grpc_exec_ctx* exec_ctx,
91
- grpc_resolver* resolver,
85
+ static void sockaddr_next_locked(grpc_resolver* resolver,
92
86
  grpc_channel_args** target_result,
93
87
  grpc_closure* on_complete) {
94
88
  sockaddr_resolver* r = (sockaddr_resolver*)resolver;
95
89
  GPR_ASSERT(!r->next_completion);
96
90
  r->next_completion = on_complete;
97
91
  r->target_result = target_result;
98
- sockaddr_maybe_finish_next_locked(exec_ctx, r);
92
+ sockaddr_maybe_finish_next_locked(r);
99
93
  }
100
94
 
101
- static void sockaddr_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx,
102
- sockaddr_resolver* r) {
95
+ static void sockaddr_maybe_finish_next_locked(sockaddr_resolver* r) {
103
96
  if (r->next_completion != nullptr && !r->published) {
104
97
  r->published = true;
105
98
  grpc_arg arg = grpc_lb_addresses_create_channel_arg(r->addresses);
106
99
  *r->target_result =
107
100
  grpc_channel_args_copy_and_add(r->channel_args, &arg, 1);
108
- GRPC_CLOSURE_SCHED(exec_ctx, r->next_completion, GRPC_ERROR_NONE);
101
+ GRPC_CLOSURE_SCHED(r->next_completion, GRPC_ERROR_NONE);
109
102
  r->next_completion = nullptr;
110
103
  }
111
104
  }
112
105
 
113
- static void sockaddr_destroy(grpc_exec_ctx* exec_ctx, grpc_resolver* gr) {
106
+ static void sockaddr_destroy(grpc_resolver* gr) {
114
107
  sockaddr_resolver* r = (sockaddr_resolver*)gr;
115
- grpc_lb_addresses_destroy(exec_ctx, r->addresses);
116
- grpc_channel_args_destroy(exec_ctx, r->channel_args);
108
+ grpc_lb_addresses_destroy(r->addresses);
109
+ grpc_channel_args_destroy(r->channel_args);
117
110
  gpr_free(r);
118
111
  }
119
112
 
@@ -142,8 +135,7 @@ char* unix_get_default_authority(grpc_resolver_factory* factory,
142
135
 
143
136
  static void do_nothing(void* ignored) {}
144
137
 
145
- static grpc_resolver* sockaddr_create(grpc_exec_ctx* exec_ctx,
146
- grpc_resolver_args* args,
138
+ static grpc_resolver* sockaddr_create(grpc_resolver_args* args,
147
139
  bool parse(const grpc_uri* uri,
148
140
  grpc_resolved_address* dst)) {
149
141
  if (0 != strcmp(args->uri->authority, "")) {
@@ -170,10 +162,10 @@ static grpc_resolver* sockaddr_create(grpc_exec_ctx* exec_ctx,
170
162
  gpr_free(part_str);
171
163
  if (errors_found) break;
172
164
  }
173
- grpc_slice_buffer_destroy_internal(exec_ctx, &path_parts);
174
- grpc_slice_unref_internal(exec_ctx, path_slice);
165
+ grpc_slice_buffer_destroy_internal(&path_parts);
166
+ grpc_slice_unref_internal(path_slice);
175
167
  if (errors_found) {
176
- grpc_lb_addresses_destroy(exec_ctx, addresses);
168
+ grpc_lb_addresses_destroy(addresses);
177
169
  return nullptr;
178
170
  }
179
171
  /* Instantiate resolver. */
@@ -195,9 +187,8 @@ static void sockaddr_factory_unref(grpc_resolver_factory* factory) {}
195
187
 
196
188
  #define DECL_FACTORY(name) \
197
189
  static grpc_resolver* name##_factory_create_resolver( \
198
- grpc_exec_ctx* exec_ctx, grpc_resolver_factory* factory, \
199
- grpc_resolver_args* args) { \
200
- return sockaddr_create(exec_ctx, args, grpc_parse_##name); \
190
+ grpc_resolver_factory* factory, grpc_resolver_args* args) { \
191
+ return sockaddr_create(args, grpc_parse_##name); \
201
192
  } \
202
193
  static const grpc_resolver_factory_vtable name##_factory_vtable = { \
203
194
  sockaddr_factory_ref, sockaddr_factory_unref, \
@@ -211,7 +202,7 @@ DECL_FACTORY(unix);
211
202
  DECL_FACTORY(ipv4);
212
203
  DECL_FACTORY(ipv6);
213
204
 
214
- extern "C" void grpc_resolver_sockaddr_init(void) {
205
+ void grpc_resolver_sockaddr_init(void) {
215
206
  grpc_register_resolver_type(&ipv4_resolver_factory);
216
207
  grpc_register_resolver_type(&ipv6_resolver_factory);
217
208
  #ifdef GRPC_HAVE_UNIX_SOCKET
@@ -219,4 +210,4 @@ extern "C" void grpc_resolver_sockaddr_init(void) {
219
210
  #endif
220
211
  }
221
212
 
222
- extern "C" void grpc_resolver_sockaddr_shutdown(void) {}
213
+ void grpc_resolver_sockaddr_shutdown(void) {}