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
@@ -61,17 +61,15 @@ struct grpc_combiner {
61
61
  gpr_refcount refs;
62
62
  };
63
63
 
64
- static void combiner_exec(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
65
- grpc_error* error);
66
- static void combiner_finally_exec(grpc_exec_ctx* exec_ctx,
67
- grpc_closure* closure, grpc_error* error);
64
+ static void combiner_exec(grpc_closure* closure, grpc_error* error);
65
+ static void combiner_finally_exec(grpc_closure* closure, grpc_error* error);
68
66
 
69
67
  static const grpc_closure_scheduler_vtable scheduler = {
70
68
  combiner_exec, combiner_exec, "combiner:immediately"};
71
69
  static const grpc_closure_scheduler_vtable finally_scheduler = {
72
70
  combiner_finally_exec, combiner_finally_exec, "combiner:finally"};
73
71
 
74
- static void offload(grpc_exec_ctx* exec_ctx, void* arg, grpc_error* error);
72
+ static void offload(void* arg, grpc_error* error);
75
73
 
76
74
  grpc_combiner* grpc_combiner_create(void) {
77
75
  grpc_combiner* lock = (grpc_combiner*)gpr_zalloc(sizeof(*lock));
@@ -87,19 +85,19 @@ grpc_combiner* grpc_combiner_create(void) {
87
85
  return lock;
88
86
  }
89
87
 
90
- static void really_destroy(grpc_exec_ctx* exec_ctx, grpc_combiner* lock) {
88
+ static void really_destroy(grpc_combiner* lock) {
91
89
  GRPC_COMBINER_TRACE(gpr_log(GPR_DEBUG, "C:%p really_destroy", lock));
92
90
  GPR_ASSERT(gpr_atm_no_barrier_load(&lock->state) == 0);
93
91
  gpr_mpscq_destroy(&lock->queue);
94
92
  gpr_free(lock);
95
93
  }
96
94
 
97
- static void start_destroy(grpc_exec_ctx* exec_ctx, grpc_combiner* lock) {
95
+ static void start_destroy(grpc_combiner* lock) {
98
96
  gpr_atm old_state = gpr_atm_full_fetch_add(&lock->state, -STATE_UNORPHANED);
99
97
  GRPC_COMBINER_TRACE(gpr_log(
100
98
  GPR_DEBUG, "C:%p really_destroy old_state=%" PRIdPTR, lock, old_state));
101
99
  if (old_state == 1) {
102
- really_destroy(exec_ctx, lock);
100
+ really_destroy(lock);
103
101
  }
104
102
  }
105
103
 
@@ -115,11 +113,10 @@ static void start_destroy(grpc_exec_ctx* exec_ctx, grpc_combiner* lock) {
115
113
  #define GRPC_COMBINER_DEBUG_SPAM(op, delta)
116
114
  #endif
117
115
 
118
- void grpc_combiner_unref(grpc_exec_ctx* exec_ctx,
119
- grpc_combiner* lock GRPC_COMBINER_DEBUG_ARGS) {
116
+ void grpc_combiner_unref(grpc_combiner* lock GRPC_COMBINER_DEBUG_ARGS) {
120
117
  GRPC_COMBINER_DEBUG_SPAM("UNREF", -1);
121
118
  if (gpr_unref(&lock->refs)) {
122
- start_destroy(exec_ctx, lock);
119
+ start_destroy(lock);
123
120
  }
124
121
  }
125
122
 
@@ -129,23 +126,25 @@ grpc_combiner* grpc_combiner_ref(grpc_combiner* lock GRPC_COMBINER_DEBUG_ARGS) {
129
126
  return lock;
130
127
  }
131
128
 
132
- static void push_last_on_exec_ctx(grpc_exec_ctx* exec_ctx,
133
- grpc_combiner* lock) {
129
+ static void push_last_on_exec_ctx(grpc_combiner* lock) {
134
130
  lock->next_combiner_on_this_exec_ctx = nullptr;
135
- if (exec_ctx->active_combiner == nullptr) {
136
- exec_ctx->active_combiner = exec_ctx->last_combiner = lock;
131
+ if (grpc_core::ExecCtx::Get()->combiner_data()->active_combiner == nullptr) {
132
+ grpc_core::ExecCtx::Get()->combiner_data()->active_combiner =
133
+ grpc_core::ExecCtx::Get()->combiner_data()->last_combiner = lock;
137
134
  } else {
138
- exec_ctx->last_combiner->next_combiner_on_this_exec_ctx = lock;
139
- exec_ctx->last_combiner = lock;
135
+ grpc_core::ExecCtx::Get()
136
+ ->combiner_data()
137
+ ->last_combiner->next_combiner_on_this_exec_ctx = lock;
138
+ grpc_core::ExecCtx::Get()->combiner_data()->last_combiner = lock;
140
139
  }
141
140
  }
142
141
 
143
- static void push_first_on_exec_ctx(grpc_exec_ctx* exec_ctx,
144
- grpc_combiner* lock) {
145
- lock->next_combiner_on_this_exec_ctx = exec_ctx->active_combiner;
146
- exec_ctx->active_combiner = lock;
142
+ static void push_first_on_exec_ctx(grpc_combiner* lock) {
143
+ lock->next_combiner_on_this_exec_ctx =
144
+ grpc_core::ExecCtx::Get()->combiner_data()->active_combiner;
145
+ grpc_core::ExecCtx::Get()->combiner_data()->active_combiner = lock;
147
146
  if (lock->next_combiner_on_this_exec_ctx == nullptr) {
148
- exec_ctx->last_combiner = lock;
147
+ grpc_core::ExecCtx::Get()->combiner_data()->last_combiner = lock;
149
148
  }
150
149
  }
151
150
 
@@ -153,9 +152,8 @@ static void push_first_on_exec_ctx(grpc_exec_ctx* exec_ctx,
153
152
  ((grpc_combiner*)(((char*)((closure)->scheduler)) - \
154
153
  offsetof(grpc_combiner, scheduler_name)))
155
154
 
156
- static void combiner_exec(grpc_exec_ctx* exec_ctx, grpc_closure* cl,
157
- grpc_error* error) {
158
- GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_ITEMS(exec_ctx);
155
+ static void combiner_exec(grpc_closure* cl, grpc_error* error) {
156
+ GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_ITEMS();
159
157
  GPR_TIMER_BEGIN("combiner.execute", 0);
160
158
  grpc_combiner* lock = COMBINER_FROM_CLOSURE_SCHEDULER(cl, scheduler);
161
159
  gpr_atm last = gpr_atm_full_fetch_add(&lock->state, STATE_ELEM_COUNT_LOW_BIT);
@@ -163,19 +161,19 @@ static void combiner_exec(grpc_exec_ctx* exec_ctx, grpc_closure* cl,
163
161
  "C:%p grpc_combiner_execute c=%p last=%" PRIdPTR,
164
162
  lock, cl, last));
165
163
  if (last == 1) {
166
- GRPC_STATS_INC_COMBINER_LOCKS_INITIATED(exec_ctx);
164
+ GRPC_STATS_INC_COMBINER_LOCKS_INITIATED();
167
165
  GPR_TIMER_MARK("combiner.initiated", 0);
168
166
  gpr_atm_no_barrier_store(&lock->initiating_exec_ctx_or_null,
169
- (gpr_atm)exec_ctx);
167
+ (gpr_atm)grpc_core::ExecCtx::Get());
170
168
  // first element on this list: add it to the list of combiner locks
171
169
  // executing within this exec_ctx
172
- push_last_on_exec_ctx(exec_ctx, lock);
170
+ push_last_on_exec_ctx(lock);
173
171
  } else {
174
172
  // there may be a race with setting here: if that happens, we may delay
175
173
  // offload for one or two actions, and that's fine
176
174
  gpr_atm initiator =
177
175
  gpr_atm_no_barrier_load(&lock->initiating_exec_ctx_or_null);
178
- if (initiator != 0 && initiator != (gpr_atm)exec_ctx) {
176
+ if (initiator != 0 && initiator != (gpr_atm)grpc_core::ExecCtx::Get()) {
179
177
  gpr_atm_no_barrier_store(&lock->initiating_exec_ctx_or_null, 0);
180
178
  }
181
179
  }
@@ -186,29 +184,32 @@ static void combiner_exec(grpc_exec_ctx* exec_ctx, grpc_closure* cl,
186
184
  GPR_TIMER_END("combiner.execute", 0);
187
185
  }
188
186
 
189
- static void move_next(grpc_exec_ctx* exec_ctx) {
190
- exec_ctx->active_combiner =
191
- exec_ctx->active_combiner->next_combiner_on_this_exec_ctx;
192
- if (exec_ctx->active_combiner == nullptr) {
193
- exec_ctx->last_combiner = nullptr;
187
+ static void move_next() {
188
+ grpc_core::ExecCtx::Get()->combiner_data()->active_combiner =
189
+ grpc_core::ExecCtx::Get()
190
+ ->combiner_data()
191
+ ->active_combiner->next_combiner_on_this_exec_ctx;
192
+ if (grpc_core::ExecCtx::Get()->combiner_data()->active_combiner == nullptr) {
193
+ grpc_core::ExecCtx::Get()->combiner_data()->last_combiner = nullptr;
194
194
  }
195
195
  }
196
196
 
197
- static void offload(grpc_exec_ctx* exec_ctx, void* arg, grpc_error* error) {
197
+ static void offload(void* arg, grpc_error* error) {
198
198
  grpc_combiner* lock = (grpc_combiner*)arg;
199
- push_last_on_exec_ctx(exec_ctx, lock);
199
+ push_last_on_exec_ctx(lock);
200
200
  }
201
201
 
202
- static void queue_offload(grpc_exec_ctx* exec_ctx, grpc_combiner* lock) {
203
- GRPC_STATS_INC_COMBINER_LOCKS_OFFLOADED(exec_ctx);
204
- move_next(exec_ctx);
202
+ static void queue_offload(grpc_combiner* lock) {
203
+ GRPC_STATS_INC_COMBINER_LOCKS_OFFLOADED();
204
+ move_next();
205
205
  GRPC_COMBINER_TRACE(gpr_log(GPR_DEBUG, "C:%p queue_offload", lock));
206
- GRPC_CLOSURE_SCHED(exec_ctx, &lock->offload, GRPC_ERROR_NONE);
206
+ GRPC_CLOSURE_SCHED(&lock->offload, GRPC_ERROR_NONE);
207
207
  }
208
208
 
209
- bool grpc_combiner_continue_exec_ctx(grpc_exec_ctx* exec_ctx) {
209
+ bool grpc_combiner_continue_exec_ctx() {
210
210
  GPR_TIMER_BEGIN("combiner.continue_exec_ctx", 0);
211
- grpc_combiner* lock = exec_ctx->active_combiner;
211
+ grpc_combiner* lock =
212
+ grpc_core::ExecCtx::Get()->combiner_data()->active_combiner;
212
213
  if (lock == nullptr) {
213
214
  GPR_TIMER_END("combiner.continue_exec_ctx", 0);
214
215
  return false;
@@ -223,15 +224,15 @@ bool grpc_combiner_continue_exec_ctx(grpc_exec_ctx* exec_ctx) {
223
224
  "exec_ctx_ready_to_finish=%d "
224
225
  "time_to_execute_final_list=%d",
225
226
  lock, contended,
226
- grpc_exec_ctx_ready_to_finish(exec_ctx),
227
+ grpc_core::ExecCtx::Get()->IsReadyToFinish(),
227
228
  lock->time_to_execute_final_list));
228
229
 
229
- if (contended && grpc_exec_ctx_ready_to_finish(exec_ctx) &&
230
+ if (contended && grpc_core::ExecCtx::Get()->IsReadyToFinish() &&
230
231
  grpc_executor_is_threaded()) {
231
232
  GPR_TIMER_MARK("offload_from_finished_exec_ctx", 0);
232
233
  // this execution context wants to move on: schedule remaining work to be
233
234
  // picked up on the executor
234
- queue_offload(exec_ctx, lock);
235
+ queue_offload(lock);
235
236
  GPR_TIMER_END("combiner.continue_exec_ctx", 0);
236
237
  return true;
237
238
  }
@@ -247,7 +248,7 @@ bool grpc_combiner_continue_exec_ctx(grpc_exec_ctx* exec_ctx) {
247
248
  // queue is in an inconsistent state: use this as a cue that we should
248
249
  // go off and do something else for a while (and come back later)
249
250
  GPR_TIMER_MARK("delay_busy", 0);
250
- queue_offload(exec_ctx, lock);
251
+ queue_offload(lock);
251
252
  GPR_TIMER_END("combiner.continue_exec_ctx", 0);
252
253
  return true;
253
254
  }
@@ -257,7 +258,7 @@ bool grpc_combiner_continue_exec_ctx(grpc_exec_ctx* exec_ctx) {
257
258
  #ifndef NDEBUG
258
259
  cl->scheduled = false;
259
260
  #endif
260
- cl->cb(exec_ctx, cl->cb_arg, cl_err);
261
+ cl->cb(cl->cb_arg, cl_err);
261
262
  GRPC_ERROR_UNREF(cl_err);
262
263
  GPR_TIMER_END("combiner.exec1", 0);
263
264
  } else {
@@ -274,7 +275,7 @@ bool grpc_combiner_continue_exec_ctx(grpc_exec_ctx* exec_ctx) {
274
275
  #ifndef NDEBUG
275
276
  c->scheduled = false;
276
277
  #endif
277
- c->cb(exec_ctx, c->cb_arg, error);
278
+ c->cb(c->cb_arg, error);
278
279
  GRPC_ERROR_UNREF(error);
279
280
  c = next;
280
281
  GPR_TIMER_END("combiner.exec_1final", 0);
@@ -282,7 +283,7 @@ bool grpc_combiner_continue_exec_ctx(grpc_exec_ctx* exec_ctx) {
282
283
  }
283
284
 
284
285
  GPR_TIMER_MARK("unref", 0);
285
- move_next(exec_ctx);
286
+ move_next();
286
287
  lock->time_to_execute_final_list = false;
287
288
  gpr_atm old_state =
288
289
  gpr_atm_full_fetch_add(&lock->state, -STATE_ELEM_COUNT_LOW_BIT);
@@ -311,7 +312,7 @@ bool grpc_combiner_continue_exec_ctx(grpc_exec_ctx* exec_ctx) {
311
312
  return true;
312
313
  case OLD_STATE_WAS(true, 1):
313
314
  // and one count, one orphaned --> unlocked and orphaned
314
- really_destroy(exec_ctx, lock);
315
+ really_destroy(lock);
315
316
  GPR_TIMER_END("combiner.continue_exec_ctx", 0);
316
317
  return true;
317
318
  case OLD_STATE_WAS(false, 0):
@@ -321,27 +322,24 @@ bool grpc_combiner_continue_exec_ctx(grpc_exec_ctx* exec_ctx) {
321
322
  GPR_TIMER_END("combiner.continue_exec_ctx", 0);
322
323
  GPR_UNREACHABLE_CODE(return true);
323
324
  }
324
- push_first_on_exec_ctx(exec_ctx, lock);
325
+ push_first_on_exec_ctx(lock);
325
326
  GPR_TIMER_END("combiner.continue_exec_ctx", 0);
326
327
  return true;
327
328
  }
328
329
 
329
- static void enqueue_finally(grpc_exec_ctx* exec_ctx, void* closure,
330
- grpc_error* error);
330
+ static void enqueue_finally(void* closure, grpc_error* error);
331
331
 
332
- static void combiner_finally_exec(grpc_exec_ctx* exec_ctx,
333
- grpc_closure* closure, grpc_error* error) {
334
- GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_FINAL_ITEMS(exec_ctx);
332
+ static void combiner_finally_exec(grpc_closure* closure, grpc_error* error) {
333
+ GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_FINAL_ITEMS();
335
334
  grpc_combiner* lock =
336
335
  COMBINER_FROM_CLOSURE_SCHEDULER(closure, finally_scheduler);
337
- GRPC_COMBINER_TRACE(gpr_log(GPR_DEBUG,
338
- "C:%p grpc_combiner_execute_finally c=%p; ac=%p",
339
- lock, closure, exec_ctx->active_combiner));
336
+ GRPC_COMBINER_TRACE(gpr_log(
337
+ GPR_DEBUG, "C:%p grpc_combiner_execute_finally c=%p; ac=%p", lock,
338
+ closure, grpc_core::ExecCtx::Get()->combiner_data()->active_combiner));
340
339
  GPR_TIMER_BEGIN("combiner.execute_finally", 0);
341
- if (exec_ctx->active_combiner != lock) {
340
+ if (grpc_core::ExecCtx::Get()->combiner_data()->active_combiner != lock) {
342
341
  GPR_TIMER_MARK("slowpath", 0);
343
- GRPC_CLOSURE_SCHED(exec_ctx,
344
- GRPC_CLOSURE_CREATE(enqueue_finally, closure,
342
+ GRPC_CLOSURE_SCHED(GRPC_CLOSURE_CREATE(enqueue_finally, closure,
345
343
  grpc_combiner_scheduler(lock)),
346
344
  error);
347
345
  GPR_TIMER_END("combiner.execute_finally", 0);
@@ -355,10 +353,8 @@ static void combiner_finally_exec(grpc_exec_ctx* exec_ctx,
355
353
  GPR_TIMER_END("combiner.execute_finally", 0);
356
354
  }
357
355
 
358
- static void enqueue_finally(grpc_exec_ctx* exec_ctx, void* closure,
359
- grpc_error* error) {
360
- combiner_finally_exec(exec_ctx, (grpc_closure*)closure,
361
- GRPC_ERROR_REF(error));
356
+ static void enqueue_finally(void* closure, grpc_error* error) {
357
+ combiner_finally_exec((grpc_closure*)closure, GRPC_ERROR_REF(error));
362
358
  }
363
359
 
364
360
  grpc_closure_scheduler* grpc_combiner_scheduler(grpc_combiner* combiner) {
@@ -23,12 +23,8 @@
23
23
 
24
24
  #include <grpc/support/atm.h>
25
25
  #include "src/core/lib/debug/trace.h"
26
+ #include "src/core/lib/gpr/mpscq.h"
26
27
  #include "src/core/lib/iomgr/exec_ctx.h"
27
- #include "src/core/lib/support/mpscq.h"
28
-
29
- #ifdef __cplusplus
30
- extern "C" {
31
- #endif
32
28
 
33
29
  // Provides serialized access to some resource.
34
30
  // Each action queued on a combiner is executed serially in a borrowed thread.
@@ -44,31 +40,25 @@ grpc_combiner* grpc_combiner_create(void);
44
40
  , const char *file, int line, const char *reason
45
41
  #define GRPC_COMBINER_REF(combiner, reason) \
46
42
  grpc_combiner_ref((combiner), __FILE__, __LINE__, (reason))
47
- #define GRPC_COMBINER_UNREF(exec_ctx, combiner, reason) \
48
- grpc_combiner_unref((exec_ctx), (combiner), __FILE__, __LINE__, (reason))
43
+ #define GRPC_COMBINER_UNREF(combiner, reason) \
44
+ grpc_combiner_unref((combiner), __FILE__, __LINE__, (reason))
49
45
  #else
50
46
  #define GRPC_COMBINER_DEBUG_ARGS
51
47
  #define GRPC_COMBINER_REF(combiner, reason) grpc_combiner_ref((combiner))
52
- #define GRPC_COMBINER_UNREF(exec_ctx, combiner, reason) \
53
- grpc_combiner_unref((exec_ctx), (combiner))
48
+ #define GRPC_COMBINER_UNREF(combiner, reason) grpc_combiner_unref((combiner))
54
49
  #endif
55
50
 
56
51
  // Ref/unref the lock, for when we're sharing the lock ownership
57
52
  // Prefer to use the macros above
58
53
  grpc_combiner* grpc_combiner_ref(grpc_combiner* lock GRPC_COMBINER_DEBUG_ARGS);
59
- void grpc_combiner_unref(grpc_exec_ctx* exec_ctx,
60
- grpc_combiner* lock GRPC_COMBINER_DEBUG_ARGS);
54
+ void grpc_combiner_unref(grpc_combiner* lock GRPC_COMBINER_DEBUG_ARGS);
61
55
  // Fetch a scheduler to schedule closures against
62
56
  grpc_closure_scheduler* grpc_combiner_scheduler(grpc_combiner* lock);
63
57
  // Scheduler to execute \a action within the lock just prior to unlocking.
64
58
  grpc_closure_scheduler* grpc_combiner_finally_scheduler(grpc_combiner* lock);
65
59
 
66
- bool grpc_combiner_continue_exec_ctx(grpc_exec_ctx* exec_ctx);
60
+ bool grpc_combiner_continue_exec_ctx();
67
61
 
68
62
  extern grpc_core::TraceFlag grpc_combiner_trace;
69
63
 
70
- #ifdef __cplusplus
71
- }
72
- #endif
73
-
74
64
  #endif /* GRPC_CORE_LIB_IOMGR_COMBINER_H */
@@ -18,41 +18,35 @@
18
18
 
19
19
  #include "src/core/lib/iomgr/endpoint.h"
20
20
 
21
- void grpc_endpoint_read(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
22
- grpc_slice_buffer* slices, grpc_closure* cb) {
23
- ep->vtable->read(exec_ctx, ep, slices, cb);
21
+ void grpc_endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* slices,
22
+ grpc_closure* cb) {
23
+ ep->vtable->read(ep, slices, cb);
24
24
  }
25
25
 
26
- void grpc_endpoint_write(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
27
- grpc_slice_buffer* slices, grpc_closure* cb) {
28
- ep->vtable->write(exec_ctx, ep, slices, cb);
26
+ void grpc_endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
27
+ grpc_closure* cb) {
28
+ ep->vtable->write(ep, slices, cb);
29
29
  }
30
30
 
31
- void grpc_endpoint_add_to_pollset(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
32
- grpc_pollset* pollset) {
33
- ep->vtable->add_to_pollset(exec_ctx, ep, pollset);
31
+ void grpc_endpoint_add_to_pollset(grpc_endpoint* ep, grpc_pollset* pollset) {
32
+ ep->vtable->add_to_pollset(ep, pollset);
34
33
  }
35
34
 
36
- void grpc_endpoint_add_to_pollset_set(grpc_exec_ctx* exec_ctx,
37
- grpc_endpoint* ep,
35
+ void grpc_endpoint_add_to_pollset_set(grpc_endpoint* ep,
38
36
  grpc_pollset_set* pollset_set) {
39
- ep->vtable->add_to_pollset_set(exec_ctx, ep, pollset_set);
37
+ ep->vtable->add_to_pollset_set(ep, pollset_set);
40
38
  }
41
39
 
42
- void grpc_endpoint_delete_from_pollset_set(grpc_exec_ctx* exec_ctx,
43
- grpc_endpoint* ep,
40
+ void grpc_endpoint_delete_from_pollset_set(grpc_endpoint* ep,
44
41
  grpc_pollset_set* pollset_set) {
45
- ep->vtable->delete_from_pollset_set(exec_ctx, ep, pollset_set);
42
+ ep->vtable->delete_from_pollset_set(ep, pollset_set);
46
43
  }
47
44
 
48
- void grpc_endpoint_shutdown(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
49
- grpc_error* why) {
50
- ep->vtable->shutdown(exec_ctx, ep, why);
45
+ void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error* why) {
46
+ ep->vtable->shutdown(ep, why);
51
47
  }
52
48
 
53
- void grpc_endpoint_destroy(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep) {
54
- ep->vtable->destroy(exec_ctx, ep);
55
- }
49
+ void grpc_endpoint_destroy(grpc_endpoint* ep) { ep->vtable->destroy(ep); }
56
50
 
57
51
  char* grpc_endpoint_get_peer(grpc_endpoint* ep) {
58
52
  return ep->vtable->get_peer(ep);
@@ -26,10 +26,6 @@
26
26
  #include "src/core/lib/iomgr/pollset_set.h"
27
27
  #include "src/core/lib/iomgr/resource_quota.h"
28
28
 
29
- #ifdef __cplusplus
30
- extern "C" {
31
- #endif
32
-
33
29
  /* An endpoint caps a streaming channel between two communicating processes.
34
30
  Examples may be: a tcp socket, <stdin+stdout>, or some shared memory. */
35
31
 
@@ -37,18 +33,13 @@ typedef struct grpc_endpoint grpc_endpoint;
37
33
  typedef struct grpc_endpoint_vtable grpc_endpoint_vtable;
38
34
 
39
35
  struct grpc_endpoint_vtable {
40
- void (*read)(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
41
- grpc_slice_buffer* slices, grpc_closure* cb);
42
- void (*write)(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
43
- grpc_slice_buffer* slices, grpc_closure* cb);
44
- void (*add_to_pollset)(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
45
- grpc_pollset* pollset);
46
- void (*add_to_pollset_set)(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
47
- grpc_pollset_set* pollset);
48
- void (*delete_from_pollset_set)(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
49
- grpc_pollset_set* pollset);
50
- void (*shutdown)(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep, grpc_error* why);
51
- void (*destroy)(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep);
36
+ void (*read)(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb);
37
+ void (*write)(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb);
38
+ void (*add_to_pollset)(grpc_endpoint* ep, grpc_pollset* pollset);
39
+ void (*add_to_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
40
+ void (*delete_from_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
41
+ void (*shutdown)(grpc_endpoint* ep, grpc_error* why);
42
+ void (*destroy)(grpc_endpoint* ep);
52
43
  grpc_resource_user* (*get_resource_user)(grpc_endpoint* ep);
53
44
  char* (*get_peer)(grpc_endpoint* ep);
54
45
  int (*get_fd)(grpc_endpoint* ep);
@@ -59,8 +50,8 @@ struct grpc_endpoint_vtable {
59
50
  indicates the endpoint is closed.
60
51
  Valid slices may be placed into \a slices even when the callback is
61
52
  invoked with error != GRPC_ERROR_NONE. */
62
- void grpc_endpoint_read(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
63
- grpc_slice_buffer* slices, grpc_closure* cb);
53
+ void grpc_endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* slices,
54
+ grpc_closure* cb);
64
55
 
65
56
  char* grpc_endpoint_get_peer(grpc_endpoint* ep);
66
57
 
@@ -78,26 +69,22 @@ int grpc_endpoint_get_fd(grpc_endpoint* ep);
78
69
  No guarantee is made to the content of slices after a write EXCEPT that
79
70
  it is a valid slice buffer.
80
71
  */
81
- void grpc_endpoint_write(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
82
- grpc_slice_buffer* slices, grpc_closure* cb);
72
+ void grpc_endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
73
+ grpc_closure* cb);
83
74
 
84
75
  /* Causes any pending and future read/write callbacks to run immediately with
85
76
  success==0 */
86
- void grpc_endpoint_shutdown(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
87
- grpc_error* why);
88
- void grpc_endpoint_destroy(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep);
77
+ void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error* why);
78
+ void grpc_endpoint_destroy(grpc_endpoint* ep);
89
79
 
90
80
  /* Add an endpoint to a pollset or pollset_set, so that when the pollset is
91
81
  polled, events from this endpoint are considered */
92
- void grpc_endpoint_add_to_pollset(grpc_exec_ctx* exec_ctx, grpc_endpoint* ep,
93
- grpc_pollset* pollset);
94
- void grpc_endpoint_add_to_pollset_set(grpc_exec_ctx* exec_ctx,
95
- grpc_endpoint* ep,
82
+ void grpc_endpoint_add_to_pollset(grpc_endpoint* ep, grpc_pollset* pollset);
83
+ void grpc_endpoint_add_to_pollset_set(grpc_endpoint* ep,
96
84
  grpc_pollset_set* pollset_set);
97
85
 
98
86
  /* Delete an endpoint from a pollset_set */
99
- void grpc_endpoint_delete_from_pollset_set(grpc_exec_ctx* exec_ctx,
100
- grpc_endpoint* ep,
87
+ void grpc_endpoint_delete_from_pollset_set(grpc_endpoint* ep,
101
88
  grpc_pollset_set* pollset_set);
102
89
 
103
90
  grpc_resource_user* grpc_endpoint_get_resource_user(grpc_endpoint* endpoint);
@@ -106,8 +93,4 @@ struct grpc_endpoint {
106
93
  const grpc_endpoint_vtable* vtable;
107
94
  };
108
95
 
109
- #ifdef __cplusplus
110
- }
111
- #endif
112
-
113
96
  #endif /* GRPC_CORE_LIB_IOMGR_ENDPOINT_H */