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
@@ -21,15 +21,7 @@
21
21
 
22
22
  #include "src/core/lib/iomgr/ev_posix.h"
23
23
 
24
- #ifdef __cplusplus
25
- extern "C" {
26
- #endif
27
-
28
24
  const grpc_event_engine_vtable* grpc_init_poll_posix(bool explicit_request);
29
25
  const grpc_event_engine_vtable* grpc_init_poll_cv_posix(bool explicit_request);
30
26
 
31
- #ifdef __cplusplus
32
- }
33
- #endif
34
-
35
27
  #endif /* GRPC_CORE_LIB_IOMGR_EV_POLL_POSIX_H */
@@ -30,11 +30,11 @@
30
30
  #include <grpc/support/useful.h>
31
31
 
32
32
  #include "src/core/lib/debug/trace.h"
33
+ #include "src/core/lib/gpr/env.h"
33
34
  #include "src/core/lib/iomgr/ev_epoll1_linux.h"
34
35
  #include "src/core/lib/iomgr/ev_epollex_linux.h"
35
36
  #include "src/core/lib/iomgr/ev_epollsig_linux.h"
36
37
  #include "src/core/lib/iomgr/ev_poll_posix.h"
37
- #include "src/core/lib/support/env.h"
38
38
 
39
39
  grpc_core::TraceFlag grpc_polling_trace(false,
40
40
  "polling"); /* Disabled by default */
@@ -46,7 +46,7 @@ grpc_poll_function_type grpc_poll_function = poll;
46
46
 
47
47
  grpc_wakeup_fd grpc_global_wakeup_fd;
48
48
 
49
- static const grpc_event_engine_vtable* g_event_engine;
49
+ static const grpc_event_engine_vtable* g_event_engine = nullptr;
50
50
  static const char* g_poll_strategy_name = nullptr;
51
51
 
