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
@@ -24,10 +24,6 @@
24
24
 
25
25
  #include "src/core/lib/iomgr/error.h"
26
26
 
27
- #ifdef __cplusplus
28
- extern "C" {
29
- #endif
30
-
31
27
  /* defined in internal.h */
32
28
  typedef struct grpc_chttp2_stream grpc_chttp2_stream;
33
29
  typedef struct grpc_chttp2_transport grpc_chttp2_transport;
@@ -47,8 +43,4 @@ typedef struct grpc_chttp2_transport grpc_chttp2_transport;
47
43
  #define GRPC_CHTTP2_DATA_FLAG_PADDED 8
48
44
  #define GRPC_CHTTP2_FLAG_HAS_PRIORITY 0x20
49
45
 
50
- #ifdef __cplusplus
51
- }
52
- #endif
53
-
54
46
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_H */
@@ -25,9 +25,9 @@
25
25
  #include <grpc/support/string_util.h>
26
26
  #include <grpc/support/useful.h>
27
27
  #include "src/core/ext/transport/chttp2/transport/internal.h"
28
+ #include "src/core/lib/gpr/string.h"
28
29
  #include "src/core/lib/slice/slice_internal.h"
29
30
  #include "src/core/lib/slice/slice_string_helpers.h"
30
- #include "src/core/lib/support/string.h"
31
31
  #include "src/core/lib/transport/transport.h"
32
32
 
