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,10 +21,6 @@
21
21
 
22
22
  #include "src/core/lib/transport/transport_impl.h"
23
23
 
24
- #ifdef __cplusplus
25
- extern "C" {
26
- #endif
27
-
28
24
  grpc_channel* grpc_inproc_channel_create(grpc_server* server,
29
25
  grpc_channel_args* args,
30
26
  void* reserved);
@@ -34,8 +30,4 @@ extern grpc_core::TraceFlag grpc_inproc_trace;
34
30
  void grpc_inproc_transport_init(void);
35
31
  void grpc_inproc_transport_shutdown(void);
36
32
 
37
- #ifdef __cplusplus
38
- }
39
- #endif
40
-
41
33
  #endif /* GRPC_CORE_EXT_TRANSPORT_INPROC_INPROC_TRANSPORT_H */
@@ -18,63 +18,58 @@
18
18
 
19
19
  #include "src/core/lib/backoff/backoff.h"
20
20
 
21
+ #include <algorithm>
22
+
21
23
  #include <grpc/support/useful.h>
22
24
 
23
- void grpc_backoff_init(grpc_backoff* backoff, grpc_millis initial_backoff,
24
- double multiplier, double jitter,
25
- grpc_millis min_connect_timeout,
26
- grpc_millis max_backoff) {
27
- backoff->initial_backoff = initial_backoff;
28
- backoff->multiplier = multiplier;
29
- backoff->jitter = jitter;
30
- backoff->min_connect_timeout = min_connect_timeout;
31
- backoff->max_backoff = max_backoff;
32
- backoff->rng_state = (uint32_t)gpr_now(GPR_CLOCK_REALTIME).tv_nsec;
33
- }
25
+ namespace grpc_core {
34
26
 
35
- grpc_backoff_result grpc_backoff_begin(grpc_exec_ctx* exec_ctx,
36
- grpc_backoff* backoff) {
37
- backoff->current_backoff = backoff->initial_backoff;
38
- const grpc_millis initial_timeout =
39
- GPR_MAX(backoff->initial_backoff, backoff->min_connect_timeout);
40
- const grpc_millis now = grpc_exec_ctx_now(exec_ctx);
41
- const grpc_backoff_result result = {now + initial_timeout,
42
- now + backoff->current_backoff};
43
- return result;
44
- }
27
+ namespace {
45
28
 
46
- /* Generate a random number between 0 and 1. */
47
- static double generate_uniform_random_number(uint32_t* rng_state) {
48
- *rng_state = (1103515245 * *rng_state + 12345) % ((uint32_t)1 << 31);
49
- return *rng_state / (double)((uint32_t)1 << 31);
29
+ /* Generate a random number between 0 and 1. We roll our own RNG because seeding
30
+ * rand() modifies a global variable we have no control over. */
31
+ double generate_uniform_random_number(uint32_t* rng_state) {
32
+ constexpr uint32_t two_raise_31 = uint32_t(1) << 31;
33
+ *rng_state = (1103515245 * *rng_state + 12345) % two_raise_31;
34
+ return *rng_state / static_cast<double>(two_raise_31);
50
35
  }
51
36
 
52
- static double generate_uniform_random_number_between(uint32_t* rng_state,
53
- double a, double b) {
37
+ double generate_uniform_random_number_between(uint32_t* rng_state, double a,
38
+ double b) {
54
39
  if (a == b) return a;
55
40
  if (a > b) GPR_SWAP(double, a, b); // make sure a < b
56
41
  const double range = b - a;
57
42
  return a + generate_uniform_random_number(rng_state) * range;
58
43
  }
59
44
 
60
- grpc_backoff_result grpc_backoff_step(grpc_exec_ctx* exec_ctx,
61
- grpc_backoff* backoff) {
62
- backoff->current_backoff = (grpc_millis)(GPR_MIN(
63
- backoff->current_backoff * backoff->multiplier, backoff->max_backoff));
45
+ } // namespace
46
+
47
+ BackOff::BackOff(const Options& options)
48
+ : options_(options),
49
+ rng_state_(static_cast<uint32_t>(gpr_now(GPR_CLOCK_REALTIME).tv_nsec)) {
50
+ Reset();
51
+ }
52
+
53
+ grpc_millis BackOff::NextAttemptTime() {
54
+ if (initial_) {
55
+ initial_ = false;
56
+ return current_backoff_ + grpc_core::ExecCtx::Get()->Now();
57
+ }
58
+ current_backoff_ =
59
+ (grpc_millis)(std::min(current_backoff_ * options_.multiplier(),
60
+ (double)options_.max_backoff()));
64
61
  const double jitter = generate_uniform_random_number_between(
65
- &backoff->rng_state, -backoff->jitter * backoff->current_backoff,
66
- backoff->jitter * backoff->current_backoff);
67
- const grpc_millis current_timeout =
68
- GPR_MAX((grpc_millis)(backoff->current_backoff + jitter),
69
- backoff->min_connect_timeout);
70
- const grpc_millis next_timeout = GPR_MIN(
71
- (grpc_millis)(backoff->current_backoff + jitter), backoff->max_backoff);
72
- const grpc_millis now = grpc_exec_ctx_now(exec_ctx);
73
- const grpc_backoff_result result = {now + current_timeout,
74
- now + next_timeout};
75
- return result;
62
+ &rng_state_, -options_.jitter() * current_backoff_,
63
+ options_.jitter() * current_backoff_);
64
+ const grpc_millis next_timeout = (grpc_millis)(current_backoff_ + jitter);
65
+ return next_timeout + grpc_core::ExecCtx::Get()->Now();
76
66
  }
77
67
 
78
- void grpc_backoff_reset(grpc_backoff* backoff) {
79
- backoff->current_backoff = backoff->initial_backoff;
68
+ void BackOff::Reset() {
69
+ current_backoff_ = options_.initial_backoff();
70
+ initial_ = true;
80
71
  }
72
+
73
+ void BackOff::SetRandomSeed(uint32_t seed) { rng_state_ = seed; }
74
+
75
+ } // namespace grpc_core
@@ -21,63 +21,67 @@
21
21
 
22
22
  #include "src/core/lib/iomgr/exec_ctx.h"
23
23
 
24
- #ifdef __cplusplus
25
- extern "C" {
26
- #endif
27
-
28
- typedef struct {
29
- /// const: how long to wait after the first failure before retrying
30
- grpc_millis initial_backoff;
31
-
32
- /// const: factor with which to multiply backoff after a failed retry
33
- double multiplier;
34
-
35
- /// const: amount to randomize backoffs
36
- double jitter;
37
-
38
- /// const: minimum time between retries
39
- grpc_millis min_connect_timeout;
40
-
41
- /// const: maximum time between retries
42
- grpc_millis max_backoff;
43
-
24
+ namespace grpc_core {
25
+
26
+ /// Implementation of the backoff mechanism described in
27
+ /// doc/connection-backoff.md
28
+ class BackOff {
29
+ public:
30
+ class Options;
31
+
32
+ /// Initialize backoff machinery - does not need to be destroyed
33
+ explicit BackOff(const Options& options);
34
+
35
+ /// Returns the time at which the next attempt should start.
36
+ grpc_millis NextAttemptTime();
37
+
38
+ /// Reset the backoff, so the next value returned by NextAttemptTime()
39
+ /// will be the time of the second attempt (rather than the Nth).
40
+ void Reset();
41
+
42
+ void SetRandomSeed(unsigned int seed);
43
+
44
+ class Options {
45
+ public:
46
+ Options& set_initial_backoff(grpc_millis initial_backoff) {
47
+ initial_backoff_ = initial_backoff;
48
+ return *this;
49
+ }
50
+ Options& set_multiplier(double multiplier) {
51
+ multiplier_ = multiplier;
52
+ return *this;
53
+ }
54
+ Options& set_jitter(double jitter) {
55
+ jitter_ = jitter;
56
+ return *this;
57
+ }
58
+ Options& set_max_backoff(grpc_millis max_backoff) {
59
+ max_backoff_ = max_backoff;
60
+ return *this;
61
+ }
62
+ /// how long to wait after the first failure before retrying
63
+ grpc_millis initial_backoff() const { return initial_backoff_; }
64
+ /// factor with which to multiply backoff after a failed retry
65
+ double multiplier() const { return multiplier_; }
66
+ /// amount to randomize backoffs
67
+ double jitter() const { return jitter_; }
68
+ /// maximum time between retries
69
+ grpc_millis max_backoff() const { return max_backoff_; }
70
+
71
+ private:
72
+ grpc_millis initial_backoff_;
73
+ double multiplier_;
74
+ double jitter_;
75
+ grpc_millis max_backoff_;
76
+ }; // class Options
77
+
78
+ private:
79
+ const Options options_;
80
+ uint32_t rng_state_;
81
+ bool initial_;
44
82
  /// current delay before retries
45
- grpc_millis current_backoff;
46
-
47
- /// random number generator
48
- uint32_t rng_state;
49
- } grpc_backoff;
50
-
51
- typedef struct {
52
- /// Deadline to be used for the current attempt.
53
- grpc_millis current_deadline;
54
-
55
- /// Deadline to be used for the next attempt, following the backoff strategy.
56
- grpc_millis next_attempt_start_time;
57
- } grpc_backoff_result;
58
-
59
- /// Initialize backoff machinery - does not need to be destroyed
60
- void grpc_backoff_init(grpc_backoff* backoff, grpc_millis initial_backoff,
61
- double multiplier, double jitter,
62
- grpc_millis min_connect_timeout,
63
- grpc_millis max_backoff);
64
-
65
- /// Begin retry loop: returns the deadlines to be used for the current attempt
66
- /// and the subsequent retry, if any.
67
- grpc_backoff_result grpc_backoff_begin(grpc_exec_ctx* exec_ctx,
68
- grpc_backoff* backoff);
69
-
70
- /// Step a retry loop: returns the deadlines to be used for the current attempt
71
- /// and the subsequent retry, if any.
72
- grpc_backoff_result grpc_backoff_step(grpc_exec_ctx* exec_ctx,
73
- grpc_backoff* backoff);
74
-
75
- /// Reset the backoff, so the next grpc_backoff_step will be a
76
- /// grpc_backoff_begin.
77
- void grpc_backoff_reset(grpc_backoff* backoff);
78
-
79
- #ifdef __cplusplus
80
- }
81
- #endif
83
+ grpc_millis current_backoff_;
84
+ };
82
85
 
86
+ } // namespace grpc_core
83
87
  #endif /* GRPC_CORE_LIB_BACKOFF_BACKOFF_H */
@@ -29,7 +29,7 @@
29
29
  #include <grpc/support/useful.h>
30
30
 
31
31
  #include "src/core/lib/channel/channel_args.h"
32
- #include "src/core/lib/support/string.h"
32
+ #include "src/core/lib/gpr/string.h"
33
33
 
34
34
  static grpc_arg copy_arg(const grpc_arg* src) {
35
35
  grpc_arg dst;
@@ -188,7 +188,7 @@ grpc_channel_args* grpc_channel_args_normalize(const grpc_channel_args* a) {
188
188
  return b;
189
189
  }
190
190
 
191
- void grpc_channel_args_destroy(grpc_exec_ctx* exec_ctx, grpc_channel_args* a) {
191
+ void grpc_channel_args_destroy(grpc_channel_args* a) {
192
192
  size_t i;
193
193
  if (!a) return;
194
194
  for (i = 0; i < a->num_args; i++) {
@@ -199,8 +199,7 @@ void grpc_channel_args_destroy(grpc_exec_ctx* exec_ctx, grpc_channel_args* a) {
199
199
  case GRPC_ARG_INTEGER:
200
200
  break;
201
201
  case GRPC_ARG_POINTER:
202
- a->args[i].value.pointer.vtable->destroy(exec_ctx,
203
- a->args[i].value.pointer.p);
202
+ a->args[i].value.pointer.vtable->destroy(a->args[i].value.pointer.p);
204
203
  break;
205
204
  }
206
205
  gpr_free(a->args[i].key);
@@ -299,8 +298,7 @@ static int find_stream_compression_algorithm_states_bitset(
299
298
  }
300
299
 
301
300
  grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
302
- grpc_exec_ctx* exec_ctx, grpc_channel_args** a,
303
- grpc_compression_algorithm algorithm, int state) {
301
+ grpc_channel_args** a, grpc_compression_algorithm algorithm, int state) {
304
302
  int* states_arg = nullptr;
305
303
  grpc_channel_args* result = *a;
306
304
  const int states_arg_found =
@@ -333,15 +331,15 @@ grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
333
331
  GPR_BITCLEAR((unsigned*)&tmp.value.integer, algorithm);
334
332
  }
335
333
  result = grpc_channel_args_copy_and_add(*a, &tmp, 1);
336
- grpc_channel_args_destroy(exec_ctx, *a);
334
+ grpc_channel_args_destroy(*a);
337
335
  *a = result;
338
336
  }
339
337
  return result;
340
338
  }
341
339
 
342
340
  grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
343
- grpc_exec_ctx* exec_ctx, grpc_channel_args** a,
344
- grpc_stream_compression_algorithm algorithm, int state) {
341
+ grpc_channel_args** a, grpc_stream_compression_algorithm algorithm,
342
+ int state) {
345
343
  int* states_arg = nullptr;
346
344
  grpc_channel_args* result = *a;
347
345
  const int states_arg_found =
@@ -375,7 +373,7 @@ grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
375
373
  GPR_BITCLEAR((unsigned*)&tmp.value.integer, algorithm);
376
374
  }
377
375
  result = grpc_channel_args_copy_and_add(*a, &tmp, 1);
378
- grpc_channel_args_destroy(exec_ctx, *a);
376
+ grpc_channel_args_destroy(*a);
379
377
  *a = result;
380
378
  }
381
379
  return result;
@@ -23,10 +23,6 @@
23
23
  #include <grpc/grpc.h>
24
24
  #include "src/core/lib/iomgr/socket_mutator.h"
25
25
 
26
- #ifdef __cplusplus
27
- extern "C" {
28
- #endif
29
-
30
26
  // Channel args are intentionally immutable, to avoid the need for locking.
31
27
 
32
28
  /** Copy the arguments in \a src into a new instance */
@@ -57,7 +53,7 @@ grpc_channel_args* grpc_channel_args_union(const grpc_channel_args* a,
57
53
  const grpc_channel_args* b);
58
54
 
59
55
  /** Destroy arguments created by \a grpc_channel_args_copy */
60
- void grpc_channel_args_destroy(grpc_exec_ctx* exec_ctx, grpc_channel_args* a);
56
+ void grpc_channel_args_destroy(grpc_channel_args* a);
61
57
 
62
58
  /** Returns the compression algorithm set in \a a. */
63
59
  grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
@@ -89,8 +85,7 @@ grpc_channel_args* grpc_channel_args_set_stream_compression_algorithm(
89
85
  * modified to point to the returned instance (which may be different from the
90
86
  * input value of \a a). */
91
87
  grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
92
- grpc_exec_ctx* exec_ctx, grpc_channel_args** a,
93
- grpc_compression_algorithm algorithm, int enabled);
88
+ grpc_channel_args** a, grpc_compression_algorithm algorithm, int enabled);
94
89
 
95
90
  /** Sets the support for the given stream compression algorithm. By default, all
96
91
  * stream compression algorithms are enabled. It's an error to disable an
@@ -100,8 +95,8 @@ grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
100
95
  * modified to point to the returned instance (which may be different from the
101
96
  * input value of \a a). */
102
97
  grpc_channel_args* grpc_channel_args_stream_compression_algorithm_set_state(
103
- grpc_exec_ctx* exec_ctx, grpc_channel_args** a,
104
- grpc_stream_compression_algorithm algorithm, int enabled);
98
+ grpc_channel_args** a, grpc_stream_compression_algorithm algorithm,
99
+ int enabled);
105
100
 
106
101
  /** Returns the bitset representing the support state (true for enabled, false
107
102
  * for disabled) for compression algorithms.
@@ -153,8 +148,4 @@ grpc_arg grpc_channel_arg_integer_create(char* name, int value);
153
148
  grpc_arg grpc_channel_arg_pointer_create(char* name, void* value,
154
149
  const grpc_arg_pointer_vtable* vtable);
155
150
 
156
- #ifdef __cplusplus
157
- }
158
- #endif
159
-
160
151
  #endif /* GRPC_CORE_LIB_CHANNEL_CHANNEL_ARGS_H */
@@ -88,8 +88,8 @@ grpc_call_element* grpc_call_stack_element(grpc_call_stack* call_stack,
88
88
  }
89
89
 
90
90
  grpc_error* grpc_channel_stack_init(
91
- grpc_exec_ctx* exec_ctx, int initial_refs, grpc_iomgr_cb_func destroy,
92
- void* destroy_arg, const grpc_channel_filter** filters, size_t filter_count,
91
+ int initial_refs, grpc_iomgr_cb_func destroy, void* destroy_arg,
92
+ const grpc_channel_filter** filters, size_t filter_count,
93
93
  const grpc_channel_args* channel_args, grpc_transport* optional_transport,
94
94
  const char* name, grpc_channel_stack* stack) {
95
95
  size_t call_size =
@@ -117,8 +117,7 @@ grpc_error* grpc_channel_stack_init(
117
117
  args.is_last = i == (filter_count - 1);
118
118
  elems[i].filter = filters[i];
119
119
  elems[i].channel_data = user_data;
120
- grpc_error* error =
121
- elems[i].filter->init_channel_elem(exec_ctx, &elems[i], &args);
120
+ grpc_error* error = elems[i].filter->init_channel_elem(&elems[i], &args);
122
121
  if (error != GRPC_ERROR_NONE) {
123
122
  if (first_error == GRPC_ERROR_NONE) {
124
123
  first_error = error;
@@ -138,20 +137,18 @@ grpc_error* grpc_channel_stack_init(
138
137
  return first_error;
139
138
  }
140
139
 
141
- void grpc_channel_stack_destroy(grpc_exec_ctx* exec_ctx,
142
- grpc_channel_stack* stack) {
140
+ void grpc_channel_stack_destroy(grpc_channel_stack* stack) {
143
141
  grpc_channel_element* channel_elems = CHANNEL_ELEMS_FROM_STACK(stack);
144
142
  size_t count = stack->count;
145
143
  size_t i;
146
144
 
147
145
  /* destroy per-filter data */
148
146
  for (i = 0; i < count; i++) {
149
- channel_elems[i].filter->destroy_channel_elem(exec_ctx, &channel_elems[i]);
147
+ channel_elems[i].filter->destroy_channel_elem(&channel_elems[i]);
150
148
  }
151
149
  }
152
150
 
153
- grpc_error* grpc_call_stack_init(grpc_exec_ctx* exec_ctx,
154
- grpc_channel_stack* channel_stack,
151
+ grpc_error* grpc_call_stack_init(grpc_channel_stack* channel_stack,
155
152
  int initial_refs, grpc_iomgr_cb_func destroy,
156
153
  void* destroy_arg,
157
154
  const grpc_call_element_args* elem_args) {
@@ -174,8 +171,8 @@ grpc_error* grpc_call_stack_init(grpc_exec_ctx* exec_ctx,
174
171
  call_elems[i].filter = channel_elems[i].filter;
175
172
  call_elems[i].channel_data = channel_elems[i].channel_data;
176
173
  call_elems[i].call_data = user_data;
177
- grpc_error* error = call_elems[i].filter->init_call_elem(
178
- exec_ctx, &call_elems[i], elem_args);
174
+ grpc_error* error =
175
+ call_elems[i].filter->init_call_elem(&call_elems[i], elem_args);
179
176
  if (error != GRPC_ERROR_NONE) {
180
177
  if (first_error == GRPC_ERROR_NONE) {
181
178
  first_error = error;
@@ -189,8 +186,7 @@ grpc_error* grpc_call_stack_init(grpc_exec_ctx* exec_ctx,
189
186
  return first_error;
190
187
  }
191
188
 
192
- void grpc_call_stack_set_pollset_or_pollset_set(grpc_exec_ctx* exec_ctx,
193
- grpc_call_stack* call_stack,
189
+ void grpc_call_stack_set_pollset_or_pollset_set(grpc_call_stack* call_stack,
194
190
  grpc_polling_entity* pollent) {
195
191
  size_t count = call_stack->count;
196
192
  grpc_call_element* call_elems;
@@ -203,18 +199,16 @@ void grpc_call_stack_set_pollset_or_pollset_set(grpc_exec_ctx* exec_ctx,
203
199
 
204
200
  /* init per-filter data */
205
201
  for (i = 0; i < count; i++) {
206
- call_elems[i].filter->set_pollset_or_pollset_set(exec_ctx, &call_elems[i],
207
- pollent);
202
+ call_elems[i].filter->set_pollset_or_pollset_set(&call_elems[i], pollent);
208
203
  user_data +=
209
204
  ROUND_UP_TO_ALIGNMENT_SIZE(call_elems[i].filter->sizeof_call_data);
210
205
  }
211
206
  }
212
207
 
213
208
  void grpc_call_stack_ignore_set_pollset_or_pollset_set(
214
- grpc_exec_ctx* exec_ctx, grpc_call_element* elem,
215
- grpc_polling_entity* pollent) {}
209
+ grpc_call_element* elem, grpc_polling_entity* pollent) {}
216
210
 
217
- void grpc_call_stack_destroy(grpc_exec_ctx* exec_ctx, grpc_call_stack* stack,
211
+ void grpc_call_stack_destroy(grpc_call_stack* stack,
218
212
  const grpc_call_final_info* final_info,
219
213
  grpc_closure* then_schedule_closure) {
220
214
  grpc_call_element* elems = CALL_ELEMS_FROM_STACK(stack);
@@ -224,29 +218,27 @@ void grpc_call_stack_destroy(grpc_exec_ctx* exec_ctx, grpc_call_stack* stack,
224
218
  /* destroy per-filter data */
225
219
  for (i = 0; i < count; i++) {
226
220
  elems[i].filter->destroy_call_elem(
227
- exec_ctx, &elems[i], final_info,
221
+ &elems[i], final_info,
228
222
  i == count - 1 ? then_schedule_closure : nullptr);
229
223
  }
230
224
  }
231
225
 
232
- void grpc_call_next_op(grpc_exec_ctx* exec_ctx, grpc_call_element* elem,
226
+ void grpc_call_next_op(grpc_call_element* elem,
233
227
  grpc_transport_stream_op_batch* op) {
234
228
  grpc_call_element* next_elem = elem + 1;
235
229
  GRPC_CALL_LOG_OP(GPR_INFO, next_elem, op);
236
- next_elem->filter->start_transport_stream_op_batch(exec_ctx, next_elem, op);
230
+ next_elem->filter->start_transport_stream_op_batch(next_elem, op);
237
231
  }
238
232
 
239
- void grpc_channel_next_get_info(grpc_exec_ctx* exec_ctx,
240
- grpc_channel_element* elem,
233
+ void grpc_channel_next_get_info(grpc_channel_element* elem,
241
234
  const grpc_channel_info* channel_info) {
242
235
  grpc_channel_element* next_elem = elem + 1;
243
- next_elem->filter->get_channel_info(exec_ctx, next_elem, channel_info);
236
+ next_elem->filter->get_channel_info(next_elem, channel_info);
244
237
  }
245
238
 
246
- void grpc_channel_next_op(grpc_exec_ctx* exec_ctx, grpc_channel_element* elem,
247
- grpc_transport_op* op) {
239
+ void grpc_channel_next_op(grpc_channel_element* elem, grpc_transport_op* op) {
248
240
  grpc_channel_element* next_elem = elem + 1;
249
- next_elem->filter->start_transport_op(exec_ctx, next_elem, op);
241
+ next_elem->filter->start_transport_op(next_elem, op);
250
242
  }
251
243
 
252
244
  grpc_channel_stack* grpc_channel_stack_from_top_element(