52
52
  typedef const grpc_event_engine_vtable* (*event_engine_factory_fn)(
@@ -59,8 +59,6 @@ typedef struct {
59
59
 
60
60
  namespace {
61
61
 
62
- extern "C" {
63
-
64
62
  grpc_poll_function_type real_poll_function;
65
63
 
66
64
  int dummy_poll(struct pollfd fds[], nfds_t nfds, int timeout) {
@@ -72,7 +70,6 @@ int dummy_poll(struct pollfd fds[], nfds_t nfds, int timeout) {
72
70
  return -1;
73
71
  }
74
72
  }
75
- } // extern "C"
76
73
 
77
74
  const grpc_event_engine_vtable* init_non_polling(bool explicit_request) {
78
75
  if (!explicit_request) {
@@ -187,28 +184,25 @@ int grpc_fd_wrapped_fd(grpc_fd* fd) {
187
184
  return g_event_engine->fd_wrapped_fd(fd);
188
185
  }
189
186
 
190
- void grpc_fd_orphan(grpc_exec_ctx* exec_ctx, grpc_fd* fd, grpc_closure* on_done,
191
- int* release_fd, bool already_closed, const char* reason) {
192
- g_event_engine->fd_orphan(exec_ctx, fd, on_done, release_fd, already_closed,
193
- reason);
187
+ void grpc_fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
188
+ bool already_closed, const char* reason) {
189
+ g_event_engine->fd_orphan(fd, on_done, release_fd, already_closed, reason);
194
190
  }
195
191
 
196
- void grpc_fd_shutdown(grpc_exec_ctx* exec_ctx, grpc_fd* fd, grpc_error* why) {
197
- g_event_engine->fd_shutdown(exec_ctx, fd, why);
192
+ void grpc_fd_shutdown(grpc_fd* fd, grpc_error* why) {
193
+ g_event_engine->fd_shutdown(fd, why);
198
194
  }
199
195
 
200
196
  bool grpc_fd_is_shutdown(grpc_fd* fd) {
201
197
  return g_event_engine->fd_is_shutdown(fd);
202
198
  }
203
199
 
204
- void grpc_fd_notify_on_read(grpc_exec_ctx* exec_ctx, grpc_fd* fd,
205
- grpc_closure* closure) {
206
- g_event_engine->fd_notify_on_read(exec_ctx, fd, closure);
200
+ void grpc_fd_notify_on_read(grpc_fd* fd, grpc_closure* closure) {
201
+ g_event_engine->fd_notify_on_read(fd, closure);
207
202
  }
208
203
 
209
- void grpc_fd_notify_on_write(grpc_exec_ctx* exec_ctx, grpc_fd* fd,
210
- grpc_closure* closure) {
211
- g_event_engine->fd_notify_on_write(exec_ctx, fd, closure);
204
+ void grpc_fd_notify_on_write(grpc_fd* fd, grpc_closure* closure) {
205
+ g_event_engine->fd_notify_on_write(fd, closure);
212
206
  }
213
207
 
214
208
  size_t grpc_pollset_size(void) { return g_event_engine->pollset_size; }
@@ -217,72 +211,63 @@ void grpc_pollset_init(grpc_pollset* pollset, gpr_mu** mu) {
217
211
  g_event_engine->pollset_init(pollset, mu);
218
212
  }
219
213
 
220
- void grpc_pollset_shutdown(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
221
- grpc_closure* closure) {
222
- g_event_engine->pollset_shutdown(exec_ctx, pollset, closure);
214
+ void grpc_pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
215
+ g_event_engine->pollset_shutdown(pollset, closure);
223
216
  }
224
217
 
225
- void grpc_pollset_destroy(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset) {
226
- g_event_engine->pollset_destroy(exec_ctx, pollset);
218
+ void grpc_pollset_destroy(grpc_pollset* pollset) {
219
+ g_event_engine->pollset_destroy(pollset);
227
220
  }
228
221
 
229
- grpc_error* grpc_pollset_work(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
222
+ grpc_error* grpc_pollset_work(grpc_pollset* pollset,
230
223
  grpc_pollset_worker** worker,
231
224
  grpc_millis deadline) {
232
- return g_event_engine->pollset_work(exec_ctx, pollset, worker, deadline);
225
+ return g_event_engine->pollset_work(pollset, worker, deadline);
233
226
  }
234
227
 
235
- grpc_error* grpc_pollset_kick(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
228
+ grpc_error* grpc_pollset_kick(grpc_pollset* pollset,
236
229
  grpc_pollset_worker* specific_worker) {
237
- return g_event_engine->pollset_kick(exec_ctx, pollset, specific_worker);
230
+ return g_event_engine->pollset_kick(pollset, specific_worker);
238
231
  }
239
232
 
240
- void grpc_pollset_add_fd(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
241
- struct grpc_fd* fd) {
242
- g_event_engine->pollset_add_fd(exec_ctx, pollset, fd);
233
+ void grpc_pollset_add_fd(grpc_pollset* pollset, struct grpc_fd* fd) {
234
+ g_event_engine->pollset_add_fd(pollset, fd);
243
235
  }
244
236
 
245
237
  grpc_pollset_set* grpc_pollset_set_create(void) {
246
238
  return g_event_engine->pollset_set_create();
247
239
  }
248
240
 
249
- void grpc_pollset_set_destroy(grpc_exec_ctx* exec_ctx,
250
- grpc_pollset_set* pollset_set) {
251
- g_event_engine->pollset_set_destroy(exec_ctx, pollset_set);
241
+ void grpc_pollset_set_destroy(grpc_pollset_set* pollset_set) {
242
+ g_event_engine->pollset_set_destroy(pollset_set);
252
243
  }
253
244
 
254
- void grpc_pollset_set_add_pollset(grpc_exec_ctx* exec_ctx,
255
- grpc_pollset_set* pollset_set,
245
+ void grpc_pollset_set_add_pollset(grpc_pollset_set* pollset_set,
256
246
  grpc_pollset* pollset) {
257
- g_event_engine->pollset_set_add_pollset(exec_ctx, pollset_set, pollset);
247
+ g_event_engine->pollset_set_add_pollset(pollset_set, pollset);
258
248
  }
259
249
 
260
- void grpc_pollset_set_del_pollset(grpc_exec_ctx* exec_ctx,
261
- grpc_pollset_set* pollset_set,
250
+ void grpc_pollset_set_del_pollset(grpc_pollset_set* pollset_set,
262
251
  grpc_pollset* pollset) {
263
- g_event_engine->pollset_set_del_pollset(exec_ctx, pollset_set, pollset);
252
+ g_event_engine->pollset_set_del_pollset(pollset_set, pollset);
264
253
  }
265
254
 
266
- void grpc_pollset_set_add_pollset_set(grpc_exec_ctx* exec_ctx,
267
- grpc_pollset_set* bag,
255
+ void grpc_pollset_set_add_pollset_set(grpc_pollset_set* bag,
268
256
  grpc_pollset_set* item) {
269
- g_event_engine->pollset_set_add_pollset_set(exec_ctx, bag, item);
257
+ g_event_engine->pollset_set_add_pollset_set(bag, item);
270
258
  }
271
259
 
272
- void grpc_pollset_set_del_pollset_set(grpc_exec_ctx* exec_ctx,
273
- grpc_pollset_set* bag,
260
+ void grpc_pollset_set_del_pollset_set(grpc_pollset_set* bag,
274
261
  grpc_pollset_set* item) {
275
- g_event_engine->pollset_set_del_pollset_set(exec_ctx, bag, item);
262
+ g_event_engine->pollset_set_del_pollset_set(bag, item);
276
263
  }
277
264
 
278
- void grpc_pollset_set_add_fd(grpc_exec_ctx* exec_ctx,
279
- grpc_pollset_set* pollset_set, grpc_fd* fd) {
280
- g_event_engine->pollset_set_add_fd(exec_ctx, pollset_set, fd);
265
+ void grpc_pollset_set_add_fd(grpc_pollset_set* pollset_set, grpc_fd* fd) {
266
+ g_event_engine->pollset_set_add_fd(pollset_set, fd);
281
267
  }
282
268
 
283
- void grpc_pollset_set_del_fd(grpc_exec_ctx* exec_ctx,
284
- grpc_pollset_set* pollset_set, grpc_fd* fd) {
285
- g_event_engine->pollset_set_del_fd(exec_ctx, pollset_set, fd);
269
+ void grpc_pollset_set_del_fd(grpc_pollset_set* pollset_set, grpc_fd* fd) {
270
+ g_event_engine->pollset_set_del_fd(pollset_set, fd);
286
271
  }
287
272
 
288
273
  #endif // GRPC_POSIX_SOCKET
@@ -27,10 +27,6 @@
27
27
  #include "src/core/lib/iomgr/pollset_set.h"
28
28
  #include "src/core/lib/iomgr/wakeup_fd_posix.h"
29
29
 
30
- #ifdef __cplusplus
31
- extern "C" {
32
- #endif
33
-
34
30
  extern grpc_core::TraceFlag grpc_polling_trace; /* Disabled by default */
35
31
 
36
32
  typedef struct grpc_fd grpc_fd;
@@ -40,48 +36,36 @@ typedef struct grpc_event_engine_vtable {
40
36
 
41
37
  grpc_fd* (*fd_create)(int fd, const char* name);
42
38
  int (*fd_wrapped_fd)(grpc_fd* fd);
43
- void (*fd_orphan)(grpc_exec_ctx* exec_ctx, grpc_fd* fd, grpc_closure* on_done,
44
- int* release_fd, bool already_closed, const char* reason);
45
- void (*fd_shutdown)(grpc_exec_ctx* exec_ctx, grpc_fd* fd, grpc_error* why);
46
- void (*fd_notify_on_read)(grpc_exec_ctx* exec_ctx, grpc_fd* fd,
47
- grpc_closure* closure);
48
- void (*fd_notify_on_write)(grpc_exec_ctx* exec_ctx, grpc_fd* fd,
49
- grpc_closure* closure);
39
+ void (*fd_orphan)(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
40
+ bool already_closed, const char* reason);
41
+ void (*fd_shutdown)(grpc_fd* fd, grpc_error* why);
42
+ void (*fd_notify_on_read)(grpc_fd* fd, grpc_closure* closure);
43
+ void (*fd_notify_on_write)(grpc_fd* fd, grpc_closure* closure);
50
44
  bool (*fd_is_shutdown)(grpc_fd* fd);
51
- grpc_pollset* (*fd_get_read_notifier_pollset)(grpc_exec_ctx* exec_ctx,
52
- grpc_fd* fd);
45
+ grpc_pollset* (*fd_get_read_notifier_pollset)(grpc_fd* fd);
53
46
 
54
47
  void (*pollset_init)(grpc_pollset* pollset, gpr_mu** mu);
55
- void (*pollset_shutdown)(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
56
- grpc_closure* closure);
57
- void (*pollset_destroy)(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset);
58
- grpc_error* (*pollset_work)(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
48
+ void (*pollset_shutdown)(grpc_pollset* pollset, grpc_closure* closure);
49
+ void (*pollset_destroy)(grpc_pollset* pollset);
50
+ grpc_error* (*pollset_work)(grpc_pollset* pollset,
59
51
  grpc_pollset_worker** worker,
60
52
  grpc_millis deadline);
61
- grpc_error* (*pollset_kick)(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
53
+ grpc_error* (*pollset_kick)(grpc_pollset* pollset,
62
54
  grpc_pollset_worker* specific_worker);
63
- void (*pollset_add_fd)(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
64
- struct grpc_fd* fd);
55
+ void (*pollset_add_fd)(grpc_pollset* pollset, struct grpc_fd* fd);
65
56
 
66
57
  grpc_pollset_set* (*pollset_set_create)(void);
67
- void (*pollset_set_destroy)(grpc_exec_ctx* exec_ctx,
68
- grpc_pollset_set* pollset_set);
69
- void (*pollset_set_add_pollset)(grpc_exec_ctx* exec_ctx,
70
- grpc_pollset_set* pollset_set,
58
+ void (*pollset_set_destroy)(grpc_pollset_set* pollset_set);
59
+ void (*pollset_set_add_pollset)(grpc_pollset_set* pollset_set,
71
60
  grpc_pollset* pollset);
72
- void (*pollset_set_del_pollset)(grpc_exec_ctx* exec_ctx,
73
- grpc_pollset_set* pollset_set,
61
+ void (*pollset_set_del_pollset)(grpc_pollset_set* pollset_set,
74
62
  grpc_pollset* pollset);
75
- void (*pollset_set_add_pollset_set)(grpc_exec_ctx* exec_ctx,
76
- grpc_pollset_set* bag,
63
+ void (*pollset_set_add_pollset_set)(grpc_pollset_set* bag,
77
64
  grpc_pollset_set* item);
78
- void (*pollset_set_del_pollset_set)(grpc_exec_ctx* exec_ctx,
79
- grpc_pollset_set* bag,
65
+ void (*pollset_set_del_pollset_set)(grpc_pollset_set* bag,
80
66
  grpc_pollset_set* item);
81
- void (*pollset_set_add_fd)(grpc_exec_ctx* exec_ctx,
82
- grpc_pollset_set* pollset_set, grpc_fd* fd);
83
- void (*pollset_set_del_fd)(grpc_exec_ctx* exec_ctx,
84
- grpc_pollset_set* pollset_set, grpc_fd* fd);
67
+ void (*pollset_set_add_fd)(grpc_pollset_set* pollset_set, grpc_fd* fd);
68
+ void (*pollset_set_del_fd)(grpc_pollset_set* pollset_set, grpc_fd* fd);
85
69
 
86
70
  void (*shutdown_engine)(void);
87
71
  } grpc_event_engine_vtable;
@@ -107,14 +91,14 @@ int grpc_fd_wrapped_fd(grpc_fd* fd);
107
91
  Requires: *fd initialized; no outstanding notify_on_read or
108
92
  notify_on_write.
109
93
  MUST NOT be called with a pollset lock taken */
110
- void grpc_fd_orphan(grpc_exec_ctx* exec_ctx, grpc_fd* fd, grpc_closure* on_done,
111
- int* release_fd, bool already_closed, const char* reason);
94
+ void grpc_fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
95
+ bool already_closed, const char* reason);
112
96
 
113
97
  /* Has grpc_fd_shutdown been called on an fd? */
114
98
  bool grpc_fd_is_shutdown(grpc_fd* fd);
115
99
 
116
100
  /* Cause any current and future callbacks to fail. */
117
- void grpc_fd_shutdown(grpc_exec_ctx* exec_ctx, grpc_fd* fd, grpc_error* why);
101
+ void grpc_fd_shutdown(grpc_fd* fd, grpc_error* why);
118
102
 
119
103
  /* Register read interest, causing read_cb to be called once when fd becomes
120
104
  readable, on deadline specified by deadline, or on shutdown triggered by
@@ -129,29 +113,23 @@ void grpc_fd_shutdown(grpc_exec_ctx* exec_ctx, grpc_fd* fd, grpc_error* why);
129
113
  underlying platform. This means that users must drain fd in read_cb before
130
114
  calling notify_on_read again. Users are also expected to handle spurious
131
115
  events, i.e read_cb is called while nothing can be readable from fd */
132
- void grpc_fd_notify_on_read(grpc_exec_ctx* exec_ctx, grpc_fd* fd,
133
- grpc_closure* closure);
116
+ void grpc_fd_notify_on_read(grpc_fd* fd, grpc_closure* closure);
134
117
 
135
118
  /* Exactly the same semantics as above, except based on writable events. */
136
- void grpc_fd_notify_on_write(grpc_exec_ctx* exec_ctx, grpc_fd* fd,
137
- grpc_closure* closure);
119
+ void grpc_fd_notify_on_write(grpc_fd* fd, grpc_closure* closure);
138
120
 
139
121
  /* Return the read notifier pollset from the fd */
140
- grpc_pollset* grpc_fd_get_read_notifier_pollset(grpc_exec_ctx* exec_ctx,
141
- grpc_fd* fd);
122
+ grpc_pollset* grpc_fd_get_read_notifier_pollset(grpc_fd* fd);
142
123
 
143
124
  /* pollset_posix functions */
144
125
 
145
126
  /* Add an fd to a pollset */
146
- void grpc_pollset_add_fd(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
147
- struct grpc_fd* fd);
127
+ void grpc_pollset_add_fd(grpc_pollset* pollset, struct grpc_fd* fd);
148
128
 
149
129
  /* pollset_set_posix functions */
150
130
 
151
- void grpc_pollset_set_add_fd(grpc_exec_ctx* exec_ctx,
152
- grpc_pollset_set* pollset_set, grpc_fd* fd);
153
- void grpc_pollset_set_del_fd(grpc_exec_ctx* exec_ctx,
154
- grpc_pollset_set* pollset_set, grpc_fd* fd);
131
+ void grpc_pollset_set_add_fd(grpc_pollset_set* pollset_set, grpc_fd* fd);
132
+ void grpc_pollset_set_del_fd(grpc_pollset_set* pollset_set, grpc_fd* fd);
155
133
 
156
134
  /* override to allow tests to hook poll() usage */
157
135
  typedef int (*grpc_poll_function_type)(struct pollfd*, nfds_t, int);
@@ -162,8 +140,4 @@ extern grpc_poll_function_type grpc_poll_function;
162
140
  void grpc_set_event_engine_test_only(const grpc_event_engine_vtable*);
163
141
  const grpc_event_engine_vtable* grpc_get_event_engine_test_only();
164
142
 
165
- #ifdef __cplusplus
166
- }
167
- #endif
168
-
169
143
  #endif /* GRPC_CORE_LIB_IOMGR_EV_POSIX_H */
@@ -25,39 +25,7 @@
25
25
  #include "src/core/lib/iomgr/combiner.h"
26
26
  #include "src/core/lib/profiling/timers.h"
27
27
 
28
- bool grpc_exec_ctx_ready_to_finish(grpc_exec_ctx* exec_ctx) {
29
- if ((exec_ctx->flags & GRPC_EXEC_CTX_FLAG_IS_FINISHED) == 0) {
30
- if (exec_ctx->check_ready_to_finish(exec_ctx,
31
- exec_ctx->check_ready_to_finish_arg)) {
32
- exec_ctx->flags |= GRPC_EXEC_CTX_FLAG_IS_FINISHED;
33
- return true;
34
- }
35
- return false;
36
- } else {
37
- return true;
38
- }
39
- }
40
-
41
- bool grpc_never_ready_to_finish(grpc_exec_ctx* exec_ctx, void* arg_ignored) {
42
- return false;
43
- }
44
-
45
- bool grpc_always_ready_to_finish(grpc_exec_ctx* exec_ctx, void* arg_ignored) {
46
- return true;
47
- }
48
-
49
- bool grpc_exec_ctx_has_work(grpc_exec_ctx* exec_ctx) {
50
- return exec_ctx->active_combiner != nullptr ||
51
- !grpc_closure_list_empty(exec_ctx->closure_list);
52
- }
53
-
54
- void grpc_exec_ctx_finish(grpc_exec_ctx* exec_ctx) {
55
- exec_ctx->flags |= GRPC_EXEC_CTX_FLAG_IS_FINISHED;
56
- grpc_exec_ctx_flush(exec_ctx);
57
- }
58
-
59
- static void exec_ctx_run(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
60
- grpc_error* error) {
28
+ static void exec_ctx_run(grpc_closure* closure, grpc_error* error) {
61
29
  #ifndef NDEBUG
62
30
  closure->scheduled = false;
63
31
  if (grpc_trace_closure.enabled()) {
@@ -67,7 +35,7 @@ static void exec_ctx_run(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
67
35
  closure->line_initiated);
68
36
  }
69
37
  #endif
70
- closure->cb(exec_ctx, closure->cb_arg, error);
38
+ closure->cb(closure->cb_arg, error);
71
39
  #ifndef NDEBUG
72
40
  if (grpc_trace_closure.enabled()) {
73
41
  gpr_log(GPR_DEBUG, "closure %p finished", closure);
@@ -76,42 +44,13 @@ static void exec_ctx_run(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
76
44
  GRPC_ERROR_UNREF(error);
77
45
  }
78
46
 
79
- bool grpc_exec_ctx_flush(grpc_exec_ctx* exec_ctx) {
80
- bool did_something = 0;
81
- GPR_TIMER_BEGIN("grpc_exec_ctx_flush", 0);
82
- for (;;) {
83
- if (!grpc_closure_list_empty(exec_ctx->closure_list)) {
84
- grpc_closure* c = exec_ctx->closure_list.head;
85
- exec_ctx->closure_list.head = exec_ctx->closure_list.tail = nullptr;
86
- while (c != nullptr) {
87
- grpc_closure* next = c->next_data.next;
88
- grpc_error* error = c->error_data.error;
89
- did_something = true;
90
- exec_ctx_run(exec_ctx, c, error);
91
- c = next;
92
- }
93
- } else if (!grpc_combiner_continue_exec_ctx(exec_ctx)) {
94
- break;
95
- }
96
- }
97
- GPR_ASSERT(exec_ctx->active_combiner == nullptr);
98
- GPR_TIMER_END("grpc_exec_ctx_flush", 0);
99
- return did_something;
100
- }
101
-
102
- static void exec_ctx_sched(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
103
- grpc_error* error) {
104
- grpc_closure_list_append(&exec_ctx->closure_list, closure, error);
47
+ static void exec_ctx_sched(grpc_closure* closure, grpc_error* error) {
48
+ grpc_closure_list_append(grpc_core::ExecCtx::Get()->closure_list(), closure,
49
+ error);
105
50
  }
106
51
 
107
52
  static gpr_timespec g_start_time;
108
53
 
109
- void grpc_exec_ctx_global_init(void) {
110
- g_start_time = gpr_now(GPR_CLOCK_MONOTONIC);
111
- }
112
-
113
- void grpc_exec_ctx_global_shutdown(void) {}
114
-
115
54
  static gpr_atm timespec_to_atm_round_down(gpr_timespec ts) {
116
55
  ts = gpr_time_sub(ts, g_start_time);
117
56
  double x =
@@ -131,18 +70,6 @@ static gpr_atm timespec_to_atm_round_up(gpr_timespec ts) {
131
70
  return (gpr_atm)x;
132
71
  }
133
72
 
134
- grpc_millis grpc_exec_ctx_now(grpc_exec_ctx* exec_ctx) {
135
- if (!exec_ctx->now_is_valid) {
136
- exec_ctx->now = timespec_to_atm_round_down(gpr_now(GPR_CLOCK_MONOTONIC));
137
- exec_ctx->now_is_valid = true;
138
- }
139
- return exec_ctx->now;
140
- }
141
-
142
- void grpc_exec_ctx_invalidate_now(grpc_exec_ctx* exec_ctx) {
143
- exec_ctx->now_is_valid = false;
144
- }
145
-
146
73
  gpr_timespec grpc_millis_to_timespec(grpc_millis millis,
147
74
  gpr_clock_type clock_type) {
148
75
  // special-case infinities as grpc_millis can be 32bit on some platforms
@@ -175,3 +102,44 @@ static const grpc_closure_scheduler_vtable exec_ctx_scheduler_vtable = {
175
102
  exec_ctx_run, exec_ctx_sched, "exec_ctx"};
176
103
  static grpc_closure_scheduler exec_ctx_scheduler = {&exec_ctx_scheduler_vtable};
177
104
  grpc_closure_scheduler* grpc_schedule_on_exec_ctx = &exec_ctx_scheduler;
105
+
106
+ namespace grpc_core {
107
+ GPR_TLS_CLASS_DEF(ExecCtx::exec_ctx_);
108
+
109
+ void ExecCtx::GlobalInit(void) {
110
+ g_start_time = gpr_now(GPR_CLOCK_MONOTONIC);
111
+ gpr_tls_init(&exec_ctx_);
112
+ }
113
+
114
+ bool ExecCtx::Flush() {
115
+ bool did_something = 0;
116
+ GPR_TIMER_BEGIN("grpc_exec_ctx_flush", 0);
117
+ for (;;) {
118
+ if (!grpc_closure_list_empty(closure_list_)) {
119
+ grpc_closure* c = closure_list_.head;
120
+ closure_list_.head = closure_list_.tail = nullptr;
121
+ while (c != nullptr) {
122
+ grpc_closure* next = c->next_data.next;
123
+ grpc_error* error = c->error_data.error;
124
+ did_something = true;
125
+ exec_ctx_run(c, error);
126
+ c = next;
127
+ }
128
+ } else if (!grpc_combiner_continue_exec_ctx()) {
129
+ break;
130
+ }
131
+ }
132
+ GPR_ASSERT(combiner_data_.active_combiner == nullptr);
133
+ GPR_TIMER_END("grpc_exec_ctx_flush", 0);
134
+ return did_something;
135
+ }
136
+
137
+ grpc_millis ExecCtx::Now() {
138
+ if (!now_is_valid_) {
139
+ now_ = timespec_to_atm_round_down(gpr_now(GPR_CLOCK_MONOTONIC));
140
+ now_is_valid_ = true;
141
+ }
142
+ return now_;
143
+ }
144
+
145
+ } // namespace grpc_core