33
33
  grpc_error* grpc_chttp2_data_parser_init(grpc_chttp2_data_parser* parser) {
@@ -36,11 +36,10 @@ grpc_error* grpc_chttp2_data_parser_init(grpc_chttp2_data_parser* parser) {
36
36
  return GRPC_ERROR_NONE;
37
37
  }
38
38
 
39
- void grpc_chttp2_data_parser_destroy(grpc_exec_ctx* exec_ctx,
40
- grpc_chttp2_data_parser* parser) {
39
+ void grpc_chttp2_data_parser_destroy(grpc_chttp2_data_parser* parser) {
41
40
  if (parser->parsing_frame != nullptr) {
42
41
  GRPC_ERROR_UNREF(grpc_chttp2_incoming_byte_stream_finished(
43
- exec_ctx, parser->parsing_frame,
42
+ parser->parsing_frame,
44
43
  GRPC_ERROR_CREATE_FROM_STATIC_STRING("Parser destroyed"), false));
45
44
  }
46
45
  GRPC_ERROR_UNREF(parser->error);
@@ -98,7 +97,7 @@ void grpc_chttp2_encode_data(uint32_t id, grpc_slice_buffer* inbuf,
98
97
  }
99
98
 
100
99
  grpc_error* grpc_deframe_unprocessed_incoming_frames(
101
- grpc_exec_ctx* exec_ctx, grpc_chttp2_data_parser* p, grpc_chttp2_stream* s,
100
+ grpc_chttp2_data_parser* p, grpc_chttp2_stream* s,
102
101
  grpc_slice_buffer* slices, grpc_slice* slice_out,
103
102
  grpc_byte_stream** stream_out) {
104
103
  grpc_error* error = GRPC_ERROR_NONE;
@@ -118,14 +117,14 @@ grpc_error* grpc_deframe_unprocessed_incoming_frames(
118
117
  char* msg;
119
118
 
120
119
  if (cur == end) {
121
- grpc_slice_unref_internal(exec_ctx, slice);
120
+ grpc_slice_unref_internal(slice);
122
121
  continue;
123
122
  }
124
123
 
125
124
  switch (p->state) {
126
125
  case GRPC_CHTTP2_DATA_ERROR:
127
126
  p->state = GRPC_CHTTP2_DATA_ERROR;
128
- grpc_slice_unref_internal(exec_ctx, slice);
127
+ grpc_slice_unref_internal(slice);
129
128
  return GRPC_ERROR_REF(p->error);
130
129
  case GRPC_CHTTP2_DATA_FH_0:
131
130
  s->stats.incoming.framing_bytes++;
@@ -150,12 +149,12 @@ grpc_error* grpc_deframe_unprocessed_incoming_frames(
150
149
  p->error =
151
150
  grpc_error_set_int(p->error, GRPC_ERROR_INT_OFFSET, cur - beg);
152
151
  p->state = GRPC_CHTTP2_DATA_ERROR;
153
- grpc_slice_unref_internal(exec_ctx, slice);
152
+ grpc_slice_unref_internal(slice);
154
153
  return GRPC_ERROR_REF(p->error);
155
154
  }
156
155
  if (++cur == end) {
157
156
  p->state = GRPC_CHTTP2_DATA_FH_1;
158
- grpc_slice_unref_internal(exec_ctx, slice);
157
+ grpc_slice_unref_internal(slice);
159
158
  continue;
160
159
  }
161
160
  /* fallthrough */
@@ -164,7 +163,7 @@ grpc_error* grpc_deframe_unprocessed_incoming_frames(
164
163
  p->frame_size = ((uint32_t)*cur) << 24;
165
164
  if (++cur == end) {
166
165
  p->state = GRPC_CHTTP2_DATA_FH_2;
167
- grpc_slice_unref_internal(exec_ctx, slice);
166
+ grpc_slice_unref_internal(slice);
168
167
  continue;
169
168
  }
170
169
  /* fallthrough */
@@ -173,7 +172,7 @@ grpc_error* grpc_deframe_unprocessed_incoming_frames(
173
172
  p->frame_size |= ((uint32_t)*cur) << 16;
174
173
  if (++cur == end) {
175
174
  p->state = GRPC_CHTTP2_DATA_FH_3;
176
- grpc_slice_unref_internal(exec_ctx, slice);
175
+ grpc_slice_unref_internal(slice);
177
176
  continue;
178
177
  }
179
178
  /* fallthrough */
@@ -182,7 +181,7 @@ grpc_error* grpc_deframe_unprocessed_incoming_frames(
182
181
  p->frame_size |= ((uint32_t)*cur) << 8;
183
182
  if (++cur == end) {
184
183
  p->state = GRPC_CHTTP2_DATA_FH_4;
185
- grpc_slice_unref_internal(exec_ctx, slice);
184
+ grpc_slice_unref_internal(slice);
186
185
  continue;
187
186
  }
188
187
  /* fallthrough */
@@ -198,11 +197,11 @@ grpc_error* grpc_deframe_unprocessed_incoming_frames(
198
197
  message_flags |= GRPC_WRITE_INTERNAL_COMPRESS;
199
198
  }
200
199
  p->parsing_frame = grpc_chttp2_incoming_byte_stream_create(
201
- exec_ctx, t, s, p->frame_size, message_flags);
200
+ t, s, p->frame_size, message_flags);
202
201
  *stream_out = &p->parsing_frame->base;
203
202
  if (p->parsing_frame->remaining_bytes == 0) {
204
203
  GRPC_ERROR_UNREF(grpc_chttp2_incoming_byte_stream_finished(
205
- exec_ctx, p->parsing_frame, GRPC_ERROR_NONE, true));
204
+ p->parsing_frame, GRPC_ERROR_NONE, true));
206
205
  p->parsing_frame = nullptr;
207
206
  p->state = GRPC_CHTTP2_DATA_FH_0;
208
207
  }
@@ -213,64 +212,64 @@ grpc_error* grpc_deframe_unprocessed_incoming_frames(
213
212
  slices,
214
213
  grpc_slice_sub(slice, (size_t)(cur - beg), (size_t)(end - beg)));
215
214
  }
216
- grpc_slice_unref_internal(exec_ctx, slice);
215
+ grpc_slice_unref_internal(slice);
217
216
  return GRPC_ERROR_NONE;
218
217
  case GRPC_CHTTP2_DATA_FRAME: {
219
218
  GPR_ASSERT(p->parsing_frame != nullptr);
220
219
  GPR_ASSERT(slice_out != nullptr);
221
220
  if (cur == end) {
222
- grpc_slice_unref_internal(exec_ctx, slice);
221
+ grpc_slice_unref_internal(slice);
223
222
  continue;
224
223
  }
225
224
  uint32_t remaining = (uint32_t)(end - cur);
226
225
  if (remaining == p->frame_size) {
227
226
  s->stats.incoming.data_bytes += remaining;
228
227
  if (GRPC_ERROR_NONE != (error = grpc_chttp2_incoming_byte_stream_push(
229
- exec_ctx, p->parsing_frame,
228
+ p->parsing_frame,
230
229
  grpc_slice_sub(slice, (size_t)(cur - beg),
231
230
  (size_t)(end - beg)),
232
231
  slice_out))) {
233
- grpc_slice_unref_internal(exec_ctx, slice);
232
+ grpc_slice_unref_internal(slice);
234
233
  return error;
235
234
  }
236
235
  if (GRPC_ERROR_NONE !=
237
236
  (error = grpc_chttp2_incoming_byte_stream_finished(
238
- exec_ctx, p->parsing_frame, GRPC_ERROR_NONE, true))) {
239
- grpc_slice_unref_internal(exec_ctx, slice);
237
+ p->parsing_frame, GRPC_ERROR_NONE, true))) {
238
+ grpc_slice_unref_internal(slice);
240
239
  return error;
241
240
  }
242
241
  p->parsing_frame = nullptr;
243
242
  p->state = GRPC_CHTTP2_DATA_FH_0;
244
- grpc_slice_unref_internal(exec_ctx, slice);
243
+ grpc_slice_unref_internal(slice);
245
244
  return GRPC_ERROR_NONE;
246
245
  } else if (remaining < p->frame_size) {
247
246
  s->stats.incoming.data_bytes += remaining;
248
247
  if (GRPC_ERROR_NONE != (error = grpc_chttp2_incoming_byte_stream_push(
249
- exec_ctx, p->parsing_frame,
248
+ p->parsing_frame,
250
249
  grpc_slice_sub(slice, (size_t)(cur - beg),
251
250
  (size_t)(end - beg)),
252
251
  slice_out))) {
253
252
  return error;
254
253
  }
255
254
  p->frame_size -= remaining;
256
- grpc_slice_unref_internal(exec_ctx, slice);
255
+ grpc_slice_unref_internal(slice);
257
256
  return GRPC_ERROR_NONE;
258
257
  } else {
259
258
  GPR_ASSERT(remaining > p->frame_size);
260
259
  s->stats.incoming.data_bytes += p->frame_size;
261
260
  if (GRPC_ERROR_NONE !=
262
261
  (grpc_chttp2_incoming_byte_stream_push(
263
- exec_ctx, p->parsing_frame,
262
+ p->parsing_frame,
264
263
  grpc_slice_sub(slice, (size_t)(cur - beg),
265
264
  (size_t)(cur + p->frame_size - beg)),
266
265
  slice_out))) {
267
- grpc_slice_unref_internal(exec_ctx, slice);
266
+ grpc_slice_unref_internal(slice);
268
267
  return error;
269
268
  }
270
269
  if (GRPC_ERROR_NONE !=
271
270
  (error = grpc_chttp2_incoming_byte_stream_finished(
272
- exec_ctx, p->parsing_frame, GRPC_ERROR_NONE, true))) {
273
- grpc_slice_unref_internal(exec_ctx, slice);
271
+ p->parsing_frame, GRPC_ERROR_NONE, true))) {
272
+ grpc_slice_unref_internal(slice);
274
273
  return error;
275
274
  }
276
275
  p->parsing_frame = nullptr;
@@ -279,7 +278,7 @@ grpc_error* grpc_deframe_unprocessed_incoming_frames(
279
278
  grpc_slice_buffer_undo_take_first(
280
279
  slices,
281
280
  grpc_slice_sub(slice, (size_t)(cur - beg), (size_t)(end - beg)));
282
- grpc_slice_unref_internal(exec_ctx, slice);
281
+ grpc_slice_unref_internal(slice);
283
282
  return GRPC_ERROR_NONE;
284
283
  }
285
284
  }
@@ -289,19 +288,19 @@ grpc_error* grpc_deframe_unprocessed_incoming_frames(
289
288
  return GRPC_ERROR_NONE;
290
289
  }
291
290
 
292
- grpc_error* grpc_chttp2_data_parser_parse(grpc_exec_ctx* exec_ctx, void* parser,
291
+ grpc_error* grpc_chttp2_data_parser_parse(void* parser,
293
292
  grpc_chttp2_transport* t,
294
293
  grpc_chttp2_stream* s,
295
294
  grpc_slice slice, int is_last) {
296
295
  if (!s->pending_byte_stream) {
297
296
  grpc_slice_ref_internal(slice);
298
297
  grpc_slice_buffer_add(&s->frame_storage, slice);
299
- grpc_chttp2_maybe_complete_recv_message(exec_ctx, t, s);
298
+ grpc_chttp2_maybe_complete_recv_message(t, s);
300
299
  } else if (s->on_next) {
301
300
  GPR_ASSERT(s->frame_storage.length == 0);
302
301
  grpc_slice_ref_internal(slice);
303
302
  grpc_slice_buffer_add(&s->unprocessed_incoming_frames_buffer, slice);
304
- GRPC_CLOSURE_SCHED(exec_ctx, s->on_next, GRPC_ERROR_NONE);
303
+ GRPC_CLOSURE_SCHED(s->on_next, GRPC_ERROR_NONE);
305
304
  s->on_next = nullptr;
306
305
  s->unprocessed_incoming_frames_decompressed = false;
307
306
  } else {
@@ -310,8 +309,7 @@ grpc_error* grpc_chttp2_data_parser_parse(grpc_exec_ctx* exec_ctx, void* parser,
310
309
  }
311
310
 
312
311
  if (is_last && s->received_last_frame) {
313
- grpc_chttp2_mark_stream_closed(exec_ctx, t, s, true, false,
314
- GRPC_ERROR_NONE);
312
+ grpc_chttp2_mark_stream_closed(t, s, true, false, GRPC_ERROR_NONE);
315
313
  }
316
314
 
317
315
  return GRPC_ERROR_NONE;
@@ -28,10 +28,6 @@
28
28
  #include "src/core/lib/transport/byte_stream.h"
29
29
  #include "src/core/lib/transport/transport.h"
30
30
 
31
- #ifdef __cplusplus
32
- extern "C" {
33
- #endif
34
-
35
31
  typedef enum {
36
32
  GRPC_CHTTP2_DATA_FH_0,
37
33
  GRPC_CHTTP2_DATA_FH_1,
@@ -58,8 +54,7 @@ typedef struct {
58
54
  /* initialize per-stream state for data frame parsing */
59
55
  grpc_error* grpc_chttp2_data_parser_init(grpc_chttp2_data_parser* parser);
60
56
 
61
- void grpc_chttp2_data_parser_destroy(grpc_exec_ctx* exec_ctx,
62
- grpc_chttp2_data_parser* parser);
57
+ void grpc_chttp2_data_parser_destroy(grpc_chttp2_data_parser* parser);
63
58
 
64
59
  /* start processing a new data frame */
65
60
  grpc_error* grpc_chttp2_data_parser_begin_frame(grpc_chttp2_data_parser* parser,
@@ -69,7 +64,7 @@ grpc_error* grpc_chttp2_data_parser_begin_frame(grpc_chttp2_data_parser* parser,
69
64
 
70
65
  /* handle a slice of a data frame - is_last indicates the last slice of a
71
66
  frame */
72
- grpc_error* grpc_chttp2_data_parser_parse(grpc_exec_ctx* exec_ctx, void* parser,
67
+ grpc_error* grpc_chttp2_data_parser_parse(void* parser,
73
68
  grpc_chttp2_transport* t,
74
69
  grpc_chttp2_stream* s,
75
70
  grpc_slice slice, int is_last);
@@ -80,12 +75,8 @@ void grpc_chttp2_encode_data(uint32_t id, grpc_slice_buffer* inbuf,
80
75
  grpc_slice_buffer* outbuf);
81
76
 
82
77
  grpc_error* grpc_deframe_unprocessed_incoming_frames(
83
- grpc_exec_ctx* exec_ctx, grpc_chttp2_data_parser* p, grpc_chttp2_stream* s,
78
+ grpc_chttp2_data_parser* p, grpc_chttp2_stream* s,
84
79
  grpc_slice_buffer* slices, grpc_slice* slice_out,
85
80
  grpc_byte_stream** stream_out);
86
81
 
87
- #ifdef __cplusplus
88
- }
89
- #endif
90
-
91
82
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_DATA_H */
@@ -52,8 +52,7 @@ grpc_error* grpc_chttp2_goaway_parser_begin_frame(grpc_chttp2_goaway_parser* p,
52
52
  return GRPC_ERROR_NONE;
53
53
  }
54
54
 
55
- grpc_error* grpc_chttp2_goaway_parser_parse(grpc_exec_ctx* exec_ctx,
56
- void* parser,
55
+ grpc_error* grpc_chttp2_goaway_parser_parse(void* parser,
57
56
  grpc_chttp2_transport* t,
58
57
  grpc_chttp2_stream* s,
59
58
  grpc_slice slice, int is_last) {
@@ -135,7 +134,7 @@ grpc_error* grpc_chttp2_goaway_parser_parse(grpc_exec_ctx* exec_ctx,
135
134
  p->state = GRPC_CHTTP2_GOAWAY_DEBUG;
136
135
  if (is_last) {
137
136
  grpc_chttp2_add_incoming_goaway(
138
- exec_ctx, t, (uint32_t)p->error_code,
137
+ t, (uint32_t)p->error_code,
139
138
  grpc_slice_new(p->debug_data, p->debug_length, gpr_free));
140
139
  p->debug_data = nullptr;
141
140
  }
@@ -25,10 +25,6 @@
25
25
  #include "src/core/ext/transport/chttp2/transport/frame.h"
26
26
  #include "src/core/lib/iomgr/exec_ctx.h"
27
27
 
28
- #ifdef __cplusplus
29
- extern "C" {
30
- #endif
31
-
32
28
  typedef enum {
33
29
  GRPC_CHTTP2_GOAWAY_LSI0,
34
30
  GRPC_CHTTP2_GOAWAY_LSI1,
@@ -54,8 +50,7 @@ void grpc_chttp2_goaway_parser_init(grpc_chttp2_goaway_parser* p);
54
50
  void grpc_chttp2_goaway_parser_destroy(grpc_chttp2_goaway_parser* p);
55
51
  grpc_error* grpc_chttp2_goaway_parser_begin_frame(
56
52
  grpc_chttp2_goaway_parser* parser, uint32_t length, uint8_t flags);
57
- grpc_error* grpc_chttp2_goaway_parser_parse(grpc_exec_ctx* exec_ctx,
58
- void* parser,
53
+ grpc_error* grpc_chttp2_goaway_parser_parse(void* parser,
59
54
  grpc_chttp2_transport* t,
60
55
  grpc_chttp2_stream* s,
61
56
  grpc_slice slice, int is_last);
@@ -64,8 +59,4 @@ void grpc_chttp2_goaway_append(uint32_t last_stream_id, uint32_t error_code,
64
59
  grpc_slice debug_data,
65
60
  grpc_slice_buffer* slice_buffer);
66
61
 
67
- #ifdef __cplusplus
68
- }
69
- #endif
70
-
71
62
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_GOAWAY_H */
@@ -68,7 +68,7 @@ grpc_error* grpc_chttp2_ping_parser_begin_frame(grpc_chttp2_ping_parser* parser,
68
68
  return GRPC_ERROR_NONE;
69
69
  }
70
70
 
71
- grpc_error* grpc_chttp2_ping_parser_parse(grpc_exec_ctx* exec_ctx, void* parser,
71
+ grpc_error* grpc_chttp2_ping_parser_parse(void* parser,
72
72
  grpc_chttp2_transport* t,
73
73
  grpc_chttp2_stream* s,
74
74
  grpc_slice slice, int is_last) {
@@ -86,10 +86,10 @@ grpc_error* grpc_chttp2_ping_parser_parse(grpc_exec_ctx* exec_ctx, void* parser,
86
86
  if (p->byte == 8) {
87
87
  GPR_ASSERT(is_last);
88
88
  if (p->is_ack) {
89
- grpc_chttp2_ack_ping(exec_ctx, t, p->opaque_8bytes);
89
+ grpc_chttp2_ack_ping(t, p->opaque_8bytes);
90
90
  } else {
91
91
  if (!t->is_client) {
92
- grpc_millis now = grpc_exec_ctx_now(exec_ctx);
92
+ grpc_millis now = grpc_core::ExecCtx::Get()->Now();
93
93
  grpc_millis next_allowed_ping =
94
94
  t->ping_recv_state.last_ping_recv_time +
95
95
  t->ping_policy.min_recv_ping_interval_without_data;
@@ -104,7 +104,7 @@ grpc_error* grpc_chttp2_ping_parser_parse(grpc_exec_ctx* exec_ctx, void* parser,
104
104
  }
105
105
 
106
106
  if (next_allowed_ping > now) {
107
- grpc_chttp2_add_ping_strike(exec_ctx, t);
107
+ grpc_chttp2_add_ping_strike(t);
108
108
  }
109
109
 
110
110
  t->ping_recv_state.last_ping_recv_time = now;
@@ -116,8 +116,7 @@ grpc_error* grpc_chttp2_ping_parser_parse(grpc_exec_ctx* exec_ctx, void* parser,
116
116
  t->ping_acks, t->ping_ack_capacity * sizeof(*t->ping_acks));
117
117
  }
118
118
  t->ping_acks[t->ping_ack_count++] = p->opaque_8bytes;
119
- grpc_chttp2_initiate_write(exec_ctx, t,
120
- GRPC_CHTTP2_INITIATE_WRITE_PING_RESPONSE);
119
+ grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_PING_RESPONSE);
121
120
  }
122
121
  }
123
122
  }
@@ -23,10 +23,6 @@
23
23
  #include "src/core/ext/transport/chttp2/transport/frame.h"
24
24
  #include "src/core/lib/iomgr/exec_ctx.h"
25
25
 
26
- #ifdef __cplusplus
27
- extern "C" {
28
- #endif
29
-
30
26
  typedef struct {
31
27
  uint8_t byte;
32
28
  uint8_t is_ack;
@@ -37,7 +33,7 @@ grpc_slice grpc_chttp2_ping_create(uint8_t ack, uint64_t opaque_8bytes);
37
33
 
38
34
  grpc_error* grpc_chttp2_ping_parser_begin_frame(grpc_chttp2_ping_parser* parser,
39
35
  uint32_t length, uint8_t flags);
40
- grpc_error* grpc_chttp2_ping_parser_parse(grpc_exec_ctx* exec_ctx, void* parser,
36
+ grpc_error* grpc_chttp2_ping_parser_parse(void* parser,
41
37
  grpc_chttp2_transport* t,
42
38
  grpc_chttp2_stream* s,
43
39
  grpc_slice slice, int is_last);
@@ -45,8 +41,4 @@ grpc_error* grpc_chttp2_ping_parser_parse(grpc_exec_ctx* exec_ctx, void* parser,
45
41
  /* Test-only function for disabling ping ack */
46
42
  void grpc_set_disable_ping_ack(bool disable_ping_ack);
47
43
 
48
- #ifdef __cplusplus
49
- }
50
- #endif
51
-
52
44
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_PING_H */
@@ -69,8 +69,7 @@ grpc_error* grpc_chttp2_rst_stream_parser_begin_frame(
69
69
  return GRPC_ERROR_NONE;
70
70
  }
71
71
 
72
- grpc_error* grpc_chttp2_rst_stream_parser_parse(grpc_exec_ctx* exec_ctx,
73
- void* parser,
72
+ grpc_error* grpc_chttp2_rst_stream_parser_parse(void* parser,
74
73
  grpc_chttp2_transport* t,
75
74
  grpc_chttp2_stream* s,
76
75
  grpc_slice slice, int is_last) {
@@ -103,7 +102,7 @@ grpc_error* grpc_chttp2_rst_stream_parser_parse(grpc_exec_ctx* exec_ctx,
103
102
  GRPC_ERROR_INT_HTTP2_ERROR, (intptr_t)reason);
104
103
  gpr_free(message);
105
104
  }
106
- grpc_chttp2_mark_stream_closed(exec_ctx, t, s, true, true, error);
105
+ grpc_chttp2_mark_stream_closed(t, s, true, true, error);
107
106
  }
108
107
 
109
108
  return GRPC_ERROR_NONE;
@@ -24,10 +24,6 @@
24
24
  #include "src/core/lib/iomgr/exec_ctx.h"
25
25
  #include "src/core/lib/transport/transport.h"
26
26
 
27
- #ifdef __cplusplus
28
- extern "C" {
29
- #endif
30
-
31
27
  typedef struct {
32
28
  uint8_t byte;
33
29
  uint8_t reason_bytes[4];
@@ -38,14 +34,9 @@ grpc_slice grpc_chttp2_rst_stream_create(uint32_t stream_id, uint32_t code,
38
34
 
39
35
  grpc_error* grpc_chttp2_rst_stream_parser_begin_frame(
40
36
  grpc_chttp2_rst_stream_parser* parser, uint32_t length, uint8_t flags);
41
- grpc_error* grpc_chttp2_rst_stream_parser_parse(grpc_exec_ctx* exec_ctx,
42
- void* parser,
37
+ grpc_error* grpc_chttp2_rst_stream_parser_parse(void* parser,
43
38
  grpc_chttp2_transport* t,
44
39
  grpc_chttp2_stream* s,
45
40
  grpc_slice slice, int is_last);
46
41
 
47
- #ifdef __cplusplus
48
- }
49
- #endif
50
-
51
42
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_RST_STREAM_H */
@@ -108,8 +108,7 @@ grpc_error* grpc_chttp2_settings_parser_begin_frame(
108
108
  }
109
109
  }
110
110
 
111
- grpc_error* grpc_chttp2_settings_parser_parse(grpc_exec_ctx* exec_ctx, void* p,
112
- grpc_chttp2_transport* t,
111
+ grpc_error* grpc_chttp2_settings_parser_parse(void* p, grpc_chttp2_transport* t,
113
112
  grpc_chttp2_stream* s,
114
113
  grpc_slice slice, int is_last) {
115
114
  grpc_chttp2_settings_parser* parser = (grpc_chttp2_settings_parser*)p;
@@ -132,7 +131,7 @@ grpc_error* grpc_chttp2_settings_parser_parse(grpc_exec_ctx* exec_ctx, void* p,
132
131
  GRPC_CHTTP2_NUM_SETTINGS * sizeof(uint32_t));
133
132
  grpc_slice_buffer_add(&t->qbuf, grpc_chttp2_settings_ack_create());
134
133
  if (t->notify_on_receive_settings != nullptr) {
135
- GRPC_CLOSURE_SCHED(exec_ctx, t->notify_on_receive_settings,
134
+ GRPC_CLOSURE_SCHED(t->notify_on_receive_settings,
136
135
  GRPC_ERROR_NONE);
137
136
  t->notify_on_receive_settings = nullptr;
138
137
  }
@@ -187,6 +186,12 @@ grpc_error* grpc_chttp2_settings_parser_parse(grpc_exec_ctx* exec_ctx, void* p,
187
186
  if (grpc_wire_id_to_setting_id(parser->id, &id)) {
188
187
  const grpc_chttp2_setting_parameters* sp =
189
188
  &grpc_chttp2_settings_parameters[id];
189
+ // If flow control is disabled we skip these.
190
+ if (!t->flow_control->flow_control_enabled() &&
191
+ (id == GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE ||
192
+ id == GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE)) {
193
+ continue;
194
+ }
190
195
  if (parser->value < sp->min_value || parser->value > sp->max_value) {
191
196
  switch (sp->invalid_value_behavior) {
192
197
  case GRPC_CHTTP2_CLAMP_INVALID_VALUE: