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
@@ -26,9 +26,9 @@
26
26
 
27
27
  #include "src/core/lib/channel/channel_args.h"
28
28
  #include "src/core/lib/channel/handshaker_registry.h"
29
+ #include "src/core/lib/gpr/string.h"
29
30
  #include "src/core/lib/security/transport/security_handshaker.h"
30
31
  #include "src/core/lib/slice/slice_internal.h"
31
- #include "src/core/lib/support/string.h"
32
32
  #include "src/core/tsi/ssl_transport_security.h"
33
33
  #include "src/core/tsi/transport_security_adapter.h"
34
34
 
@@ -38,8 +38,7 @@ typedef struct {
38
38
  char* secure_peer_name;
39
39
  } grpc_httpcli_ssl_channel_security_connector;
40
40
 
41
- static void httpcli_ssl_destroy(grpc_exec_ctx* exec_ctx,
42
- grpc_security_connector* sc) {
41
+ static void httpcli_ssl_destroy(grpc_security_connector* sc) {
43
42
  grpc_httpcli_ssl_channel_security_connector* c =
44
43
  (grpc_httpcli_ssl_channel_security_connector*)sc;
45
44
  if (c->handshaker_factory != nullptr) {
@@ -50,8 +49,7 @@ static void httpcli_ssl_destroy(grpc_exec_ctx* exec_ctx,
50
49
  gpr_free(sc);
51
50
  }
52
51
 
53
- static void httpcli_ssl_add_handshakers(grpc_exec_ctx* exec_ctx,
54
- grpc_channel_security_connector* sc,
52
+ static void httpcli_ssl_add_handshakers(grpc_channel_security_connector* sc,
55
53
  grpc_handshake_manager* handshake_mgr) {
56
54
  grpc_httpcli_ssl_channel_security_connector* c =
57
55
  (grpc_httpcli_ssl_channel_security_connector*)sc;
@@ -65,13 +63,11 @@ static void httpcli_ssl_add_handshakers(grpc_exec_ctx* exec_ctx,
65
63
  }
66
64
  }
67
65
  grpc_handshake_manager_add(
68
- handshake_mgr,
69
- grpc_security_handshaker_create(
70
- exec_ctx, tsi_create_adapter_handshaker(handshaker), &sc->base));
66
+ handshake_mgr, grpc_security_handshaker_create(
67
+ tsi_create_adapter_handshaker(handshaker), &sc->base));
71
68
  }
72
69
 
73
- static void httpcli_ssl_check_peer(grpc_exec_ctx* exec_ctx,
74
- grpc_security_connector* sc, tsi_peer peer,
70
+ static void httpcli_ssl_check_peer(grpc_security_connector* sc, tsi_peer peer,
75
71
  grpc_auth_context** auth_context,
76
72
  grpc_closure* on_peer_checked) {
77
73
  grpc_httpcli_ssl_channel_security_connector* c =
@@ -87,7 +83,7 @@ static void httpcli_ssl_check_peer(grpc_exec_ctx* exec_ctx,
87
83
  error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
88
84
  gpr_free(msg);
89
85
  }
90
- GRPC_CLOSURE_SCHED(exec_ctx, on_peer_checked, error);
86
+ GRPC_CLOSURE_SCHED(on_peer_checked, error);
91
87
  tsi_peer_destruct(&peer);
92
88
  }
93
89
 
@@ -104,8 +100,8 @@ static grpc_security_connector_vtable httpcli_ssl_vtable = {
104
100
  httpcli_ssl_destroy, httpcli_ssl_check_peer, httpcli_ssl_cmp};
105
101
 
106
102
  static grpc_security_status httpcli_ssl_channel_security_connector_create(
107
- grpc_exec_ctx* exec_ctx, const char* pem_root_certs,
108
- const char* secure_peer_name, grpc_channel_security_connector** sc) {
103
+ const char* pem_root_certs, const char* secure_peer_name,
104
+ grpc_channel_security_connector** sc) {
109
105
  tsi_result result = TSI_OK;
110
106
  grpc_httpcli_ssl_channel_security_connector* c;
111
107
 
@@ -128,12 +124,12 @@ static grpc_security_status httpcli_ssl_channel_security_connector_create(
128
124
  if (result != TSI_OK) {
129
125
  gpr_log(GPR_ERROR, "Handshaker factory creation failed with %s.",
130
126
  tsi_result_to_string(result));
131
- httpcli_ssl_destroy(exec_ctx, &c->base.base);
127
+ httpcli_ssl_destroy(&c->base.base);
132
128
  *sc = nullptr;
133
129
  return GRPC_SECURITY_ERROR;
134
130
  }
135
131
  // We don't actually need a channel credentials object in this case,
136
- // but we set it to a non-NULL address so that we don't trigger
132
+ // but we set it to a non-nullptr address so that we don't trigger
137
133
  // assertions in grpc_channel_security_connector_cmp().
138
134
  c->base.channel_creds = (grpc_channel_credentials*)1;
139
135
  c->base.add_handshakers = httpcli_ssl_add_handshakers;
@@ -144,40 +140,37 @@ static grpc_security_status httpcli_ssl_channel_security_connector_create(
144
140
  /* handshaker */
145
141
 
146
142
  typedef struct {
147
- void (*func)(grpc_exec_ctx* exec_ctx, void* arg, grpc_endpoint* endpoint);
143
+ void (*func)(void* arg, grpc_endpoint* endpoint);
148
144
  void* arg;
149
145
  grpc_handshake_manager* handshake_mgr;
150
146
  } on_done_closure;
151
147
 
152
- static void on_handshake_done(grpc_exec_ctx* exec_ctx, void* arg,
153
- grpc_error* error) {
148
+ static void on_handshake_done(void* arg, grpc_error* error) {
154
149
  grpc_handshaker_args* args = (grpc_handshaker_args*)arg;
155
150
  on_done_closure* c = (on_done_closure*)args->user_data;
156
151
  if (error != GRPC_ERROR_NONE) {
157
152
  const char* msg = grpc_error_string(error);
158
153
  gpr_log(GPR_ERROR, "Secure transport setup failed: %s", msg);
159
154
 
160
- c->func(exec_ctx, c->arg, nullptr);
155
+ c->func(c->arg, nullptr);
161
156
  } else {
162
- grpc_channel_args_destroy(exec_ctx, args->args);
163
- grpc_slice_buffer_destroy_internal(exec_ctx, args->read_buffer);
157
+ grpc_channel_args_destroy(args->args);
158
+ grpc_slice_buffer_destroy_internal(args->read_buffer);
164
159
  gpr_free(args->read_buffer);
165
- c->func(exec_ctx, c->arg, args->endpoint);
160
+ c->func(c->arg, args->endpoint);
166
161
  }
167
- grpc_handshake_manager_destroy(exec_ctx, c->handshake_mgr);
162
+ grpc_handshake_manager_destroy(c->handshake_mgr);
168
163
  gpr_free(c);
169
164
  }
170
165
 
171
- static void ssl_handshake(grpc_exec_ctx* exec_ctx, void* arg,
172
- grpc_endpoint* tcp, const char* host,
166
+ static void ssl_handshake(void* arg, grpc_endpoint* tcp, const char* host,
173
167
  grpc_millis deadline,
174
- void (*on_done)(grpc_exec_ctx* exec_ctx, void* arg,
175
- grpc_endpoint* endpoint)) {
168
+ void (*on_done)(void* arg, grpc_endpoint* endpoint)) {
176
169
  on_done_closure* c = (on_done_closure*)gpr_malloc(sizeof(*c));
177
170
  const char* pem_root_certs = grpc_get_default_ssl_roots();
178
171
  if (pem_root_certs == nullptr) {
179
172
  gpr_log(GPR_ERROR, "Could not get default pem root certs.");
180
- on_done(exec_ctx, arg, nullptr);
173
+ on_done(arg, nullptr);
181
174
  gpr_free(c);
182
175
  return;
183
176
  }
@@ -185,15 +178,16 @@ static void ssl_handshake(grpc_exec_ctx* exec_ctx, void* arg,
185
178
  c->arg = arg;
186
179
  grpc_channel_security_connector* sc = nullptr;
187
180
  GPR_ASSERT(httpcli_ssl_channel_security_connector_create(
188
- exec_ctx, pem_root_certs, host, &sc) == GRPC_SECURITY_OK);
181
+ pem_root_certs, host, &sc) == GRPC_SECURITY_OK);
189
182
  grpc_arg channel_arg = grpc_security_connector_to_arg(&sc->base);
190
183
  grpc_channel_args args = {1, &channel_arg};
191
184
  c->handshake_mgr = grpc_handshake_manager_create();
192
- grpc_handshakers_add(exec_ctx, HANDSHAKER_CLIENT, &args, c->handshake_mgr);
185
+ grpc_handshakers_add(HANDSHAKER_CLIENT, &args, c->handshake_mgr);
193
186
  grpc_handshake_manager_do_handshake(
194
- exec_ctx, c->handshake_mgr, tcp, nullptr /* channel_args */, deadline,
195
- nullptr /* acceptor */, on_handshake_done, c /* user_data */);
196
- GRPC_SECURITY_CONNECTOR_UNREF(exec_ctx, &sc->base, "httpcli");
187
+ c->handshake_mgr, nullptr /* interested_parties */, tcp,
188
+ nullptr /* channel_args */, deadline, nullptr /* acceptor */,
189
+ on_handshake_done, c /* user_data */);
190
+ GRPC_SECURITY_CONNECTOR_UNREF(&sc->base, "httpcli");
197
191
  }
198
192
 
199
193
  const grpc_httpcli_handshaker grpc_httpcli_ssl = {"https", ssl_handshake};
@@ -27,10 +27,6 @@
27
27
  /* Maximum length of a header string of the form 'Key: Value\r\n' */
28
28
  #define GRPC_HTTP_PARSER_MAX_HEADER_LENGTH 4096
29
29
 
30
- #ifdef __cplusplus
31
- extern "C" {
32
- #endif
33
-
34
30
  /* A single header to be passed in a request */
35
31
  typedef struct grpc_http_header {
36
32
  char* key;
@@ -113,8 +109,4 @@ void grpc_http_response_destroy(grpc_http_response* response);
113
109
 
114
110
  extern grpc_core::TraceFlag grpc_http1_trace;
115
111
 
116
- #ifdef __cplusplus
117
- }
118
- #endif
119
-
120
112
  #endif /* GRPC_CORE_LIB_HTTP_PARSER_H */
@@ -19,17 +19,9 @@
19
19
  #ifndef GRPC_CORE_LIB_IOMGR_BLOCK_ANNOTATE_H
20
20
  #define GRPC_CORE_LIB_IOMGR_BLOCK_ANNOTATE_H
21
21
 
22
- #ifdef __cplusplus
23
- extern "C" {
24
- #endif
25
-
26
22
  void gpr_thd_start_blocking_region();
27
23
  void gpr_thd_end_blocking_region();
28
24
 
29
- #ifdef __cplusplus
30
- }
31
- #endif
32
-
33
25
  /* These annotations identify the beginning and end of regions where
34
26
  the code may block for reasons other than synchronization functions.
35
27
  These include poll, epoll, and getaddrinfo. */
@@ -39,26 +31,27 @@ void gpr_thd_end_blocking_region();
39
31
  do { \
40
32
  gpr_thd_start_blocking_region(); \
41
33
  } while (0)
34
+ #define GRPC_SCHEDULING_END_BLOCKING_REGION \
35
+ do { \
36
+ gpr_thd_end_blocking_region(); \
37
+ grpc_core::ExecCtx::Get()->InvalidateNow(); \
38
+ } while (0)
42
39
  #define GRPC_SCHEDULING_END_BLOCKING_REGION_NO_EXEC_CTX \
43
40
  do { \
44
41
  gpr_thd_end_blocking_region(); \
45
42
  } while (0)
46
- #define GRPC_SCHEDULING_END_BLOCKING_REGION_WITH_EXEC_CTX(ec) \
47
- do { \
48
- gpr_thd_end_blocking_region(); \
49
- grpc_exec_ctx_invalidate_now((ec)); \
50
- } while (0)
43
+
51
44
  #else
52
45
  #define GRPC_SCHEDULING_START_BLOCKING_REGION \
53
46
  do { \
54
47
  } while (0)
48
+ #define GRPC_SCHEDULING_END_BLOCKING_REGION \
49
+ do { \
50
+ grpc_core::ExecCtx::Get()->InvalidateNow(); \
51
+ } while (0)
55
52
  #define GRPC_SCHEDULING_END_BLOCKING_REGION_NO_EXEC_CTX \
56
53
  do { \
57
54
  } while (0)
58
- #define GRPC_SCHEDULING_END_BLOCKING_REGION_WITH_EXEC_CTX(ec) \
59
- do { \
60
- grpc_exec_ctx_invalidate_now((ec)); \
61
- } while (0)
62
55
  #endif
63
56
 
64
57
  #endif /* GRPC_CORE_LIB_IOMGR_BLOCK_ANNOTATE_H */
@@ -56,8 +56,7 @@ void grpc_call_combiner_destroy(grpc_call_combiner* call_combiner) {
56
56
  #define DEBUG_FMT_ARGS
57
57
  #endif
58
58
 
59
- void grpc_call_combiner_start(grpc_exec_ctx* exec_ctx,
60
- grpc_call_combiner* call_combiner,
59
+ void grpc_call_combiner_start(grpc_call_combiner* call_combiner,
61
60
  grpc_closure* closure,
62
61
  grpc_error* error DEBUG_ARGS,
63
62
  const char* reason) {
@@ -75,15 +74,16 @@ void grpc_call_combiner_start(grpc_exec_ctx* exec_ctx,
75
74
  gpr_log(GPR_DEBUG, " size: %" PRIdPTR " -> %" PRIdPTR, prev_size,
76
75
  prev_size + 1);
77
76
  }
78
- GRPC_STATS_INC_CALL_COMBINER_LOCKS_SCHEDULED_ITEMS(exec_ctx);
77
+ GRPC_STATS_INC_CALL_COMBINER_LOCKS_SCHEDULED_ITEMS();
79
78
  if (prev_size == 0) {
80
- GRPC_STATS_INC_CALL_COMBINER_LOCKS_INITIATED(exec_ctx);
79
+ GRPC_STATS_INC_CALL_COMBINER_LOCKS_INITIATED();
80
+
81
81
  GPR_TIMER_MARK("call_combiner_initiate", 0);
82
82
  if (grpc_call_combiner_trace.enabled()) {
83
83
  gpr_log(GPR_DEBUG, " EXECUTING IMMEDIATELY");
84
84
  }
85
85
  // Queue was empty, so execute this closure immediately.
86
- GRPC_CLOSURE_SCHED(exec_ctx, closure, error);
86
+ GRPC_CLOSURE_SCHED(closure, error);
87
87
  } else {
88
88
  if (grpc_call_combiner_trace.enabled()) {
89
89
  gpr_log(GPR_INFO, " QUEUING");
@@ -95,8 +95,7 @@ void grpc_call_combiner_start(grpc_exec_ctx* exec_ctx,
95
95
  GPR_TIMER_END("call_combiner_start", 0);
96
96
  }
97
97
 
98
- void grpc_call_combiner_stop(grpc_exec_ctx* exec_ctx,
99
- grpc_call_combiner* call_combiner DEBUG_ARGS,
98
+ void grpc_call_combiner_stop(grpc_call_combiner* call_combiner DEBUG_ARGS,
100
99
  const char* reason) {
101
100
  GPR_TIMER_BEGIN("call_combiner_stop", 0);
102
101
  if (grpc_call_combiner_trace.enabled()) {
@@ -131,7 +130,7 @@ void grpc_call_combiner_stop(grpc_exec_ctx* exec_ctx,
131
130
  gpr_log(GPR_DEBUG, " EXECUTING FROM QUEUE: closure=%p error=%s",
132
131
  closure, grpc_error_string(closure->error_data.error));
133
132
  }
134
- GRPC_CLOSURE_SCHED(exec_ctx, closure, closure->error_data.error);
133
+ GRPC_CLOSURE_SCHED(closure, closure->error_data.error);
135
134
  break;
136
135
  }
137
136
  } else if (grpc_call_combiner_trace.enabled()) {
@@ -140,10 +139,9 @@ void grpc_call_combiner_stop(grpc_exec_ctx* exec_ctx,
140
139
  GPR_TIMER_END("call_combiner_stop", 0);
141
140
  }
142
141
 
143
- void grpc_call_combiner_set_notify_on_cancel(grpc_exec_ctx* exec_ctx,
144
- grpc_call_combiner* call_combiner,
142
+ void grpc_call_combiner_set_notify_on_cancel(grpc_call_combiner* call_combiner,
145
143
  grpc_closure* closure) {
146
- GRPC_STATS_INC_CALL_COMBINER_SET_NOTIFY_ON_CANCEL(exec_ctx);
144
+ GRPC_STATS_INC_CALL_COMBINER_SET_NOTIFY_ON_CANCEL();
147
145
  while (true) {
148
146
  // Decode original state.
149
147
  gpr_atm original_state = gpr_atm_acq_load(&call_combiner->cancel_state);
@@ -157,7 +155,7 @@ void grpc_call_combiner_set_notify_on_cancel(grpc_exec_ctx* exec_ctx,
157
155
  "for pre-existing cancellation",
158
156
  call_combiner, closure);
159
157
  }
160
- GRPC_CLOSURE_SCHED(exec_ctx, closure, GRPC_ERROR_REF(original_error));
158
+ GRPC_CLOSURE_SCHED(closure, GRPC_ERROR_REF(original_error));
161
159
  break;
162
160
  } else {
163
161
  if (gpr_atm_full_cas(&call_combiner->cancel_state, original_state,
@@ -176,7 +174,7 @@ void grpc_call_combiner_set_notify_on_cancel(grpc_exec_ctx* exec_ctx,
176
174
  "call_combiner=%p: scheduling old cancel callback=%p",
177
175
  call_combiner, closure);
178
176
  }
179
- GRPC_CLOSURE_SCHED(exec_ctx, closure, GRPC_ERROR_NONE);
177
+ GRPC_CLOSURE_SCHED(closure, GRPC_ERROR_NONE);
180
178
  }
181
179
  break;
182
180
  }
@@ -185,10 +183,9 @@ void grpc_call_combiner_set_notify_on_cancel(grpc_exec_ctx* exec_ctx,
185
183
  }
186
184
  }
187
185
 
188
- void grpc_call_combiner_cancel(grpc_exec_ctx* exec_ctx,
189
- grpc_call_combiner* call_combiner,
186
+ void grpc_call_combiner_cancel(grpc_call_combiner* call_combiner,
190
187
  grpc_error* error) {
191
- GRPC_STATS_INC_CALL_COMBINER_CANCELLED(exec_ctx);
188
+ GRPC_STATS_INC_CALL_COMBINER_CANCELLED();
192
189
  while (true) {
193
190
  gpr_atm original_state = gpr_atm_acq_load(&call_combiner->cancel_state);
194
191
  grpc_error* original_error = decode_cancel_state_error(original_state);
@@ -205,7 +202,7 @@ void grpc_call_combiner_cancel(grpc_exec_ctx* exec_ctx,
205
202
  "call_combiner=%p: scheduling notify_on_cancel callback=%p",
206
203
  call_combiner, notify_on_cancel);
207
204
  }
208
- GRPC_CLOSURE_SCHED(exec_ctx, notify_on_cancel, GRPC_ERROR_REF(error));
205
+ GRPC_CLOSURE_SCHED(notify_on_cancel, GRPC_ERROR_REF(error));
209
206
  }
210
207
  break;
211
208
  }
@@ -23,13 +23,9 @@
23
23
 
24
24
  #include <grpc/support/atm.h>
25
25
 
26
+ #include "src/core/lib/gpr/mpscq.h"
26
27
  #include "src/core/lib/iomgr/closure.h"
27
28
  #include "src/core/lib/iomgr/exec_ctx.h"
28
- #include "src/core/lib/support/mpscq.h"
29
-
30
- #ifdef __cplusplus
31
- extern "C" {
32
- #endif
33
29
 
34
30
  // A simple, lock-free mechanism for serializing activity related to a
35
31
  // single call. This is similar to a combiner but is more lightweight.
@@ -57,37 +53,29 @@ void grpc_call_combiner_init(grpc_call_combiner* call_combiner);
57
53
  void grpc_call_combiner_destroy(grpc_call_combiner* call_combiner);
58
54
 
59
55
  #ifndef NDEBUG
60
- #define GRPC_CALL_COMBINER_START(exec_ctx, call_combiner, closure, error, \
61
- reason) \
62
- grpc_call_combiner_start((exec_ctx), (call_combiner), (closure), (error), \
63
- __FILE__, __LINE__, (reason))
64
- #define GRPC_CALL_COMBINER_STOP(exec_ctx, call_combiner, reason) \
65
- grpc_call_combiner_stop((exec_ctx), (call_combiner), __FILE__, __LINE__, \
66
- (reason))
56
+ #define GRPC_CALL_COMBINER_START(call_combiner, closure, error, reason) \
57
+ grpc_call_combiner_start((call_combiner), (closure), (error), __FILE__, \
58
+ __LINE__, (reason))
59
+ #define GRPC_CALL_COMBINER_STOP(call_combiner, reason) \
60
+ grpc_call_combiner_stop((call_combiner), __FILE__, __LINE__, (reason))
67
61
  /// Starts processing \a closure on \a call_combiner.
68
- void grpc_call_combiner_start(grpc_exec_ctx* exec_ctx,
69
- grpc_call_combiner* call_combiner,
62
+ void grpc_call_combiner_start(grpc_call_combiner* call_combiner,
70
63
  grpc_closure* closure, grpc_error* error,
71
64
  const char* file, int line, const char* reason);
72
65
  /// Yields the call combiner to the next closure in the queue, if any.
73
- void grpc_call_combiner_stop(grpc_exec_ctx* exec_ctx,
74
- grpc_call_combiner* call_combiner,
66
+ void grpc_call_combiner_stop(grpc_call_combiner* call_combiner,
75
67
  const char* file, int line, const char* reason);
76
68
  #else
77
- #define GRPC_CALL_COMBINER_START(exec_ctx, call_combiner, closure, error, \
78
- reason) \
79
- grpc_call_combiner_start((exec_ctx), (call_combiner), (closure), (error), \
80
- (reason))
81
- #define GRPC_CALL_COMBINER_STOP(exec_ctx, call_combiner, reason) \
82
- grpc_call_combiner_stop((exec_ctx), (call_combiner), (reason))
69
+ #define GRPC_CALL_COMBINER_START(call_combiner, closure, error, reason) \
70
+ grpc_call_combiner_start((call_combiner), (closure), (error), (reason))
71
+ #define GRPC_CALL_COMBINER_STOP(call_combiner, reason) \
72
+ grpc_call_combiner_stop((call_combiner), (reason))
83
73
  /// Starts processing \a closure on \a call_combiner.
84
- void grpc_call_combiner_start(grpc_exec_ctx* exec_ctx,
85
- grpc_call_combiner* call_combiner,
74
+ void grpc_call_combiner_start(grpc_call_combiner* call_combiner,
86
75
  grpc_closure* closure, grpc_error* error,
87
76
  const char* reason);
88
77
  /// Yields the call combiner to the next closure in the queue, if any.
89
- void grpc_call_combiner_stop(grpc_exec_ctx* exec_ctx,
90
- grpc_call_combiner* call_combiner,
78
+ void grpc_call_combiner_stop(grpc_call_combiner* call_combiner,
91
79
  const char* reason);
92
80
  #endif
93
81
 
@@ -113,17 +101,11 @@ void grpc_call_combiner_stop(grpc_exec_ctx* exec_ctx,
113
101
  /// cancellation; this effectively unregisters the previously set closure.
114
102
  /// However, most filters will not need to explicitly unregister their
115
103
  /// callbacks, as this is done automatically when the call is destroyed.
116
- void grpc_call_combiner_set_notify_on_cancel(grpc_exec_ctx* exec_ctx,
117
- grpc_call_combiner* call_combiner,
104
+ void grpc_call_combiner_set_notify_on_cancel(grpc_call_combiner* call_combiner,
118
105
  grpc_closure* closure);
119
106
 
120
107
  /// Indicates that the call has been cancelled.
121
- void grpc_call_combiner_cancel(grpc_exec_ctx* exec_ctx,
122
- grpc_call_combiner* call_combiner,
108
+ void grpc_call_combiner_cancel(grpc_call_combiner* call_combiner,
123
109
  grpc_error* error);
124
110
 
125
- #ifdef __cplusplus
126
- }
127
- #endif
128
-
129
111
  #endif /* GRPC_CORE_LIB_IOMGR_CALL_COMBINER_H */
@@ -22,13 +22,12 @@
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
24
  #include <assert.h>
25
- #include <grpc/impl/codegen/exec_ctx_fwd.h>
26
25
  #include <grpc/support/alloc.h>
27
26
  #include <grpc/support/log.h>
28
27
  #include <stdbool.h>
28
+ #include "src/core/lib/gpr/mpscq.h"
29
29
  #include "src/core/lib/iomgr/error.h"
30
30
  #include "src/core/lib/profiling/timers.h"
31
- #include "src/core/lib/support/mpscq.h"
32
31
 
33
32
  struct grpc_closure;
34
33
  typedef struct grpc_closure grpc_closure;
@@ -47,18 +46,15 @@ typedef struct grpc_closure_list {
47
46
  * describing what went wrong.
48
47
  * Error contract: it is not the cb's job to unref this error;
49
48
  * the closure scheduler will do that after the cb returns */
50
- typedef void (*grpc_iomgr_cb_func)(grpc_exec_ctx* exec_ctx, void* arg,
51
- grpc_error* error);
49
+ typedef void (*grpc_iomgr_cb_func)(void* arg, grpc_error* error);
52
50
 
53
51
  typedef struct grpc_closure_scheduler grpc_closure_scheduler;
54
52
 
55
53
  typedef struct grpc_closure_scheduler_vtable {
56
54
  /* NOTE: for all these functions, closure->scheduler == the scheduler that was
57
55
  used to find this vtable */
58
- void (*run)(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
59
- grpc_error* error);
60
- void (*sched)(grpc_exec_ctx* exec_ctx, grpc_closure* closure,
61
- grpc_error* error);
56
+ void (*run)(grpc_closure* closure, grpc_error* error);
57
+ void (*sched)(grpc_closure* closure, grpc_error* error);
62
58
  const char* name;
63
59
  } grpc_closure_scheduler_vtable;
64
60
 
@@ -146,13 +142,12 @@ typedef struct {
146
142
  grpc_closure wrapper;
147
143
  } wrapped_closure;
148
144
 
149
- inline void closure_wrapper(grpc_exec_ctx* exec_ctx, void* arg,
150
- grpc_error* error) {
145
+ inline void closure_wrapper(void* arg, grpc_error* error) {
151
146
  wrapped_closure* wc = (wrapped_closure*)arg;
152
147
  grpc_iomgr_cb_func cb = wc->cb;
153
148
  void* cb_arg = wc->cb_arg;
154
149
  gpr_free(wc);
155
- cb(exec_ctx, cb_arg, error);
150
+ cb(cb_arg, error);
156
151
  }
157
152
 
158
153
  } // namespace closure_impl
@@ -247,12 +242,10 @@ inline bool grpc_closure_list_empty(grpc_closure_list closure_list) {
247
242
  }
248
243
 
249
244
  #ifndef NDEBUG
250
- inline void grpc_closure_run(const char* file, int line,
251
- grpc_exec_ctx* exec_ctx, grpc_closure* c,
245
+ inline void grpc_closure_run(const char* file, int line, grpc_closure* c,
252
246
  grpc_error* error) {
253
247
  #else
254
- inline void grpc_closure_run(grpc_exec_ctx* exec_ctx, grpc_closure* c,
255
- grpc_error* error) {
248
+ inline void grpc_closure_run(grpc_closure* c, grpc_error* error) {
256
249
  #endif
257
250
  GPR_TIMER_BEGIN("grpc_closure_run", 0);
258
251
  if (c != nullptr) {
@@ -262,7 +255,7 @@ inline void grpc_closure_run(grpc_exec_ctx* exec_ctx, grpc_closure* c,
262
255
  c->run = true;
263
256
  #endif
264
257
  assert(c->cb);
265
- c->scheduler->vtable->run(exec_ctx, c, error);
258
+ c->scheduler->vtable->run(c, error);
266
259
  } else {
267
260
  GRPC_ERROR_UNREF(error);
268
261
  }
@@ -273,20 +266,17 @@ inline void grpc_closure_run(grpc_exec_ctx* exec_ctx, grpc_closure* c,
273
266
  * Note that calling this at the end of a closure callback function itself is
274
267
  * by definition safe. */
275
268
  #ifndef NDEBUG
276
- #define GRPC_CLOSURE_RUN(exec_ctx, closure, error) \
277
- grpc_closure_run(__FILE__, __LINE__, exec_ctx, closure, error)
269
+ #define GRPC_CLOSURE_RUN(closure, error) \
270
+ grpc_closure_run(__FILE__, __LINE__, closure, error)
278
271
  #else
279
- #define GRPC_CLOSURE_RUN(exec_ctx, closure, error) \
280
- grpc_closure_run(exec_ctx, closure, error)
272
+ #define GRPC_CLOSURE_RUN(closure, error) grpc_closure_run(closure, error)
281
273
  #endif
282
274
 
283
275
  #ifndef NDEBUG
284
- inline void grpc_closure_sched(const char* file, int line,
285
- grpc_exec_ctx* exec_ctx, grpc_closure* c,
276
+ inline void grpc_closure_sched(const char* file, int line, grpc_closure* c,
286
277
  grpc_error* error) {
287
278
  #else
288
- inline void grpc_closure_sched(grpc_exec_ctx* exec_ctx, grpc_closure* c,
289
- grpc_error* error) {
279
+ inline void grpc_closure_sched(grpc_closure* c, grpc_error* error) {
290
280
  #endif
291
281
  GPR_TIMER_BEGIN("grpc_closure_sched", 0);
292
282
  if (c != nullptr) {
@@ -305,7 +295,7 @@ inline void grpc_closure_sched(grpc_exec_ctx* exec_ctx, grpc_closure* c,
305
295
  c->run = false;
306
296
  #endif
307
297
  assert(c->cb);
308
- c->scheduler->vtable->sched(exec_ctx, c, error);
298
+ c->scheduler->vtable->sched(c, error);
309
299
  } else {
310
300
  GRPC_ERROR_UNREF(error);
311
301
  }
@@ -314,20 +304,17 @@ inline void grpc_closure_sched(grpc_exec_ctx* exec_ctx, grpc_closure* c,
314
304
 
315
305
  /** Schedule a closure to be run. Does not need to be run from a safe point. */
316
306
  #ifndef NDEBUG
317
- #define GRPC_CLOSURE_SCHED(exec_ctx, closure, error) \
318
- grpc_closure_sched(__FILE__, __LINE__, exec_ctx, closure, error)
307
+ #define GRPC_CLOSURE_SCHED(closure, error) \
308
+ grpc_closure_sched(__FILE__, __LINE__, closure, error)
319
309
  #else
320
- #define GRPC_CLOSURE_SCHED(exec_ctx, closure, error) \
321
- grpc_closure_sched(exec_ctx, closure, error)
310
+ #define GRPC_CLOSURE_SCHED(closure, error) grpc_closure_sched(closure, error)
322
311
  #endif
323
312
 
324
313
  #ifndef NDEBUG
325
314
  inline void grpc_closure_list_sched(const char* file, int line,
326
- grpc_exec_ctx* exec_ctx,
327
315
  grpc_closure_list* list) {
328
316
  #else
329
- inline void grpc_closure_list_sched(grpc_exec_ctx* exec_ctx,
330
- grpc_closure_list* list) {
317
+ inline void grpc_closure_list_sched(grpc_closure_list* list) {
331
318
  #endif
332
319
  grpc_closure* c = list->head;
333
320
  while (c != nullptr) {
@@ -347,7 +334,7 @@ inline void grpc_closure_list_sched(grpc_exec_ctx* exec_ctx,
347
334
  c->run = false;
348
335
  #endif
349
336
  assert(c->cb);
350
- c->scheduler->vtable->sched(exec_ctx, c, c->error_data.error);
337
+ c->scheduler->vtable->sched(c, c->error_data.error);
351
338
  c = next;
352
339
  }
353
340
  list->head = list->tail = nullptr;
@@ -356,11 +343,11 @@ inline void grpc_closure_list_sched(grpc_exec_ctx* exec_ctx,
356
343
  /** Schedule all closures in a list to be run. Does not need to be run from a
357
344
  * safe point. */
358
345
  #ifndef NDEBUG
359
- #define GRPC_CLOSURE_LIST_SCHED(exec_ctx, closure_list) \
360
- grpc_closure_list_sched(__FILE__, __LINE__, exec_ctx, closure_list)
346
+ #define GRPC_CLOSURE_LIST_SCHED(closure_list) \
347
+ grpc_closure_list_sched(__FILE__, __LINE__, closure_list)
361
348
  #else
362
- #define GRPC_CLOSURE_LIST_SCHED(exec_ctx, closure_list) \
363
- grpc_closure_list_sched(exec_ctx, closure_list)
349
+ #define GRPC_CLOSURE_LIST_SCHED(closure_list) \
350
+ grpc_closure_list_sched(closure_list)
364
351
  #endif
365
352
 
366
353
  #endif /* GRPC_CORE_LIB_IOMGR_CLOSURE_H */