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
@@ -31,33 +31,22 @@
31
31
  #include "src/core/lib/transport/status_conversion.h"
32
32
  #include "src/core/lib/transport/timeout_encoding.h"
33
33
 
34
- static grpc_error* init_frame_parser(grpc_exec_ctx* exec_ctx,
35
- grpc_chttp2_transport* t);
36
- static grpc_error* init_header_frame_parser(grpc_exec_ctx* exec_ctx,
37
- grpc_chttp2_transport* t,
34
+ static grpc_error* init_frame_parser(grpc_chttp2_transport* t);
35
+ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
38
36
  int is_continuation);
39
- static grpc_error* init_data_frame_parser(grpc_exec_ctx* exec_ctx,
40
- grpc_chttp2_transport* t);
41
- static grpc_error* init_rst_stream_parser(grpc_exec_ctx* exec_ctx,
42
- grpc_chttp2_transport* t);
43
- static grpc_error* init_settings_frame_parser(grpc_exec_ctx* exec_ctx,
44
- grpc_chttp2_transport* t);
45
- static grpc_error* init_window_update_frame_parser(grpc_exec_ctx* exec_ctx,
46
- grpc_chttp2_transport* t);
47
- static grpc_error* init_ping_parser(grpc_exec_ctx* exec_ctx,
48
- grpc_chttp2_transport* t);
49
- static grpc_error* init_goaway_parser(grpc_exec_ctx* exec_ctx,
50
- grpc_chttp2_transport* t);
51
- static grpc_error* init_skip_frame_parser(grpc_exec_ctx* exec_ctx,
52
- grpc_chttp2_transport* t,
37
+ static grpc_error* init_data_frame_parser(grpc_chttp2_transport* t);
38
+ static grpc_error* init_rst_stream_parser(grpc_chttp2_transport* t);
39
+ static grpc_error* init_settings_frame_parser(grpc_chttp2_transport* t);
40
+ static grpc_error* init_window_update_frame_parser(grpc_chttp2_transport* t);
41
+ static grpc_error* init_ping_parser(grpc_chttp2_transport* t);
42
+ static grpc_error* init_goaway_parser(grpc_chttp2_transport* t);
43
+ static grpc_error* init_skip_frame_parser(grpc_chttp2_transport* t,
53
44
  int is_header);
54
45
 
55
- static grpc_error* parse_frame_slice(grpc_exec_ctx* exec_ctx,
56
- grpc_chttp2_transport* t, grpc_slice slice,
46
+ static grpc_error* parse_frame_slice(grpc_chttp2_transport* t, grpc_slice slice,
57
47
  int is_last);
58
48
 
59
- grpc_error* grpc_chttp2_perform_read(grpc_exec_ctx* exec_ctx,
60
- grpc_chttp2_transport* t,
49
+ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
61
50
  grpc_slice slice) {
62
51
  uint8_t* beg = GRPC_SLICE_START_PTR(slice);
63
52
  uint8_t* end = GRPC_SLICE_END_PTR(slice);
@@ -182,12 +171,12 @@ grpc_error* grpc_chttp2_perform_read(grpc_exec_ctx* exec_ctx,
182
171
  GPR_ASSERT(cur < end);
183
172
  t->incoming_stream_id |= ((uint32_t)*cur);
184
173
  t->deframe_state = GRPC_DTS_FRAME;
185
- err = init_frame_parser(exec_ctx, t);
174
+ err = init_frame_parser(t);
186
175
  if (err != GRPC_ERROR_NONE) {
187
176
  return err;
188
177
  }
189
178
  if (t->incoming_frame_size == 0) {
190
- err = parse_frame_slice(exec_ctx, t, grpc_empty_slice(), 1);
179
+ err = parse_frame_slice(t, grpc_empty_slice(), 1);
191
180
  if (err != GRPC_ERROR_NONE) {
192
181
  return err;
193
182
  }
@@ -197,9 +186,10 @@ grpc_error* grpc_chttp2_perform_read(grpc_exec_ctx* exec_ctx,
197
186
  return GRPC_ERROR_NONE;
198
187
  }
199
188
  goto dts_fh_0; /* loop */
200
- } else if (t->incoming_frame_size >
201
- t->settings[GRPC_ACKED_SETTINGS]
202
- [GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE]) {
189
+ } else if (t->flow_control->flow_control_enabled() &&
190
+ t->incoming_frame_size >
191
+ t->settings[GRPC_ACKED_SETTINGS]
192
+ [GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE]) {
203
193
  char* msg;
204
194
  gpr_asprintf(&msg, "Frame size %d is larger than max frame size %d",
205
195
  t->incoming_frame_size,
@@ -217,7 +207,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_exec_ctx* exec_ctx,
217
207
  GPR_ASSERT(cur < end);
218
208
  if ((uint32_t)(end - cur) == t->incoming_frame_size) {
219
209
  err =
220
- parse_frame_slice(exec_ctx, t,
210
+ parse_frame_slice(t,
221
211
  grpc_slice_sub_no_ref(slice, (size_t)(cur - beg),
222
212
  (size_t)(end - beg)),
223
213
  1);
@@ -230,7 +220,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_exec_ctx* exec_ctx,
230
220
  } else if ((uint32_t)(end - cur) > t->incoming_frame_size) {
231
221
  size_t cur_offset = (size_t)(cur - beg);
232
222
  err = parse_frame_slice(
233
- exec_ctx, t,
223
+ t,
234
224
  grpc_slice_sub_no_ref(slice, cur_offset,
235
225
  cur_offset + t->incoming_frame_size),
236
226
  1);
@@ -242,7 +232,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_exec_ctx* exec_ctx,
242
232
  goto dts_fh_0; /* loop */
243
233
  } else {
244
234
  err =
245
- parse_frame_slice(exec_ctx, t,
235
+ parse_frame_slice(t,
246
236
  grpc_slice_sub_no_ref(slice, (size_t)(cur - beg),
247
237
  (size_t)(end - beg)),
248
238
  0);
@@ -258,8 +248,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_exec_ctx* exec_ctx,
258
248
  GPR_UNREACHABLE_CODE(return nullptr);
259
249
  }
260
250
 
261
- static grpc_error* init_frame_parser(grpc_exec_ctx* exec_ctx,
262
- grpc_chttp2_transport* t) {
251
+ static grpc_error* init_frame_parser(grpc_chttp2_transport* t) {
263
252
  if (t->is_first_frame &&
264
253
  t->incoming_frame_type != GRPC_CHTTP2_FRAME_SETTINGS) {
265
254
  char* msg;
@@ -291,46 +280,43 @@ static grpc_error* init_frame_parser(grpc_exec_ctx* exec_ctx,
291
280
  gpr_free(msg);
292
281
  return err;
293
282
  }
294
- return init_header_frame_parser(exec_ctx, t, 1);
283
+ return init_header_frame_parser(t, 1);
295
284
  }
296
285
  switch (t->incoming_frame_type) {
297
286
  case GRPC_CHTTP2_FRAME_DATA:
298
- return init_data_frame_parser(exec_ctx, t);
287
+ return init_data_frame_parser(t);
299
288
  case GRPC_CHTTP2_FRAME_HEADER:
300
- return init_header_frame_parser(exec_ctx, t, 0);
289
+ return init_header_frame_parser(t, 0);
301
290
  case GRPC_CHTTP2_FRAME_CONTINUATION:
302
291
  return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
303
292
  "Unexpected CONTINUATION frame");
304
293
  case GRPC_CHTTP2_FRAME_RST_STREAM:
305
- return init_rst_stream_parser(exec_ctx, t);
294
+ return init_rst_stream_parser(t);
306
295
  case GRPC_CHTTP2_FRAME_SETTINGS:
307
- return init_settings_frame_parser(exec_ctx, t);
296
+ return init_settings_frame_parser(t);
308
297
  case GRPC_CHTTP2_FRAME_WINDOW_UPDATE:
309
- return init_window_update_frame_parser(exec_ctx, t);
298
+ return init_window_update_frame_parser(t);
310
299
  case GRPC_CHTTP2_FRAME_PING:
311
- return init_ping_parser(exec_ctx, t);
300
+ return init_ping_parser(t);
312
301
  case GRPC_CHTTP2_FRAME_GOAWAY:
313
- return init_goaway_parser(exec_ctx, t);
302
+ return init_goaway_parser(t);
314
303
  default:
315
304
  if (grpc_http_trace.enabled()) {
316
305
  gpr_log(GPR_ERROR, "Unknown frame type %02x", t->incoming_frame_type);
317
306
  }
318
- return init_skip_frame_parser(exec_ctx, t, 0);
307
+ return init_skip_frame_parser(t, 0);
319
308
  }
320
309
  }
321
310
 
322
- static grpc_error* skip_parser(grpc_exec_ctx* exec_ctx, void* parser,
323
- grpc_chttp2_transport* t, grpc_chttp2_stream* s,
324
- grpc_slice slice, int is_last) {
311
+ static grpc_error* skip_parser(void* parser, grpc_chttp2_transport* t,
312
+ grpc_chttp2_stream* s, grpc_slice slice,
313
+ int is_last) {
325
314
  return GRPC_ERROR_NONE;
326
315
  }
327
316
 
328
- static void skip_header(grpc_exec_ctx* exec_ctx, void* tp, grpc_mdelem md) {
329
- GRPC_MDELEM_UNREF(exec_ctx, md);
330
- }
317
+ static void skip_header(void* tp, grpc_mdelem md) { GRPC_MDELEM_UNREF(md); }
331
318
 
332
- static grpc_error* init_skip_frame_parser(grpc_exec_ctx* exec_ctx,
333
- grpc_chttp2_transport* t,
319
+ static grpc_error* init_skip_frame_parser(grpc_chttp2_transport* t,
334
320
  int is_header) {
335
321
  if (is_header) {
336
322
  uint8_t is_eoh = t->expect_continuation_stream_id != 0;
@@ -346,14 +332,11 @@ static grpc_error* init_skip_frame_parser(grpc_exec_ctx* exec_ctx,
346
332
  return GRPC_ERROR_NONE;
347
333
  }
348
334
 
349
- void grpc_chttp2_parsing_become_skip_parser(grpc_exec_ctx* exec_ctx,
350
- grpc_chttp2_transport* t) {
351
- init_skip_frame_parser(exec_ctx, t,
352
- t->parser == grpc_chttp2_header_parser_parse);
335
+ void grpc_chttp2_parsing_become_skip_parser(grpc_chttp2_transport* t) {
336
+ init_skip_frame_parser(t, t->parser == grpc_chttp2_header_parser_parse);
353
337
  }
354
338
 
355
- static grpc_error* init_data_frame_parser(grpc_exec_ctx* exec_ctx,
356
- grpc_chttp2_transport* t) {
339
+ static grpc_error* init_data_frame_parser(grpc_chttp2_transport* t) {
357
340
  grpc_chttp2_stream* s =
358
341
  grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
359
342
  grpc_error* err = GRPC_ERROR_NONE;
@@ -365,17 +348,17 @@ static grpc_error* init_data_frame_parser(grpc_exec_ctx* exec_ctx,
365
348
  err = s->flow_control->RecvData(t->incoming_frame_size);
366
349
  action = s->flow_control->MakeAction();
367
350
  }
368
- grpc_chttp2_act_on_flowctl_action(exec_ctx, action, t, s);
351
+ grpc_chttp2_act_on_flowctl_action(action, t, s);
369
352
  if (err != GRPC_ERROR_NONE) {
370
353
  goto error_handler;
371
354
  }
372
355
  if (s == nullptr) {
373
- return init_skip_frame_parser(exec_ctx, t, 0);
356
+ return init_skip_frame_parser(t, 0);
374
357
  }
375
358
  s->received_bytes += t->incoming_frame_size;
376
359
  s->stats.incoming.framing_bytes += 9;
377
360
  if (err == GRPC_ERROR_NONE && s->read_closed) {
378
- return init_skip_frame_parser(exec_ctx, t, 0);
361
+ return init_skip_frame_parser(t, 0);
379
362
  }
380
363
  if (err == GRPC_ERROR_NONE) {
381
364
  err = grpc_chttp2_data_parser_begin_frame(
@@ -394,13 +377,13 @@ error_handler:
394
377
  } else if (grpc_error_get_int(err, GRPC_ERROR_INT_STREAM_ID, nullptr)) {
395
378
  /* handle stream errors by closing the stream */
396
379
  if (s != nullptr) {
397
- grpc_chttp2_mark_stream_closed(exec_ctx, t, s, true, false, err);
380
+ grpc_chttp2_mark_stream_closed(t, s, true, false, err);
398
381
  }
399
382
  grpc_slice_buffer_add(
400
383
  &t->qbuf, grpc_chttp2_rst_stream_create(t->incoming_stream_id,
401
384
  GRPC_HTTP2_PROTOCOL_ERROR,
402
385
  &s->stats.outgoing));
403
- return init_skip_frame_parser(exec_ctx, t, 0);
386
+ return init_skip_frame_parser(t, 0);
404
387
  } else {
405
388
  return err;
406
389
  }
@@ -408,8 +391,7 @@ error_handler:
408
391
 
409
392
  static void free_timeout(void* p) { gpr_free(p); }
410
393
 
411
- static void on_initial_header(grpc_exec_ctx* exec_ctx, void* tp,
412
- grpc_mdelem md) {
394
+ static void on_initial_header(void* tp, grpc_mdelem md) {
413
395
  grpc_chttp2_transport* t = (grpc_chttp2_transport*)tp;
414
396
  grpc_chttp2_stream* s = t->incoming_stream;
415
397
 
@@ -455,9 +437,9 @@ static void on_initial_header(grpc_exec_ctx* exec_ctx, void* tp,
455
437
  }
456
438
  if (timeout != GRPC_MILLIS_INF_FUTURE) {
457
439
  grpc_chttp2_incoming_metadata_buffer_set_deadline(
458
- &s->metadata_buffer[0], grpc_exec_ctx_now(exec_ctx) + timeout);
440
+ &s->metadata_buffer[0], grpc_core::ExecCtx::Get()->Now() + timeout);
459
441
  }
460
- GRPC_MDELEM_UNREF(exec_ctx, md);
442
+ GRPC_MDELEM_UNREF(md);
461
443
  } else {
462
444
  const size_t new_size = s->metadata_buffer[0].size + GRPC_MDELEM_LENGTH(md);
463
445
  const size_t metadata_size_limit =
@@ -469,22 +451,22 @@ static void on_initial_header(grpc_exec_ctx* exec_ctx, void* tp,
469
451
  " vs. %" PRIuPTR ")",
470
452
  new_size, metadata_size_limit);
471
453
  grpc_chttp2_cancel_stream(
472
- exec_ctx, t, s,
454
+ t, s,
473
455
  grpc_error_set_int(
474
456
  GRPC_ERROR_CREATE_FROM_STATIC_STRING(
475
457
  "received initial metadata size exceeds limit"),
476
458
  GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_RESOURCE_EXHAUSTED));
477
- grpc_chttp2_parsing_become_skip_parser(exec_ctx, t);
459
+ grpc_chttp2_parsing_become_skip_parser(t);
478
460
  s->seen_error = true;
479
- GRPC_MDELEM_UNREF(exec_ctx, md);
461
+ GRPC_MDELEM_UNREF(md);
480
462
  } else {
481
- grpc_error* error = grpc_chttp2_incoming_metadata_buffer_add(
482
- exec_ctx, &s->metadata_buffer[0], md);
463
+ grpc_error* error =
464
+ grpc_chttp2_incoming_metadata_buffer_add(&s->metadata_buffer[0], md);
483
465
  if (error != GRPC_ERROR_NONE) {
484
- grpc_chttp2_cancel_stream(exec_ctx, t, s, error);
485
- grpc_chttp2_parsing_become_skip_parser(exec_ctx, t);
466
+ grpc_chttp2_cancel_stream(t, s, error);
467
+ grpc_chttp2_parsing_become_skip_parser(t);
486
468
  s->seen_error = true;
487
- GRPC_MDELEM_UNREF(exec_ctx, md);
469
+ GRPC_MDELEM_UNREF(md);
488
470
  }
489
471
  }
490
472
  }
@@ -492,8 +474,7 @@ static void on_initial_header(grpc_exec_ctx* exec_ctx, void* tp,
492
474
  GPR_TIMER_END("on_initial_header", 0);
493
475
  }
494
476
 
495
- static void on_trailing_header(grpc_exec_ctx* exec_ctx, void* tp,
496
- grpc_mdelem md) {
477
+ static void on_trailing_header(void* tp, grpc_mdelem md) {
497
478
  grpc_chttp2_transport* t = (grpc_chttp2_transport*)tp;
498
479
  grpc_chttp2_stream* s = t->incoming_stream;
499
480
 
@@ -527,30 +508,29 @@ static void on_trailing_header(grpc_exec_ctx* exec_ctx, void* tp,
527
508
  " vs. %" PRIuPTR ")",
528
509
  new_size, metadata_size_limit);
529
510
  grpc_chttp2_cancel_stream(
530
- exec_ctx, t, s,
511
+ t, s,
531
512
  grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
532
513
  "received trailing metadata size exceeds limit"),
533
514
  GRPC_ERROR_INT_GRPC_STATUS,
534
515
  GRPC_STATUS_RESOURCE_EXHAUSTED));
535
- grpc_chttp2_parsing_become_skip_parser(exec_ctx, t);
516
+ grpc_chttp2_parsing_become_skip_parser(t);
536
517
  s->seen_error = true;
537
- GRPC_MDELEM_UNREF(exec_ctx, md);
518
+ GRPC_MDELEM_UNREF(md);
538
519
  } else {
539
- grpc_error* error = grpc_chttp2_incoming_metadata_buffer_add(
540
- exec_ctx, &s->metadata_buffer[1], md);
520
+ grpc_error* error =
521
+ grpc_chttp2_incoming_metadata_buffer_add(&s->metadata_buffer[1], md);
541
522
  if (error != GRPC_ERROR_NONE) {
542
- grpc_chttp2_cancel_stream(exec_ctx, t, s, error);
543
- grpc_chttp2_parsing_become_skip_parser(exec_ctx, t);
523
+ grpc_chttp2_cancel_stream(t, s, error);
524
+ grpc_chttp2_parsing_become_skip_parser(t);
544
525
  s->seen_error = true;
545
- GRPC_MDELEM_UNREF(exec_ctx, md);
526
+ GRPC_MDELEM_UNREF(md);
546
527
  }
547
528
  }
548
529
 
549
530
  GPR_TIMER_END("on_trailing_header", 0);
550
531
  }
551
532
 
552
- static grpc_error* init_header_frame_parser(grpc_exec_ctx* exec_ctx,
553
- grpc_chttp2_transport* t,
533
+ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
554
534
  int is_continuation) {
555
535
  uint8_t is_eoh =
556
536
  (t->incoming_frame_flags & GRPC_CHTTP2_DATA_FLAG_END_HEADERS) != 0;
@@ -580,7 +560,7 @@ static grpc_error* init_header_frame_parser(grpc_exec_ctx* exec_ctx,
580
560
  GRPC_CHTTP2_IF_TRACING(
581
561
  gpr_log(GPR_ERROR,
582
562
  "grpc_chttp2_stream disbanded before CONTINUATION received"));
583
- return init_skip_frame_parser(exec_ctx, t, 1);
563
+ return init_skip_frame_parser(t, 1);
584
564
  }
585
565
  if (t->is_client) {
586
566
  if ((t->incoming_stream_id & 1) &&
@@ -590,7 +570,7 @@ static grpc_error* init_header_frame_parser(grpc_exec_ctx* exec_ctx,
590
570
  GRPC_CHTTP2_IF_TRACING(gpr_log(
591
571
  GPR_ERROR, "ignoring new grpc_chttp2_stream creation on client"));
592
572
  }
593
- grpc_error* err = init_skip_frame_parser(exec_ctx, t, 1);
573
+ grpc_error* err = init_skip_frame_parser(t, 1);
594
574
  if (t->incoming_frame_flags & GRPC_CHTTP2_FLAG_HAS_PRIORITY) {
595
575
  grpc_chttp2_hpack_parser_set_has_priority(&t->hpack_parser);
596
576
  }
@@ -602,13 +582,13 @@ static grpc_error* init_header_frame_parser(grpc_exec_ctx* exec_ctx,
602
582
  "last grpc_chttp2_stream "
603
583
  "id=%d, new grpc_chttp2_stream id=%d",
604
584
  t->last_new_stream_id, t->incoming_stream_id));
605
- return init_skip_frame_parser(exec_ctx, t, 1);
585
+ return init_skip_frame_parser(t, 1);
606
586
  } else if ((t->incoming_stream_id & 1) == 0) {
607
587
  GRPC_CHTTP2_IF_TRACING(gpr_log(
608
588
  GPR_ERROR,
609
589
  "ignoring grpc_chttp2_stream with non-client generated index %d",
610
590
  t->incoming_stream_id));
611
- return init_skip_frame_parser(exec_ctx, t, 1);
591
+ return init_skip_frame_parser(t, 1);
612
592
  } else if (grpc_chttp2_stream_map_size(&t->stream_map) >=
613
593
  t->settings[GRPC_ACKED_SETTINGS]
614
594
  [GRPC_CHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS]) {
@@ -616,11 +596,11 @@ static grpc_error* init_header_frame_parser(grpc_exec_ctx* exec_ctx,
616
596
  }
617
597
  t->last_new_stream_id = t->incoming_stream_id;
618
598
  s = t->incoming_stream =
619
- grpc_chttp2_parsing_accept_stream(exec_ctx, t, t->incoming_stream_id);
599
+ grpc_chttp2_parsing_accept_stream(t, t->incoming_stream_id);
620
600
  if (s == nullptr) {
621
601
  GRPC_CHTTP2_IF_TRACING(
622
602
  gpr_log(GPR_ERROR, "grpc_chttp2_stream not accepted"));
623
- return init_skip_frame_parser(exec_ctx, t, 1);
603
+ return init_skip_frame_parser(t, 1);
624
604
  }
625
605
  } else {
626
606
  t->incoming_stream = s;
@@ -631,7 +611,7 @@ static grpc_error* init_header_frame_parser(grpc_exec_ctx* exec_ctx,
631
611
  GRPC_CHTTP2_IF_TRACING(gpr_log(
632
612
  GPR_ERROR, "skipping already closed grpc_chttp2_stream header"));
633
613
  t->incoming_stream = nullptr;
634
- return init_skip_frame_parser(exec_ctx, t, 1);
614
+ return init_skip_frame_parser(t, 1);
635
615
  }
636
616
  t->parser = grpc_chttp2_header_parser_parse;
637
617
  t->parser_data = &t->hpack_parser;
@@ -656,7 +636,7 @@ static grpc_error* init_header_frame_parser(grpc_exec_ctx* exec_ctx,
656
636
  break;
657
637
  case 2:
658
638
  gpr_log(GPR_ERROR, "too many header frames received");
659
- return init_skip_frame_parser(exec_ctx, t, 1);
639
+ return init_skip_frame_parser(t, 1);
660
640
  }
661
641
  t->hpack_parser.on_header_user_data = t;
662
642
  t->hpack_parser.is_boundary = is_eoh;
@@ -668,8 +648,7 @@ static grpc_error* init_header_frame_parser(grpc_exec_ctx* exec_ctx,
668
648
  return GRPC_ERROR_NONE;
669
649
  }
670
650
 
671
- static grpc_error* init_window_update_frame_parser(grpc_exec_ctx* exec_ctx,
672
- grpc_chttp2_transport* t) {
651
+ static grpc_error* init_window_update_frame_parser(grpc_chttp2_transport* t) {
673
652
  grpc_error* err = grpc_chttp2_window_update_parser_begin_frame(
674
653
  &t->simple.window_update, t->incoming_frame_size,
675
654
  t->incoming_frame_flags);
@@ -678,7 +657,7 @@ static grpc_error* init_window_update_frame_parser(grpc_exec_ctx* exec_ctx,
678
657
  grpc_chttp2_stream* s = t->incoming_stream =
679
658
  grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
680
659
  if (s == nullptr) {
681
- return init_skip_frame_parser(exec_ctx, t, 0);
660
+ return init_skip_frame_parser(t, 0);
682
661
  }
683
662
  s->stats.incoming.framing_bytes += 9;
684
663
  }
@@ -687,8 +666,7 @@ static grpc_error* init_window_update_frame_parser(grpc_exec_ctx* exec_ctx,
687
666
  return GRPC_ERROR_NONE;
688
667
  }
689
668
 
690
- static grpc_error* init_ping_parser(grpc_exec_ctx* exec_ctx,
691
- grpc_chttp2_transport* t) {
669
+ static grpc_error* init_ping_parser(grpc_chttp2_transport* t) {
692
670
  grpc_error* err = grpc_chttp2_ping_parser_begin_frame(
693
671
  &t->simple.ping, t->incoming_frame_size, t->incoming_frame_flags);
694
672
  if (err != GRPC_ERROR_NONE) return err;
@@ -697,15 +675,14 @@ static grpc_error* init_ping_parser(grpc_exec_ctx* exec_ctx,
697
675
  return GRPC_ERROR_NONE;
698
676
  }
699
677
 
700
- static grpc_error* init_rst_stream_parser(grpc_exec_ctx* exec_ctx,
701
- grpc_chttp2_transport* t) {
678
+ static grpc_error* init_rst_stream_parser(grpc_chttp2_transport* t) {
702
679
  grpc_error* err = grpc_chttp2_rst_stream_parser_begin_frame(
703
680
  &t->simple.rst_stream, t->incoming_frame_size, t->incoming_frame_flags);
704
681
  if (err != GRPC_ERROR_NONE) return err;
705
682
  grpc_chttp2_stream* s = t->incoming_stream =
706
683
  grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
707
684
  if (!t->incoming_stream) {
708
- return init_skip_frame_parser(exec_ctx, t, 0);
685
+ return init_skip_frame_parser(t, 0);
709
686
  }
710
687
  s->stats.incoming.framing_bytes += 9;
711
688
  t->parser = grpc_chttp2_rst_stream_parser_parse;
@@ -713,8 +690,7 @@ static grpc_error* init_rst_stream_parser(grpc_exec_ctx* exec_ctx,
713
690
  return GRPC_ERROR_NONE;
714
691
  }
715
692
 
716
- static grpc_error* init_goaway_parser(grpc_exec_ctx* exec_ctx,
717
- grpc_chttp2_transport* t) {
693
+ static grpc_error* init_goaway_parser(grpc_chttp2_transport* t) {
718
694
  grpc_error* err = grpc_chttp2_goaway_parser_begin_frame(
719
695
  &t->goaway_parser, t->incoming_frame_size, t->incoming_frame_flags);
720
696
  if (err != GRPC_ERROR_NONE) return err;
@@ -723,8 +699,7 @@ static grpc_error* init_goaway_parser(grpc_exec_ctx* exec_ctx,
723
699
  return GRPC_ERROR_NONE;
724
700
  }
725
701
 
726
- static grpc_error* init_settings_frame_parser(grpc_exec_ctx* exec_ctx,
727
- grpc_chttp2_transport* t) {
702
+ static grpc_error* init_settings_frame_parser(grpc_chttp2_transport* t) {
728
703
  if (t->incoming_stream_id != 0) {
729
704
  return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
730
705
  "Settings frame received for grpc_chttp2_stream");
@@ -740,7 +715,7 @@ static grpc_error* init_settings_frame_parser(grpc_exec_ctx* exec_ctx,
740
715
  memcpy(t->settings[GRPC_ACKED_SETTINGS], t->settings[GRPC_SENT_SETTINGS],
741
716
  GRPC_CHTTP2_NUM_SETTINGS * sizeof(uint32_t));
742
717
  grpc_chttp2_hptbl_set_max_bytes(
743
- exec_ctx, &t->hpack_parser.table,
718
+ &t->hpack_parser.table,
744
719
  t->settings[GRPC_ACKED_SETTINGS]
745
720
  [GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]);
746
721
  t->sent_local_settings = 0;
@@ -750,11 +725,10 @@ static grpc_error* init_settings_frame_parser(grpc_exec_ctx* exec_ctx,
750
725
  return GRPC_ERROR_NONE;
751
726
  }
752
727
 
753
- static grpc_error* parse_frame_slice(grpc_exec_ctx* exec_ctx,
754
- grpc_chttp2_transport* t, grpc_slice slice,
728
+ static grpc_error* parse_frame_slice(grpc_chttp2_transport* t, grpc_slice slice,
755
729
  int is_last) {
756
730
  grpc_chttp2_stream* s = t->incoming_stream;
757
- grpc_error* err = t->parser(exec_ctx, t->parser_data, t, s, slice, is_last);
731
+ grpc_error* err = t->parser(t->parser_data, t, s, slice, is_last);
758
732
  if (err == GRPC_ERROR_NONE) {
759
733
  return err;
760
734
  } else if (grpc_error_get_int(err, GRPC_ERROR_INT_STREAM_ID, nullptr)) {
@@ -762,7 +736,7 @@ static grpc_error* parse_frame_slice(grpc_exec_ctx* exec_ctx,
762
736
  const char* msg = grpc_error_string(err);
763
737
  gpr_log(GPR_ERROR, "%s", msg);
764
738
  }
765
- grpc_chttp2_parsing_become_skip_parser(exec_ctx, t);
739
+ grpc_chttp2_parsing_become_skip_parser(t);
766
740
  if (s) {
767
741
  s->forced_close_error = err;
768
742
  grpc_slice_buffer_add(