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
@@ -41,10 +41,10 @@ static void client_channel_factory_ref(
41
41
  grpc_client_channel_factory* cc_factory) {}
42
42
 
43
43
  static void client_channel_factory_unref(
44
- grpc_exec_ctx* exec_ctx, grpc_client_channel_factory* cc_factory) {}
44
+ grpc_client_channel_factory* cc_factory) {}
45
45
 
46
46
  static grpc_subchannel_args* get_secure_naming_subchannel_args(
47
- grpc_exec_ctx* exec_ctx, const grpc_subchannel_args* args) {
47
+ const grpc_subchannel_args* args) {
48
48
  grpc_channel_credentials* channel_credentials =
49
49
  grpc_channel_credentials_find_in_args(args->args);
50
50
  if (channel_credentials == nullptr) {
@@ -68,7 +68,7 @@ static grpc_subchannel_args* get_secure_naming_subchannel_args(
68
68
  const char* server_uri_str = server_uri_arg->value.string;
69
69
  GPR_ASSERT(server_uri_str != nullptr);
70
70
  grpc_uri* server_uri =
71
- grpc_uri_parse(exec_ctx, server_uri_str, true /* supress errors */);
71
+ grpc_uri_parse(server_uri_str, true /* supress errors */);
72
72
  GPR_ASSERT(server_uri != nullptr);
73
73
  const char* server_uri_path;
74
74
  server_uri_path =
@@ -81,7 +81,7 @@ static grpc_subchannel_args* get_secure_naming_subchannel_args(
81
81
  const char* target_uri_str =
82
82
  grpc_get_subchannel_address_uri_arg(args->args);
83
83
  grpc_uri* target_uri =
84
- grpc_uri_parse(exec_ctx, target_uri_str, false /* suppress errors */);
84
+ grpc_uri_parse(target_uri_str, false /* suppress errors */);
85
85
  GPR_ASSERT(target_uri != nullptr);
86
86
  if (target_uri->path[0] != '\0') { // "path" may be empty
87
87
  const grpc_slice key = grpc_slice_from_static_string(
@@ -89,7 +89,7 @@ static grpc_subchannel_args* get_secure_naming_subchannel_args(
89
89
  const char* value =
90
90
  (const char*)grpc_slice_hash_table_get(targets_info, key);
91
91
  if (value != nullptr) target_name_to_check = gpr_strdup(value);
92
- grpc_slice_unref_internal(exec_ctx, key);
92
+ grpc_slice_unref_internal(key);
93
93
  }
94
94
  if (target_name_to_check == nullptr) {
95
95
  // If the target name to check hasn't already been set, fall back to using
@@ -107,7 +107,7 @@ static grpc_subchannel_args* get_secure_naming_subchannel_args(
107
107
  grpc_channel_args* new_args_from_connector = nullptr;
108
108
  const grpc_security_status security_status =
109
109
  grpc_channel_credentials_create_security_connector(
110
- exec_ctx, channel_credentials, target_name_to_check, args->args,
110
+ channel_credentials, target_name_to_check, args->args,
111
111
  &subchannel_security_connector, &new_args_from_connector);
112
112
  if (security_status != GRPC_SECURITY_OK) {
113
113
  gpr_log(GPR_ERROR,
@@ -123,10 +123,10 @@ static grpc_subchannel_args* get_secure_naming_subchannel_args(
123
123
  grpc_channel_args* new_args = grpc_channel_args_copy_and_add(
124
124
  new_args_from_connector != nullptr ? new_args_from_connector : args->args,
125
125
  &new_security_connector_arg, 1);
126
- GRPC_SECURITY_CONNECTOR_UNREF(exec_ctx, &subchannel_security_connector->base,
126
+ GRPC_SECURITY_CONNECTOR_UNREF(&subchannel_security_connector->base,
127
127
  "lb_channel_create");
128
128
  if (new_args_from_connector != nullptr) {
129
- grpc_channel_args_destroy(exec_ctx, new_args_from_connector);
129
+ grpc_channel_args_destroy(new_args_from_connector);
130
130
  }
131
131
  grpc_subchannel_args* final_sc_args =
132
132
  (grpc_subchannel_args*)gpr_malloc(sizeof(*final_sc_args));
@@ -136,10 +136,9 @@ static grpc_subchannel_args* get_secure_naming_subchannel_args(
136
136
  }
137
137
 
138
138
  static grpc_subchannel* client_channel_factory_create_subchannel(
139
- grpc_exec_ctx* exec_ctx, grpc_client_channel_factory* cc_factory,
140
- const grpc_subchannel_args* args) {
139
+ grpc_client_channel_factory* cc_factory, const grpc_subchannel_args* args) {
141
140
  grpc_subchannel_args* subchannel_args =
142
- get_secure_naming_subchannel_args(exec_ctx, args);
141
+ get_secure_naming_subchannel_args(args);
143
142
  if (subchannel_args == nullptr) {
144
143
  gpr_log(
145
144
  GPR_ERROR,
@@ -147,19 +146,16 @@ static grpc_subchannel* client_channel_factory_create_subchannel(
147
146
  return nullptr;
148
147
  }
149
148
  grpc_connector* connector = grpc_chttp2_connector_create();
150
- grpc_subchannel* s =
151
- grpc_subchannel_create(exec_ctx, connector, subchannel_args);
152
- grpc_connector_unref(exec_ctx, connector);
153
- grpc_channel_args_destroy(exec_ctx,
154
- (grpc_channel_args*)subchannel_args->args);
149
+ grpc_subchannel* s = grpc_subchannel_create(connector, subchannel_args);
150
+ grpc_connector_unref(connector);
151
+ grpc_channel_args_destroy((grpc_channel_args*)subchannel_args->args);
155
152
  gpr_free(subchannel_args);
156
153
  return s;
157
154
  }
158
155
 
159
156
  static grpc_channel* client_channel_factory_create_channel(
160
- grpc_exec_ctx* exec_ctx, grpc_client_channel_factory* cc_factory,
161
- const char* target, grpc_client_channel_type type,
162
- const grpc_channel_args* args) {
157
+ grpc_client_channel_factory* cc_factory, const char* target,
158
+ grpc_client_channel_type type, const grpc_channel_args* args) {
163
159
  if (target == nullptr) {
164
160
  gpr_log(GPR_ERROR, "cannot create channel with NULL target name");
165
161
  return nullptr;
@@ -167,14 +163,14 @@ static grpc_channel* client_channel_factory_create_channel(
167
163
  // Add channel arg containing the server URI.
168
164
  grpc_arg arg = grpc_channel_arg_string_create(
169
165
  (char*)GRPC_ARG_SERVER_URI,
170
- grpc_resolver_factory_add_default_prefix_if_needed(exec_ctx, target));
166
+ grpc_resolver_factory_add_default_prefix_if_needed(target));
171
167
  const char* to_remove[] = {GRPC_ARG_SERVER_URI};
172
168
  grpc_channel_args* new_args =
173
169
  grpc_channel_args_copy_and_add_and_remove(args, to_remove, 1, &arg, 1);
174
170
  gpr_free(arg.value.string);
175
- grpc_channel* channel = grpc_channel_create(exec_ctx, target, new_args,
176
- GRPC_CLIENT_CHANNEL, nullptr);
177
- grpc_channel_args_destroy(exec_ctx, new_args);
171
+ grpc_channel* channel =
172
+ grpc_channel_create(target, new_args, GRPC_CLIENT_CHANNEL, nullptr);
173
+ grpc_channel_args_destroy(new_args);
178
174
  return channel;
179
175
  }
180
176
 
@@ -194,7 +190,7 @@ grpc_channel* grpc_secure_channel_create(grpc_channel_credentials* creds,
194
190
  const char* target,
195
191
  const grpc_channel_args* args,
196
192
  void* reserved) {
197
- grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
193
+ grpc_core::ExecCtx exec_ctx;
198
194
  GRPC_API_TRACE(
199
195
  "grpc_secure_channel_create(creds=%p, target=%s, args=%p, "
200
196
  "reserved=%p)",
@@ -211,11 +207,10 @@ grpc_channel* grpc_secure_channel_create(grpc_channel_credentials* creds,
211
207
  args, args_to_add, GPR_ARRAY_SIZE(args_to_add));
212
208
  // Create channel.
213
209
  channel = client_channel_factory_create_channel(
214
- &exec_ctx, &client_channel_factory, target,
215
- GRPC_CLIENT_CHANNEL_TYPE_REGULAR, new_args);
210
+ &client_channel_factory, target, GRPC_CLIENT_CHANNEL_TYPE_REGULAR,
211
+ new_args);
216
212
  // Clean up.
217
- grpc_channel_args_destroy(&exec_ctx, new_args);
218
- grpc_exec_ctx_finish(&exec_ctx);
213
+ grpc_channel_args_destroy(new_args);
219
214
  }
220
215
  return channel != nullptr ? channel
221
216
  : grpc_lame_client_channel_create(
@@ -69,17 +69,17 @@ typedef struct {
69
69
  } server_connection_state;
70
70
 
71
71
  static void server_connection_state_unref(
72
- grpc_exec_ctx* exec_ctx, server_connection_state* connection_state) {
72
+ server_connection_state* connection_state) {
73
73
  if (gpr_unref(&connection_state->refs)) {
74
74
  if (connection_state->transport != nullptr) {
75
- GRPC_CHTTP2_UNREF_TRANSPORT(exec_ctx, connection_state->transport,
75
+ GRPC_CHTTP2_UNREF_TRANSPORT(connection_state->transport,
76
76
  "receive settings timeout");
77
77
  }
78
78
  gpr_free(connection_state);
79
79
  }
80
80
  }
81
81
 
82
- static void on_timeout(grpc_exec_ctx* exec_ctx, void* arg, grpc_error* error) {
82
+ static void on_timeout(void* arg, grpc_error* error) {
83
83
  server_connection_state* connection_state = (server_connection_state*)arg;
84
84
  // Note that we may be called with GRPC_ERROR_NONE when the timer fires
85
85
  // or with an error indicating that the timer system is being shut down.
@@ -87,22 +87,20 @@ static void on_timeout(grpc_exec_ctx* exec_ctx, void* arg, grpc_error* error) {
87
87
  grpc_transport_op* op = grpc_make_transport_op(nullptr);
88
88
  op->disconnect_with_error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
89
89
  "Did not receive HTTP/2 settings before handshake timeout");
90
- grpc_transport_perform_op(exec_ctx, &connection_state->transport->base, op);
90
+ grpc_transport_perform_op(&connection_state->transport->base, op);
91
91
  }
92
- server_connection_state_unref(exec_ctx, connection_state);
92
+ server_connection_state_unref(connection_state);
93
93
  }
94
94
 
95
- static void on_receive_settings(grpc_exec_ctx* exec_ctx, void* arg,
96
- grpc_error* error) {
95
+ static void on_receive_settings(void* arg, grpc_error* error) {
97
96
  server_connection_state* connection_state = (server_connection_state*)arg;
98
97
  if (error == GRPC_ERROR_NONE) {
99
- grpc_timer_cancel(exec_ctx, &connection_state->timer);
98
+ grpc_timer_cancel(&connection_state->timer);
100
99
  }
101
- server_connection_state_unref(exec_ctx, connection_state);
100
+ server_connection_state_unref(connection_state);
102
101
  }
103
102
 
104
- static void on_handshake_done(grpc_exec_ctx* exec_ctx, void* arg,
105
- grpc_error* error) {
103
+ static void on_handshake_done(void* arg, grpc_error* error) {
106
104
  grpc_handshaker_args* args = (grpc_handshaker_args*)arg;
107
105
  server_connection_state* connection_state =
108
106
  (server_connection_state*)args->user_data;
@@ -117,10 +115,10 @@ static void on_handshake_done(grpc_exec_ctx* exec_ctx, void* arg,
117
115
  // before destroying them, even if we know that there are no
118
116
  // pending read/write callbacks. This should be fixed, at which
119
117
  // point this can be removed.
120
- grpc_endpoint_shutdown(exec_ctx, args->endpoint, GRPC_ERROR_NONE);
121
- grpc_endpoint_destroy(exec_ctx, args->endpoint);
122
- grpc_channel_args_destroy(exec_ctx, args->args);
123
- grpc_slice_buffer_destroy_internal(exec_ctx, args->read_buffer);
118
+ grpc_endpoint_shutdown(args->endpoint, GRPC_ERROR_NONE);
119
+ grpc_endpoint_destroy(args->endpoint);
120
+ grpc_channel_args_destroy(args->args);
121
+ grpc_slice_buffer_destroy_internal(args->read_buffer);
124
122
  gpr_free(args->read_buffer);
125
123
  }
126
124
  } else {
@@ -128,10 +126,10 @@ static void on_handshake_done(grpc_exec_ctx* exec_ctx, void* arg,
128
126
  // handshaker may have handed off the connection to some external
129
127
  // code, so we can just clean up here without creating a transport.
130
128
  if (args->endpoint != nullptr) {
131
- grpc_transport* transport = grpc_create_chttp2_transport(
132
- exec_ctx, args->args, args->endpoint, false);
129
+ grpc_transport* transport =
130
+ grpc_create_chttp2_transport(args->args, args->endpoint, false);
133
131
  grpc_server_setup_transport(
134
- exec_ctx, connection_state->svr_state->server, transport,
132
+ connection_state->svr_state->server, transport,
135
133
  connection_state->accepting_pollset, args->args);
136
134
  // Use notify_on_receive_settings callback to enforce the
137
135
  // handshake deadline.
@@ -141,16 +139,14 @@ static void on_handshake_done(grpc_exec_ctx* exec_ctx, void* arg,
141
139
  on_receive_settings, connection_state,
142
140
  grpc_schedule_on_exec_ctx);
143
141
  grpc_chttp2_transport_start_reading(
144
- exec_ctx, transport, args->read_buffer,
145
- &connection_state->on_receive_settings);
146
- grpc_channel_args_destroy(exec_ctx, args->args);
142
+ transport, args->read_buffer, &connection_state->on_receive_settings);
143
+ grpc_channel_args_destroy(args->args);
147
144
  gpr_ref(&connection_state->refs);
148
145
  GRPC_CHTTP2_REF_TRANSPORT((grpc_chttp2_transport*)transport,
149
146
  "receive settings timeout");
150
147
  GRPC_CLOSURE_INIT(&connection_state->on_timeout, on_timeout,
151
148
  connection_state, grpc_schedule_on_exec_ctx);
152
- grpc_timer_init(exec_ctx, &connection_state->timer,
153
- connection_state->deadline,
149
+ grpc_timer_init(&connection_state->timer, connection_state->deadline,
154
150
  &connection_state->on_timeout);
155
151
  }
156
152
  }
@@ -158,21 +154,21 @@ static void on_handshake_done(grpc_exec_ctx* exec_ctx, void* arg,
158
154
  &connection_state->svr_state->pending_handshake_mgrs,
159
155
  connection_state->handshake_mgr);
160
156
  gpr_mu_unlock(&connection_state->svr_state->mu);
161
- grpc_handshake_manager_destroy(exec_ctx, connection_state->handshake_mgr);
157
+ grpc_handshake_manager_destroy(connection_state->handshake_mgr);
162
158
  gpr_free(connection_state->acceptor);
163
- grpc_tcp_server_unref(exec_ctx, connection_state->svr_state->tcp_server);
164
- server_connection_state_unref(exec_ctx, connection_state);
159
+ grpc_tcp_server_unref(connection_state->svr_state->tcp_server);
160
+ server_connection_state_unref(connection_state);
165
161
  }
166
162
 
167
- static void on_accept(grpc_exec_ctx* exec_ctx, void* arg, grpc_endpoint* tcp,
163
+ static void on_accept(void* arg, grpc_endpoint* tcp,
168
164
  grpc_pollset* accepting_pollset,
169
165
  grpc_tcp_server_acceptor* acceptor) {
170
166
  server_state* state = (server_state*)arg;
171
167
  gpr_mu_lock(&state->mu);
172
168
  if (state->shutdown) {
173
169
  gpr_mu_unlock(&state->mu);
174
- grpc_endpoint_shutdown(exec_ctx, tcp, GRPC_ERROR_NONE);
175
- grpc_endpoint_destroy(exec_ctx, tcp);
170
+ grpc_endpoint_shutdown(tcp, GRPC_ERROR_NONE);
171
+ grpc_endpoint_destroy(tcp);
176
172
  gpr_free(acceptor);
177
173
  return;
178
174
  }
@@ -188,58 +184,56 @@ static void on_accept(grpc_exec_ctx* exec_ctx, void* arg, grpc_endpoint* tcp,
188
184
  connection_state->accepting_pollset = accepting_pollset;
189
185
  connection_state->acceptor = acceptor;
190
186
  connection_state->handshake_mgr = handshake_mgr;
191
- grpc_handshakers_add(exec_ctx, HANDSHAKER_SERVER, state->args,
187
+ grpc_handshakers_add(HANDSHAKER_SERVER, state->args,
192
188
  connection_state->handshake_mgr);
193
189
  const grpc_arg* timeout_arg =
194
190
  grpc_channel_args_find(state->args, GRPC_ARG_SERVER_HANDSHAKE_TIMEOUT_MS);
195
191
  connection_state->deadline =
196
- grpc_exec_ctx_now(exec_ctx) +
192
+ grpc_core::ExecCtx::Get()->Now() +
197
193
  grpc_channel_arg_get_integer(timeout_arg,
198
194
  {120 * GPR_MS_PER_SEC, 1, INT_MAX});
199
- grpc_handshake_manager_do_handshake(exec_ctx, connection_state->handshake_mgr,
200
- tcp, state->args,
201
- connection_state->deadline, acceptor,
202
- on_handshake_done, connection_state);
195
+ grpc_handshake_manager_do_handshake(
196
+ connection_state->handshake_mgr, nullptr /* interested_parties */, tcp,
197
+ state->args, connection_state->deadline, acceptor, on_handshake_done,
198
+ connection_state);
203
199
  }
204
200
 
205
201
  /* Server callback: start listening on our ports */
206
- static void server_start_listener(grpc_exec_ctx* exec_ctx, grpc_server* server,
207
- void* arg, grpc_pollset** pollsets,
202
+ static void server_start_listener(grpc_server* server, void* arg,
203
+ grpc_pollset** pollsets,
208
204
  size_t pollset_count) {
209
205
  server_state* state = (server_state*)arg;
210
206
  gpr_mu_lock(&state->mu);
211
207
  state->shutdown = false;
212
208
  gpr_mu_unlock(&state->mu);
213
- grpc_tcp_server_start(exec_ctx, state->tcp_server, pollsets, pollset_count,
214
- on_accept, state);
209
+ grpc_tcp_server_start(state->tcp_server, pollsets, pollset_count, on_accept,
210
+ state);
215
211
  }
216
212
 
217
- static void tcp_server_shutdown_complete(grpc_exec_ctx* exec_ctx, void* arg,
218
- grpc_error* error) {
213
+ static void tcp_server_shutdown_complete(void* arg, grpc_error* error) {
219
214
  server_state* state = (server_state*)arg;
220
215
  /* ensure all threads have unlocked */
221
216
  gpr_mu_lock(&state->mu);
222
217
  grpc_closure* destroy_done = state->server_destroy_listener_done;
223
218
  GPR_ASSERT(state->shutdown);
224
219
  grpc_handshake_manager_pending_list_shutdown_all(
225
- exec_ctx, state->pending_handshake_mgrs, GRPC_ERROR_REF(error));
220
+ state->pending_handshake_mgrs, GRPC_ERROR_REF(error));
226
221
  gpr_mu_unlock(&state->mu);
227
222
  // Flush queued work before destroying handshaker factory, since that
228
223
  // may do a synchronous unref.
229
- grpc_exec_ctx_flush(exec_ctx);
224
+ grpc_core::ExecCtx::Get()->Flush();
230
225
  if (destroy_done != nullptr) {
231
- destroy_done->cb(exec_ctx, destroy_done->cb_arg, GRPC_ERROR_REF(error));
232
- grpc_exec_ctx_flush(exec_ctx);
226
+ destroy_done->cb(destroy_done->cb_arg, GRPC_ERROR_REF(error));
227
+ grpc_core::ExecCtx::Get()->Flush();
233
228
  }
234
- grpc_channel_args_destroy(exec_ctx, state->args);
229
+ grpc_channel_args_destroy(state->args);
235
230
  gpr_mu_destroy(&state->mu);
236
231
  gpr_free(state);
237
232
  }
238
233
 
239
234
  /* Server callback: destroy the tcp listener (so we don't generate further
240
235
  callbacks) */
241
- static void server_destroy_listener(grpc_exec_ctx* exec_ctx,
242
- grpc_server* server, void* arg,
236
+ static void server_destroy_listener(grpc_server* server, void* arg,
243
237
  grpc_closure* destroy_done) {
244
238
  server_state* state = (server_state*)arg;
245
239
  gpr_mu_lock(&state->mu);
@@ -247,12 +241,11 @@ static void server_destroy_listener(grpc_exec_ctx* exec_ctx,
247
241
  state->server_destroy_listener_done = destroy_done;
248
242
  grpc_tcp_server* tcp_server = state->tcp_server;
249
243
  gpr_mu_unlock(&state->mu);
250
- grpc_tcp_server_shutdown_listeners(exec_ctx, tcp_server);
251
- grpc_tcp_server_unref(exec_ctx, tcp_server);
244
+ grpc_tcp_server_shutdown_listeners(tcp_server);
245
+ grpc_tcp_server_unref(tcp_server);
252
246
  }
253
247
 
254
- grpc_error* grpc_chttp2_server_add_port(grpc_exec_ctx* exec_ctx,
255
- grpc_server* server, const char* addr,
248
+ grpc_error* grpc_chttp2_server_add_port(grpc_server* server, const char* addr,
256
249
  grpc_channel_args* args,
257
250
  int* port_num) {
258
251
  grpc_resolved_addresses* resolved = nullptr;
@@ -276,8 +269,8 @@ grpc_error* grpc_chttp2_server_add_port(grpc_exec_ctx* exec_ctx,
276
269
  GRPC_CLOSURE_INIT(&state->tcp_server_shutdown_complete,
277
270
  tcp_server_shutdown_complete, state,
278
271
  grpc_schedule_on_exec_ctx);
279
- err = grpc_tcp_server_create(exec_ctx, &state->tcp_server_shutdown_complete,
280
- args, &tcp_server);
272
+ err = grpc_tcp_server_create(&state->tcp_server_shutdown_complete, args,
273
+ &tcp_server);
281
274
  if (err != GRPC_ERROR_NONE) {
282
275
  goto error;
283
276
  }
@@ -326,7 +319,7 @@ grpc_error* grpc_chttp2_server_add_port(grpc_exec_ctx* exec_ctx,
326
319
  grpc_resolved_addresses_destroy(resolved);
327
320
 
328
321
  /* Register with the server only upon success */
329
- grpc_server_add_listener(exec_ctx, server, state, server_start_listener,
322
+ grpc_server_add_listener(server, state, server_start_listener,
330
323
  server_destroy_listener);
331
324
  goto done;
332
325
 
@@ -337,9 +330,9 @@ error:
337
330
  grpc_resolved_addresses_destroy(resolved);
338
331
  }
339
332
  if (tcp_server) {
340
- grpc_tcp_server_unref(exec_ctx, tcp_server);
333
+ grpc_tcp_server_unref(tcp_server);
341
334
  } else {
342
- grpc_channel_args_destroy(exec_ctx, args);
335
+ grpc_channel_args_destroy(args);
343
336
  gpr_free(state);
344
337
  }
345
338
  *port_num = 0;
@@ -23,18 +23,9 @@
23
23
 
24
24
  #include "src/core/lib/iomgr/exec_ctx.h"
25
25
 
26
- #ifdef __cplusplus
27
- extern "C" {
28
- #endif
29
-
30
26
  /// Adds a port to \a server. Sets \a port_num to the port number.
31
27
  /// Takes ownership of \a args.
32
- grpc_error* grpc_chttp2_server_add_port(grpc_exec_ctx* exec_ctx,
33
- grpc_server* server, const char* addr,
28
+ grpc_error* grpc_chttp2_server_add_port(grpc_server* server, const char* addr,
34
29
  grpc_channel_args* args, int* port_num);
35
30
 
36
- #ifdef __cplusplus
37
- }
38
- #endif
39
-
40
31
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_SERVER_CHTTP2_SERVER_H */
@@ -26,12 +26,12 @@
26
26
  #include "src/core/lib/surface/server.h"
27
27
 
28
28
  int grpc_server_add_insecure_http2_port(grpc_server* server, const char* addr) {
29
- grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
29
+ grpc_core::ExecCtx exec_ctx;
30
30
  int port_num = 0;
31
31
  GRPC_API_TRACE("grpc_server_add_insecure_http2_port(server=%p, addr=%s)", 2,
32
32
  (server, addr));
33
33
  grpc_error* err = grpc_chttp2_server_add_port(
34
- &exec_ctx, server, addr,
34
+ server, addr,
35
35
  grpc_channel_args_copy(grpc_server_get_channel_args(server)), &port_num);
36
36
  if (err != GRPC_ERROR_NONE) {
37
37
  const char* msg = grpc_error_string(err);
@@ -39,6 +39,6 @@ int grpc_server_add_insecure_http2_port(grpc_server* server, const char* addr) {
39
39
 
40
40
  GRPC_ERROR_UNREF(err);
41
41
  }
42
- grpc_exec_ctx_finish(&exec_ctx);
42
+
43
43
  return port_num;
44
44
  }
@@ -38,32 +38,29 @@ void grpc_server_add_insecure_channel_from_fd(grpc_server* server,
38
38
  void* reserved, int fd) {
39
39
  GPR_ASSERT(reserved == nullptr);
40
40
 
41
- grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
41
+ grpc_core::ExecCtx exec_ctx;
42
42
  char* name;
43
43
  gpr_asprintf(&name, "fd:%d", fd);
44
44
 
45
- grpc_endpoint* server_endpoint =
46
- grpc_tcp_create(&exec_ctx, grpc_fd_create(fd, name),
47
- grpc_server_get_channel_args(server), name);
45
+ grpc_endpoint* server_endpoint = grpc_tcp_create(
46
+ grpc_fd_create(fd, name), grpc_server_get_channel_args(server), name);
48
47
 
49
48
  gpr_free(name);
50
49
 
51
50
  const grpc_channel_args* server_args = grpc_server_get_channel_args(server);
52
51
  grpc_transport* transport = grpc_create_chttp2_transport(
53
- &exec_ctx, server_args, server_endpoint, false /* is_client */);
52
+ server_args, server_endpoint, false /* is_client */);
54
53
 
55
54
  grpc_pollset** pollsets;
56
55
  size_t num_pollsets = 0;
57
56
  grpc_server_get_pollsets(server, &pollsets, &num_pollsets);
58
57
 
59
58
  for (size_t i = 0; i < num_pollsets; i++) {
60
- grpc_endpoint_add_to_pollset(&exec_ctx, server_endpoint, pollsets[i]);
59
+ grpc_endpoint_add_to_pollset(server_endpoint, pollsets[i]);
61
60
  }
62
61
 
63
- grpc_server_setup_transport(&exec_ctx, server, transport, nullptr,
64
- server_args);
65
- grpc_chttp2_transport_start_reading(&exec_ctx, transport, nullptr, nullptr);
66
- grpc_exec_ctx_finish(&exec_ctx);
62
+ grpc_server_setup_transport(server, transport, nullptr, server_args);
63
+ grpc_chttp2_transport_start_reading(transport, nullptr, nullptr);
67
64
  }
68
65
 
69
66
  #else // !GPR_SUPPORT_CHANNELS_FROM_FD