grpc 1.37.1 → 1.38.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 (544) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +64 -58
  3. data/include/grpc/event_engine/README.md +38 -0
  4. data/include/grpc/event_engine/channel_args.h +28 -0
  5. data/include/grpc/event_engine/event_engine.h +336 -0
  6. data/include/grpc/event_engine/port.h +39 -0
  7. data/include/grpc/event_engine/slice_allocator.h +81 -0
  8. data/include/grpc/grpc.h +2 -2
  9. data/include/grpc/grpc_security_constants.h +14 -0
  10. data/include/grpc/impl/codegen/grpc_types.h +11 -0
  11. data/include/grpc/impl/codegen/port_platform.h +5 -0
  12. data/include/grpc/module.modulemap +14 -14
  13. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
  14. data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
  15. data/src/core/ext/filters/client_channel/client_channel.cc +628 -3101
  16. data/src/core/ext/filters/client_channel/client_channel.h +489 -55
  17. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
  18. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
  19. data/src/core/ext/filters/client_channel/config_selector.h +1 -1
  20. data/src/core/ext/filters/client_channel/connector.h +1 -1
  21. data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
  22. data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
  23. data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
  24. data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
  25. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
  26. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
  32. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
  33. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
  34. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
  35. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
  36. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
  37. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +36 -30
  38. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +84 -61
  41. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
  42. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
  43. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  44. data/src/core/ext/filters/client_channel/resolver.h +2 -2
  45. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
  46. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  54. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -9
  55. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
  56. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
  57. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -11
  58. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
  59. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +43 -28
  60. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
  61. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
  62. data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
  63. data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
  64. data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
  65. data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
  66. data/src/core/ext/filters/client_channel/server_address.cc +1 -1
  67. data/src/core/ext/filters/client_channel/service_config.cc +15 -14
  68. data/src/core/ext/filters/client_channel/service_config.h +7 -6
  69. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
  70. data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
  71. data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
  72. data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
  73. data/src/core/ext/filters/client_channel/subchannel.h +7 -6
  74. data/src/core/ext/filters/client_idle/client_idle_filter.cc +16 -15
  75. data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
  76. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
  77. data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
  78. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  79. data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
  80. data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
  81. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
  82. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
  83. data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
  84. data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
  85. data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
  86. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  87. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
  88. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
  89. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
  90. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
  91. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
  92. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
  93. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
  94. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
  95. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
  96. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -2
  97. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
  98. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
  99. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  100. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
  101. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  102. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
  103. data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
  104. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
  105. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
  106. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
  107. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
  108. data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
  109. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  110. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  111. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
  112. data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
  113. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
  114. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
  115. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
  116. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
  117. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
  118. data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
  119. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  120. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
  121. data/src/core/ext/transport/chttp2/transport/internal.h +31 -27
  122. data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
  123. data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
  124. data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
  125. data/src/core/ext/xds/certificate_provider_factory.h +1 -1
  126. data/src/core/ext/xds/certificate_provider_store.h +3 -3
  127. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
  128. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  129. data/src/core/ext/xds/xds_api.cc +101 -93
  130. data/src/core/ext/xds/xds_api.h +6 -6
  131. data/src/core/ext/xds/xds_bootstrap.cc +97 -159
  132. data/src/core/ext/xds/xds_bootstrap.h +19 -24
  133. data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
  134. data/src/core/ext/xds/xds_certificate_provider.h +4 -4
  135. data/src/core/ext/xds/xds_channel_args.h +5 -2
  136. data/src/core/ext/xds/xds_client.cc +310 -178
  137. data/src/core/ext/xds/xds_client.h +41 -27
  138. data/src/core/ext/xds/xds_client_stats.h +3 -2
  139. data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
  140. data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
  141. data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
  142. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +3 -20
  143. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -11
  144. data/src/core/lib/channel/channel_stack.cc +10 -9
  145. data/src/core/lib/channel/channel_stack.h +10 -9
  146. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  147. data/src/core/lib/channel/channel_stack_builder.h +1 -1
  148. data/src/core/lib/channel/channelz.cc +21 -13
  149. data/src/core/lib/channel/connected_channel.cc +4 -4
  150. data/src/core/lib/channel/handshaker.cc +7 -6
  151. data/src/core/lib/channel/handshaker.h +5 -5
  152. data/src/core/lib/event_engine/slice_allocator.cc +59 -0
  153. data/src/core/lib/event_engine/sockaddr.cc +38 -0
  154. data/src/core/lib/gprpp/ref_counted.h +28 -14
  155. data/src/core/lib/gprpp/status_helper.cc +407 -0
  156. data/src/core/lib/gprpp/status_helper.h +180 -0
  157. data/src/core/lib/http/httpcli.cc +11 -11
  158. data/src/core/lib/http/httpcli_security_connector.cc +11 -7
  159. data/src/core/lib/http/parser.cc +16 -16
  160. data/src/core/lib/http/parser.h +4 -4
  161. data/src/core/lib/iomgr/buffer_list.cc +7 -9
  162. data/src/core/lib/iomgr/buffer_list.h +4 -5
  163. data/src/core/lib/iomgr/call_combiner.cc +15 -12
  164. data/src/core/lib/iomgr/call_combiner.h +12 -14
  165. data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
  166. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  167. data/src/core/lib/iomgr/closure.h +7 -6
  168. data/src/core/lib/iomgr/combiner.cc +14 -12
  169. data/src/core/lib/iomgr/combiner.h +2 -2
  170. data/src/core/lib/iomgr/endpoint.cc +1 -1
  171. data/src/core/lib/iomgr/endpoint.h +2 -2
  172. data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
  173. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  174. data/src/core/lib/iomgr/error.cc +167 -61
  175. data/src/core/lib/iomgr/error.h +217 -106
  176. data/src/core/lib/iomgr/error_cfstream.cc +3 -2
  177. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  178. data/src/core/lib/iomgr/error_internal.h +5 -1
  179. data/src/core/lib/iomgr/ev_apple.cc +5 -5
  180. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
  181. data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
  182. data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
  183. data/src/core/lib/iomgr/ev_posix.cc +9 -8
  184. data/src/core/lib/iomgr/ev_posix.h +9 -9
  185. data/src/core/lib/iomgr/exec_ctx.cc +4 -4
  186. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  187. data/src/core/lib/iomgr/executor.cc +8 -8
  188. data/src/core/lib/iomgr/executor.h +2 -2
  189. data/src/core/lib/iomgr/iomgr.cc +1 -1
  190. data/src/core/lib/iomgr/iomgr.h +1 -1
  191. data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
  192. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  193. data/src/core/lib/iomgr/iomgr_internal.h +3 -3
  194. data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
  195. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
  196. data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
  197. data/src/core/lib/iomgr/load_file.cc +4 -4
  198. data/src/core/lib/iomgr/load_file.h +2 -2
  199. data/src/core/lib/iomgr/lockfree_event.cc +5 -5
  200. data/src/core/lib/iomgr/lockfree_event.h +1 -1
  201. data/src/core/lib/iomgr/pollset.cc +5 -5
  202. data/src/core/lib/iomgr/pollset.h +9 -9
  203. data/src/core/lib/iomgr/pollset_custom.cc +5 -5
  204. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  205. data/src/core/lib/iomgr/port.h +1 -1
  206. data/src/core/lib/iomgr/python_util.h +1 -1
  207. data/src/core/lib/iomgr/resolve_address.cc +3 -3
  208. data/src/core/lib/iomgr/resolve_address.h +6 -6
  209. data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
  210. data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
  211. data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
  212. data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
  213. data/src/core/lib/iomgr/resource_quota.cc +11 -10
  214. data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
  215. data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
  216. data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
  217. data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
  218. data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
  219. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  220. data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
  221. data/src/core/lib/iomgr/tcp_custom.cc +14 -16
  222. data/src/core/lib/iomgr/tcp_custom.h +13 -12
  223. data/src/core/lib/iomgr/tcp_posix.cc +36 -34
  224. data/src/core/lib/iomgr/tcp_server.cc +6 -6
  225. data/src/core/lib/iomgr/tcp_server.h +12 -11
  226. data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
  227. data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
  228. data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
  229. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
  230. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
  231. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  232. data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
  233. data/src/core/lib/iomgr/tcp_uv.cc +25 -23
  234. data/src/core/lib/iomgr/tcp_windows.cc +13 -13
  235. data/src/core/lib/iomgr/tcp_windows.h +2 -2
  236. data/src/core/lib/iomgr/timer_custom.cc +2 -1
  237. data/src/core/lib/iomgr/timer_custom.h +1 -1
  238. data/src/core/lib/iomgr/timer_generic.cc +6 -6
  239. data/src/core/lib/iomgr/udp_server.cc +21 -20
  240. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  241. data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
  242. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
  243. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  244. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
  245. data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
  246. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  247. data/src/core/lib/iomgr/work_serializer.h +17 -1
  248. data/src/core/lib/json/json.h +1 -1
  249. data/src/core/lib/json/json_reader.cc +4 -4
  250. data/src/core/lib/matchers/matchers.cc +39 -39
  251. data/src/core/lib/matchers/matchers.h +28 -28
  252. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
  253. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
  254. data/src/core/lib/security/credentials/credentials.h +2 -2
  255. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
  256. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
  257. data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
  258. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  259. data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
  260. data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
  261. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
  262. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
  263. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
  264. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
  265. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
  266. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  267. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
  268. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
  269. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  270. data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
  271. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
  272. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  273. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
  274. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
  275. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
  276. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
  277. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
  278. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
  279. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
  280. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
  281. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
  282. data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
  283. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
  284. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
  285. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  286. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
  287. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
  288. data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
  289. data/src/core/lib/security/security_connector/security_connector.h +9 -4
  290. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
  291. data/src/core/lib/security/security_connector/ssl_utils.cc +22 -4
  292. data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
  293. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
  294. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
  295. data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
  296. data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
  297. data/src/core/lib/security/transport/security_handshaker.cc +33 -32
  298. data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
  299. data/src/core/lib/security/transport/tsi_error.cc +2 -1
  300. data/src/core/lib/security/transport/tsi_error.h +2 -1
  301. data/src/core/lib/security/util/json_util.cc +2 -2
  302. data/src/core/lib/security/util/json_util.h +1 -1
  303. data/src/core/lib/surface/call.cc +46 -45
  304. data/src/core/lib/surface/call.h +2 -2
  305. data/src/core/lib/surface/channel.cc +6 -6
  306. data/src/core/lib/surface/channel.h +3 -2
  307. data/src/core/lib/surface/channel_ping.cc +1 -1
  308. data/src/core/lib/surface/completion_queue.cc +46 -47
  309. data/src/core/lib/surface/completion_queue.h +2 -1
  310. data/src/core/lib/surface/lame_client.cc +11 -11
  311. data/src/core/lib/surface/lame_client.h +1 -1
  312. data/src/core/lib/surface/server.cc +28 -22
  313. data/src/core/lib/surface/server.h +16 -15
  314. data/src/core/lib/surface/validate_metadata.cc +7 -7
  315. data/src/core/lib/surface/validate_metadata.h +3 -2
  316. data/src/core/lib/surface/version.cc +4 -2
  317. data/src/core/lib/transport/byte_stream.cc +5 -5
  318. data/src/core/lib/transport/byte_stream.h +8 -8
  319. data/src/core/lib/transport/connectivity_state.cc +1 -1
  320. data/src/core/lib/transport/error_utils.cc +19 -8
  321. data/src/core/lib/transport/error_utils.h +11 -5
  322. data/src/core/lib/transport/metadata_batch.cc +37 -37
  323. data/src/core/lib/transport/metadata_batch.h +19 -18
  324. data/src/core/lib/transport/transport.cc +4 -3
  325. data/src/core/lib/transport/transport.h +4 -4
  326. data/src/core/lib/transport/transport_op_string.cc +5 -5
  327. data/src/core/tsi/alts/crypt/gsec.h +4 -0
  328. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
  329. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
  330. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  331. data/src/core/tsi/ssl_transport_security.cc +32 -14
  332. data/src/core/tsi/ssl_transport_security.h +3 -4
  333. data/src/ruby/bin/math_services_pb.rb +1 -1
  334. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
  335. data/src/ruby/lib/grpc/version.rb +1 -1
  336. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  337. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
  338. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
  339. data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
  340. data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
  341. data/third_party/abseil-cpp/absl/base/config.h +37 -9
  342. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
  343. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
  344. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  345. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
  346. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
  347. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
  348. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
  349. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
  350. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  351. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
  352. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  353. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  354. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  355. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
  356. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
  357. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
  358. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  359. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  360. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  361. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  362. data/third_party/abseil-cpp/absl/base/macros.h +11 -0
  363. data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
  364. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  365. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  366. data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
  367. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
  368. data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
  369. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
  370. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
  371. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
  372. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  373. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  374. data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
  375. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
  376. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
  377. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
  378. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
  379. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
  380. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
  381. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
  382. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
  383. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
  384. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  385. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  386. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
  387. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
  388. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  389. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  390. data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
  391. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  392. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
  393. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  394. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  395. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  396. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
  397. data/third_party/abseil-cpp/absl/status/status.cc +29 -22
  398. data/third_party/abseil-cpp/absl/status/status.h +81 -20
  399. data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
  400. data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
  401. data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
  402. data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
  403. data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
  404. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
  405. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  406. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
  407. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  408. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  409. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  410. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  411. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
  412. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
  413. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
  414. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
  415. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
  416. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
  417. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
  418. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
  419. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
  420. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  421. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  422. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  423. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  424. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  425. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  426. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  427. data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
  428. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  429. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
  430. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
  431. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
  432. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
  433. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
  434. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
  435. data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
  436. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  437. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  438. data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
  439. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
  440. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
  441. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
  442. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  443. data/third_party/abseil-cpp/absl/time/time.h +26 -24
  444. data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
  445. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  446. data/third_party/boringssl-with-bazel/err_data.c +477 -461
  447. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
  448. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
  449. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
  450. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
  451. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
  452. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
  453. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
  454. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  455. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
  456. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  457. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  458. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
  459. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
  460. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
  461. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
  462. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  463. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
  464. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
  465. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
  466. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  467. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
  468. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  469. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
  470. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
  471. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  472. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  473. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  474. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  475. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  476. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  477. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
  478. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  479. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
  480. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
  481. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
  482. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
  483. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
  484. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
  485. data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
  486. data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
  487. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
  488. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
  489. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
  490. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
  491. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  492. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
  493. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  494. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
  495. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
  496. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
  497. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
  498. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
  499. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
  501. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
  502. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  503. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  504. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
  505. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  506. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
  507. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
  508. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
  509. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
  510. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
  511. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
  512. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
  513. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
  514. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  515. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
  516. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  517. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
  518. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
  519. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  520. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
  521. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +185 -17
  522. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
  523. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
  524. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
  525. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
  526. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
  527. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
  528. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
  529. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
  530. data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
  531. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
  532. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  533. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
  534. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
  535. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
  536. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
  537. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
  538. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  539. metadata +68 -45
  540. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
  541. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  542. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
  543. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
  544. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.37.1
4
+ version: 1.38.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - gRPC Authors
8
8
  autorequire:
9
9
  bindir: src/ruby/bin
10
10
  cert_chain: []
11
- date: 2021-04-29 00:00:00.000000000 Z
11
+ date: 2021-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -212,6 +212,11 @@ files:
212
212
  - include/grpc/byte_buffer_reader.h
213
213
  - include/grpc/census.h
214
214
  - include/grpc/compression.h
215
+ - include/grpc/event_engine/README.md
216
+ - include/grpc/event_engine/channel_args.h
217
+ - include/grpc/event_engine/event_engine.h
218
+ - include/grpc/event_engine/port.h
219
+ - include/grpc/event_engine/slice_allocator.h
215
220
  - include/grpc/fork.h
216
221
  - include/grpc/grpc.h
217
222
  - include/grpc/grpc_cronet.h
@@ -357,6 +362,10 @@ files:
357
362
  - src/core/ext/filters/client_channel/resolver_registry.h
358
363
  - src/core/ext/filters/client_channel/resolver_result_parsing.cc
359
364
  - src/core/ext/filters/client_channel/resolver_result_parsing.h
365
+ - src/core/ext/filters/client_channel/retry_filter.cc
366
+ - src/core/ext/filters/client_channel/retry_filter.h
367
+ - src/core/ext/filters/client_channel/retry_service_config.cc
368
+ - src/core/ext/filters/client_channel/retry_service_config.h
360
369
  - src/core/ext/filters/client_channel/retry_throttle.cc
361
370
  - src/core/ext/filters/client_channel/retry_throttle.h
362
371
  - src/core/ext/filters/client_channel/server_address.cc
@@ -860,6 +869,10 @@ files:
860
869
  - src/core/ext/xds/xds_http_filters.cc
861
870
  - src/core/ext/xds/xds_http_filters.h
862
871
  - src/core/ext/xds/xds_server_config_fetcher.cc
872
+ - src/core/lib/address_utils/parse_address.cc
873
+ - src/core/lib/address_utils/parse_address.h
874
+ - src/core/lib/address_utils/sockaddr_utils.cc
875
+ - src/core/lib/address_utils/sockaddr_utils.h
863
876
  - src/core/lib/avl/avl.cc
864
877
  - src/core/lib/avl/avl.h
865
878
  - src/core/lib/backoff/backoff.cc
@@ -906,6 +919,8 @@ files:
906
919
  - src/core/lib/debug/stats_data.h
907
920
  - src/core/lib/debug/trace.cc
908
921
  - src/core/lib/debug/trace.h
922
+ - src/core/lib/event_engine/slice_allocator.cc
923
+ - src/core/lib/event_engine/sockaddr.cc
909
924
  - src/core/lib/gpr/alloc.cc
910
925
  - src/core/lib/gpr/alloc.h
911
926
  - src/core/lib/gpr/arena.h
@@ -979,6 +994,8 @@ files:
979
994
  - src/core/lib/gprpp/stat.h
980
995
  - src/core/lib/gprpp/stat_posix.cc
981
996
  - src/core/lib/gprpp/stat_windows.cc
997
+ - src/core/lib/gprpp/status_helper.cc
998
+ - src/core/lib/gprpp/status_helper.h
982
999
  - src/core/lib/gprpp/sync.h
983
1000
  - src/core/lib/gprpp/thd.h
984
1001
  - src/core/lib/gprpp/thd_posix.cc
@@ -1066,10 +1083,6 @@ files:
1066
1083
  - src/core/lib/iomgr/lockfree_event.cc
1067
1084
  - src/core/lib/iomgr/lockfree_event.h
1068
1085
  - src/core/lib/iomgr/nameser.h
1069
- - src/core/lib/iomgr/parse_address.cc
1070
- - src/core/lib/iomgr/parse_address.h
1071
- - src/core/lib/iomgr/poller/eventmanager_libuv.cc
1072
- - src/core/lib/iomgr/poller/eventmanager_libuv.h
1073
1086
  - src/core/lib/iomgr/polling_entity.cc
1074
1087
  - src/core/lib/iomgr/polling_entity.h
1075
1088
  - src/core/lib/iomgr/pollset.cc
@@ -1099,8 +1112,6 @@ files:
1099
1112
  - src/core/lib/iomgr/sockaddr.h
1100
1113
  - src/core/lib/iomgr/sockaddr_custom.h
1101
1114
  - src/core/lib/iomgr/sockaddr_posix.h
1102
- - src/core/lib/iomgr/sockaddr_utils.cc
1103
- - src/core/lib/iomgr/sockaddr_utils.h
1104
1115
  - src/core/lib/iomgr/sockaddr_windows.h
1105
1116
  - src/core/lib/iomgr/socket_factory_posix.cc
1106
1117
  - src/core/lib/iomgr/socket_factory_posix.h
@@ -1524,7 +1535,6 @@ files:
1524
1535
  - third_party/abseil-cpp/absl/base/const_init.h
1525
1536
  - third_party/abseil-cpp/absl/base/dynamic_annotations.h
1526
1537
  - third_party/abseil-cpp/absl/base/internal/atomic_hook.h
1527
- - third_party/abseil-cpp/absl/base/internal/bits.h
1528
1538
  - third_party/abseil-cpp/absl/base/internal/cycleclock.cc
1529
1539
  - third_party/abseil-cpp/absl/base/internal/cycleclock.h
1530
1540
  - third_party/abseil-cpp/absl/base/internal/direct_mmap.h
@@ -1623,12 +1633,17 @@ files:
1623
1633
  - third_party/abseil-cpp/absl/hash/internal/city.h
1624
1634
  - third_party/abseil-cpp/absl/hash/internal/hash.cc
1625
1635
  - third_party/abseil-cpp/absl/hash/internal/hash.h
1636
+ - third_party/abseil-cpp/absl/hash/internal/wyhash.cc
1637
+ - third_party/abseil-cpp/absl/hash/internal/wyhash.h
1626
1638
  - third_party/abseil-cpp/absl/memory/memory.h
1627
1639
  - third_party/abseil-cpp/absl/meta/type_traits.h
1640
+ - third_party/abseil-cpp/absl/numeric/bits.h
1628
1641
  - third_party/abseil-cpp/absl/numeric/int128.cc
1629
1642
  - third_party/abseil-cpp/absl/numeric/int128.h
1630
1643
  - third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc
1631
1644
  - third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc
1645
+ - third_party/abseil-cpp/absl/numeric/internal/bits.h
1646
+ - third_party/abseil-cpp/absl/numeric/internal/representation.h
1632
1647
  - third_party/abseil-cpp/absl/status/internal/status_internal.h
1633
1648
  - third_party/abseil-cpp/absl/status/internal/statusor_internal.h
1634
1649
  - third_party/abseil-cpp/absl/status/status.cc
@@ -1650,7 +1665,12 @@ files:
1650
1665
  - third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h
1651
1666
  - third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc
1652
1667
  - third_party/abseil-cpp/absl/strings/internal/charconv_parse.h
1668
+ - third_party/abseil-cpp/absl/strings/internal/cord_internal.cc
1653
1669
  - third_party/abseil-cpp/absl/strings/internal/cord_internal.h
1670
+ - third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h
1671
+ - third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc
1672
+ - third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h
1673
+ - third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h
1654
1674
  - third_party/abseil-cpp/absl/strings/internal/escaping.cc
1655
1675
  - third_party/abseil-cpp/absl/strings/internal/escaping.h
1656
1676
  - third_party/abseil-cpp/absl/strings/internal/memutil.cc
@@ -1674,6 +1694,7 @@ files:
1674
1694
  - third_party/abseil-cpp/absl/strings/internal/str_format/parser.h
1675
1695
  - third_party/abseil-cpp/absl/strings/internal/str_join_internal.h
1676
1696
  - third_party/abseil-cpp/absl/strings/internal/str_split_internal.h
1697
+ - third_party/abseil-cpp/absl/strings/internal/string_constant.h
1677
1698
  - third_party/abseil-cpp/absl/strings/internal/utf8.cc
1678
1699
  - third_party/abseil-cpp/absl/strings/internal/utf8.h
1679
1700
  - third_party/abseil-cpp/absl/strings/match.cc
@@ -1699,10 +1720,10 @@ files:
1699
1720
  - third_party/abseil-cpp/absl/synchronization/blocking_counter.h
1700
1721
  - third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc
1701
1722
  - third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h
1723
+ - third_party/abseil-cpp/absl/synchronization/internal/futex.h
1702
1724
  - third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc
1703
1725
  - third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h
1704
1726
  - third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h
1705
- - third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc
1706
1727
  - third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc
1707
1728
  - third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h
1708
1729
  - third_party/abseil-cpp/absl/synchronization/internal/waiter.cc
@@ -1939,9 +1960,9 @@ files:
1939
1960
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c
1940
1961
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c
1941
1962
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c
1963
+ - third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h
1942
1964
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c
1943
1965
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c
1944
- - third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c
1945
1966
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c
1946
1967
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h
1947
1968
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c
@@ -1965,6 +1986,7 @@ files:
1965
1986
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c
1966
1987
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c
1967
1988
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c
1989
+ - third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c
1968
1990
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c
1969
1991
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h
1970
1992
  - third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c
@@ -2051,7 +2073,6 @@ files:
2051
2073
  - third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c
2052
2074
  - third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c
2053
2075
  - third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c
2054
- - third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c
2055
2076
  - third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c
2056
2077
  - third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c
2057
2078
  - third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c
@@ -2148,6 +2169,7 @@ files:
2148
2169
  - third_party/boringssl-with-bazel/src/include/openssl/engine.h
2149
2170
  - third_party/boringssl-with-bazel/src/include/openssl/err.h
2150
2171
  - third_party/boringssl-with-bazel/src/include/openssl/evp.h
2172
+ - third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h
2151
2173
  - third_party/boringssl-with-bazel/src/include/openssl/ex_data.h
2152
2174
  - third_party/boringssl-with-bazel/src/include/openssl/hkdf.h
2153
2175
  - third_party/boringssl-with-bazel/src/include/openssl/hmac.h
@@ -2196,6 +2218,7 @@ files:
2196
2218
  - third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc
2197
2219
  - third_party/boringssl-with-bazel/src/ssl/dtls_method.cc
2198
2220
  - third_party/boringssl-with-bazel/src/ssl/dtls_record.cc
2221
+ - third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc
2199
2222
  - third_party/boringssl-with-bazel/src/ssl/handoff.cc
2200
2223
  - third_party/boringssl-with-bazel/src/ssl/handshake.cc
2201
2224
  - third_party/boringssl-with-bazel/src/ssl/handshake_client.cc
@@ -2425,55 +2448,55 @@ required_ruby_version: !ruby/object:Gem::Requirement
2425
2448
  version: 2.4.0
2426
2449
  required_rubygems_version: !ruby/object:Gem::Requirement
2427
2450
  requirements:
2428
- - - ">="
2451
+ - - ">"
2429
2452
  - !ruby/object:Gem::Version
2430
- version: '0'
2453
+ version: 1.3.1
2431
2454
  requirements: []
2432
- rubygems_version: 3.2.16
2455
+ rubygems_version: 3.2.17
2433
2456
  signing_key:
2434
2457
  specification_version: 4
2435
2458
  summary: GRPC system in Ruby
2436
2459
  test_files:
2460
+ - src/ruby/spec/channel_spec.rb
2461
+ - src/ruby/spec/channel_connection_spec.rb
2462
+ - src/ruby/spec/google_rpc_status_utils_spec.rb
2463
+ - src/ruby/spec/error_sanity_spec.rb
2437
2464
  - src/ruby/spec/call_spec.rb
2438
- - src/ruby/spec/channel_credentials_spec.rb
2439
- - src/ruby/spec/time_consts_spec.rb
2465
+ - src/ruby/spec/server_credentials_spec.rb
2440
2466
  - src/ruby/spec/support/services.rb
2441
2467
  - src/ruby/spec/support/helpers.rb
2442
- - src/ruby/spec/testdata/README
2443
- - src/ruby/spec/testdata/server1.pem
2444
- - src/ruby/spec/testdata/ca.pem
2445
- - src/ruby/spec/testdata/server1.key
2446
- - src/ruby/spec/testdata/client.pem
2447
- - src/ruby/spec/testdata/client.key
2448
- - src/ruby/spec/google_rpc_status_utils_spec.rb
2449
- - src/ruby/spec/channel_spec.rb
2450
- - src/ruby/spec/debug_message_spec.rb
2451
- - src/ruby/spec/channel_connection_spec.rb
2468
+ - src/ruby/spec/client_server_spec.rb
2469
+ - src/ruby/spec/user_agent_spec.rb
2452
2470
  - src/ruby/spec/errors_spec.rb
2453
- - src/ruby/spec/pb/health/checker_spec.rb
2471
+ - src/ruby/spec/generic/rpc_server_spec.rb
2472
+ - src/ruby/spec/generic/rpc_desc_spec.rb
2473
+ - src/ruby/spec/generic/server_interceptors_spec.rb
2474
+ - src/ruby/spec/generic/rpc_server_pool_spec.rb
2475
+ - src/ruby/spec/generic/interceptor_registry_spec.rb
2476
+ - src/ruby/spec/generic/client_interceptors_spec.rb
2477
+ - src/ruby/spec/generic/service_spec.rb
2478
+ - src/ruby/spec/generic/client_stub_spec.rb
2479
+ - src/ruby/spec/generic/active_call_spec.rb
2454
2480
  - src/ruby/spec/pb/duplicate/codegen_spec.rb
2481
+ - src/ruby/spec/pb/health/checker_spec.rb
2455
2482
  - src/ruby/spec/pb/codegen/package_option_spec.rb
2456
- - src/ruby/spec/pb/codegen/grpc/testing/package_options.proto
2457
2483
  - src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto
2458
- - src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto
2484
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto
2459
2485
  - src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto
2460
2486
  - src/ruby/spec/pb/codegen/grpc/testing/package_options_import.proto
2461
- - src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto
2487
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options.proto
2488
+ - src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto
2462
2489
  - src/ruby/spec/client_auth_spec.rb
2463
- - src/ruby/spec/generic/service_spec.rb
2464
- - src/ruby/spec/generic/client_interceptors_spec.rb
2465
- - src/ruby/spec/generic/server_interceptors_spec.rb
2466
- - src/ruby/spec/generic/rpc_desc_spec.rb
2467
- - src/ruby/spec/generic/rpc_server_spec.rb
2468
- - src/ruby/spec/generic/client_stub_spec.rb
2469
- - src/ruby/spec/generic/rpc_server_pool_spec.rb
2470
- - src/ruby/spec/generic/interceptor_registry_spec.rb
2471
- - src/ruby/spec/generic/active_call_spec.rb
2472
2490
  - src/ruby/spec/server_spec.rb
2473
2491
  - src/ruby/spec/call_credentials_spec.rb
2474
- - src/ruby/spec/error_sanity_spec.rb
2475
- - src/ruby/spec/server_credentials_spec.rb
2476
- - src/ruby/spec/spec_helper.rb
2477
2492
  - src/ruby/spec/compression_options_spec.rb
2478
- - src/ruby/spec/user_agent_spec.rb
2479
- - src/ruby/spec/client_server_spec.rb
2493
+ - src/ruby/spec/testdata/ca.pem
2494
+ - src/ruby/spec/testdata/README
2495
+ - src/ruby/spec/testdata/server1.key
2496
+ - src/ruby/spec/testdata/client.key
2497
+ - src/ruby/spec/testdata/client.pem
2498
+ - src/ruby/spec/testdata/server1.pem
2499
+ - src/ruby/spec/debug_message_spec.rb
2500
+ - src/ruby/spec/channel_credentials_spec.rb
2501
+ - src/ruby/spec/spec_helper.rb
2502
+ - src/ruby/spec/time_consts_spec.rb
@@ -1,88 +0,0 @@
1
- /*
2
- *
3
- * Copyright 2019 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
-
19
- #include <grpc/support/port_platform.h>
20
-
21
- #include "src/core/lib/iomgr/poller/eventmanager_libuv.h"
22
-
23
- #include <grpc/support/time.h>
24
-
25
- grpc::experimental::LibuvEventManager::Options::Options() : num_workers_(-1) {}
26
- grpc::experimental::LibuvEventManager::Options::Options(int num_workers)
27
- : num_workers_(num_workers) {}
28
-
29
- grpc::experimental::LibuvEventManager::LibuvEventManager(const Options& options)
30
- : options_(options) {
31
- int num_workers = options_.num_workers();
32
- // Number of workers can't be 0 if we do not accept thread donation.
33
- // TODO(guantaol): replaces the hard-coded number with a flag.
34
- if (num_workers <= 0) num_workers = 32;
35
-
36
- for (int i = 0; i < num_workers; i++) {
37
- workers_.emplace_back(
38
- options_.thread_name_prefix().c_str(),
39
- [](void* em) { static_cast<LibuvEventManager*>(em)->RunWorkerLoop(); },
40
- this);
41
- workers_.back().Start();
42
- }
43
- }
44
-
45
- grpc::experimental::LibuvEventManager::~LibuvEventManager() {
46
- Shutdown();
47
- for (auto& th : workers_) {
48
- th.Join();
49
- }
50
- }
51
-
52
- void grpc::experimental::LibuvEventManager::RunWorkerLoop() {
53
- while (true) {
54
- // TODO(guantaol): extend the worker loop with real work.
55
- if (ShouldStop()) return;
56
- gpr_sleep_until(gpr_time_add(gpr_now(GPR_CLOCK_MONOTONIC),
57
- gpr_time_from_micros(10, GPR_TIMESPAN)));
58
- }
59
- }
60
-
61
- bool grpc::experimental::LibuvEventManager::ShouldStop() {
62
- return should_stop_.Load(grpc_core::MemoryOrder::ACQUIRE) != 0;
63
- }
64
-
65
- void grpc::experimental::LibuvEventManager::Shutdown() {
66
- if (should_stop_.Load(grpc_core::MemoryOrder::ACQUIRE)) {
67
- return; // Already shut down.
68
- }
69
-
70
- {
71
- grpc_core::MutexLock lock(&shutdown_mu_);
72
- while (shutdown_refcount_.Load(grpc_core::MemoryOrder::ACQUIRE) > 0) {
73
- shutdown_cv_.Wait(&shutdown_mu_);
74
- }
75
- }
76
- should_stop_.Store(true, grpc_core::MemoryOrder::RELEASE);
77
- }
78
-
79
- void grpc::experimental::LibuvEventManager::ShutdownRef() {
80
- shutdown_refcount_.FetchAdd(1, grpc_core::MemoryOrder::RELAXED);
81
- }
82
-
83
- void grpc::experimental::LibuvEventManager::ShutdownUnref() {
84
- if (shutdown_refcount_.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
85
- grpc_core::MutexLock lock(&shutdown_mu_);
86
- shutdown_cv_.Signal();
87
- }
88
- }
@@ -1,88 +0,0 @@
1
- /*
2
- *
3
- * Copyright 2019 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
-
19
- #ifndef GRPC_CORE_LIB_IOMGR_POLLER_EVENTMANAGER_LIBUV_H
20
- #define GRPC_CORE_LIB_IOMGR_POLLER_EVENTMANAGER_LIBUV_H
21
-
22
- #include <grpc/support/port_platform.h>
23
-
24
- #include <string>
25
- #include <vector>
26
-
27
- #include "src/core/lib/gprpp/atomic.h"
28
- #include "src/core/lib/gprpp/sync.h"
29
- #include "src/core/lib/gprpp/thd.h"
30
-
31
- namespace grpc {
32
- namespace experimental {
33
-
34
- class LibuvEventManager {
35
- public:
36
- class Options {
37
- public:
38
- Options();
39
- explicit Options(int num_workers);
40
-
41
- int num_workers() const { return num_workers_; }
42
- void set_num_workers(int num) { num_workers_ = num; }
43
-
44
- const std::string& thread_name_prefix() const {
45
- return thread_name_prefix_;
46
- }
47
- void set_thread_name_prefix(const std::string& name) {
48
- thread_name_prefix_ = name;
49
- }
50
-
51
- private:
52
- // Number of worker threads to create at startup. If less than 0, uses the
53
- // default value of 32.
54
- int num_workers_;
55
- // Name prefix used for worker.
56
- std::string thread_name_prefix_;
57
- };
58
-
59
- explicit LibuvEventManager(const Options& options);
60
- virtual ~LibuvEventManager();
61
-
62
- void Shutdown();
63
- void ShutdownRef();
64
- void ShutdownUnref();
65
-
66
- private:
67
- // Function run by the worker threads.
68
- void RunWorkerLoop();
69
-
70
- // Whether the EventManager has been shut down.
71
- bool ShouldStop();
72
-
73
- const Options options_;
74
- // Whether the EventManager workers should be stopped.
75
- grpc_core::Atomic<bool> should_stop_{false};
76
- // A refcount preventing the EventManager from shutdown.
77
- grpc_core::Atomic<int> shutdown_refcount_{0};
78
- // Worker threads of the EventManager.
79
- std::vector<grpc_core::Thread> workers_;
80
- // Mutex and condition variable used for shutdown.
81
- grpc_core::Mutex shutdown_mu_;
82
- grpc_core::CondVar shutdown_cv_;
83
- };
84
-
85
- } // namespace experimental
86
- } // namespace grpc
87
-
88
- #endif /* GRPC_CORE_LIB_IOMGR_POLLER_EVENTMANAGER_LIBUV_H */
@@ -1,219 +0,0 @@
1
- // Copyright 2018 The Abseil Authors.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // https://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- #ifndef ABSL_BASE_INTERNAL_BITS_H_
16
- #define ABSL_BASE_INTERNAL_BITS_H_
17
-
18
- // This file contains bitwise ops which are implementation details of various
19
- // absl libraries.
20
-
21
- #include <cstdint>
22
-
23
- #include "absl/base/config.h"
24
-
25
- // Clang on Windows has __builtin_clzll; otherwise we need to use the
26
- // windows intrinsic functions.
27
- #if defined(_MSC_VER) && !defined(__clang__)
28
- #include <intrin.h>
29
- #if defined(_M_X64)
30
- #pragma intrinsic(_BitScanReverse64)
31
- #pragma intrinsic(_BitScanForward64)
32
- #endif
33
- #pragma intrinsic(_BitScanReverse)
34
- #pragma intrinsic(_BitScanForward)
35
- #endif
36
-
37
- #include "absl/base/attributes.h"
38
-
39
- #if defined(_MSC_VER) && !defined(__clang__)
40
- // We can achieve something similar to attribute((always_inline)) with MSVC by
41
- // using the __forceinline keyword, however this is not perfect. MSVC is
42
- // much less aggressive about inlining, and even with the __forceinline keyword.
43
- #define ABSL_BASE_INTERNAL_FORCEINLINE __forceinline
44
- #else
45
- // Use default attribute inline.
46
- #define ABSL_BASE_INTERNAL_FORCEINLINE inline ABSL_ATTRIBUTE_ALWAYS_INLINE
47
- #endif
48
-
49
-
50
- namespace absl {
51
- ABSL_NAMESPACE_BEGIN
52
- namespace base_internal {
53
-
54
- ABSL_BASE_INTERNAL_FORCEINLINE int CountLeadingZeros64Slow(uint64_t n) {
55
- int zeroes = 60;
56
- if (n >> 32) {
57
- zeroes -= 32;
58
- n >>= 32;
59
- }
60
- if (n >> 16) {
61
- zeroes -= 16;
62
- n >>= 16;
63
- }
64
- if (n >> 8) {
65
- zeroes -= 8;
66
- n >>= 8;
67
- }
68
- if (n >> 4) {
69
- zeroes -= 4;
70
- n >>= 4;
71
- }
72
- return "\4\3\2\2\1\1\1\1\0\0\0\0\0\0\0"[n] + zeroes;
73
- }
74
-
75
- ABSL_BASE_INTERNAL_FORCEINLINE int CountLeadingZeros64(uint64_t n) {
76
- #if defined(_MSC_VER) && !defined(__clang__) && defined(_M_X64)
77
- // MSVC does not have __buitin_clzll. Use _BitScanReverse64.
78
- unsigned long result = 0; // NOLINT(runtime/int)
79
- if (_BitScanReverse64(&result, n)) {
80
- return 63 - result;
81
- }
82
- return 64;
83
- #elif defined(_MSC_VER) && !defined(__clang__)
84
- // MSVC does not have __buitin_clzll. Compose two calls to _BitScanReverse
85
- unsigned long result = 0; // NOLINT(runtime/int)
86
- if ((n >> 32) &&
87
- _BitScanReverse(&result, static_cast<unsigned long>(n >> 32))) {
88
- return 31 - result;
89
- }
90
- if (_BitScanReverse(&result, static_cast<unsigned long>(n))) {
91
- return 63 - result;
92
- }
93
- return 64;
94
- #elif defined(__GNUC__) || defined(__clang__)
95
- // Use __builtin_clzll, which uses the following instructions:
96
- // x86: bsr
97
- // ARM64: clz
98
- // PPC: cntlzd
99
- static_assert(sizeof(unsigned long long) == sizeof(n), // NOLINT(runtime/int)
100
- "__builtin_clzll does not take 64-bit arg");
101
-
102
- // Handle 0 as a special case because __builtin_clzll(0) is undefined.
103
- if (n == 0) {
104
- return 64;
105
- }
106
- return __builtin_clzll(n);
107
- #else
108
- return CountLeadingZeros64Slow(n);
109
- #endif
110
- }
111
-
112
- ABSL_BASE_INTERNAL_FORCEINLINE int CountLeadingZeros32Slow(uint64_t n) {
113
- int zeroes = 28;
114
- if (n >> 16) {
115
- zeroes -= 16;
116
- n >>= 16;
117
- }
118
- if (n >> 8) {
119
- zeroes -= 8;
120
- n >>= 8;
121
- }
122
- if (n >> 4) {
123
- zeroes -= 4;
124
- n >>= 4;
125
- }
126
- return "\4\3\2\2\1\1\1\1\0\0\0\0\0\0\0"[n] + zeroes;
127
- }
128
-
129
- ABSL_BASE_INTERNAL_FORCEINLINE int CountLeadingZeros32(uint32_t n) {
130
- #if defined(_MSC_VER) && !defined(__clang__)
131
- unsigned long result = 0; // NOLINT(runtime/int)
132
- if (_BitScanReverse(&result, n)) {
133
- return 31 - result;
134
- }
135
- return 32;
136
- #elif defined(__GNUC__) || defined(__clang__)
137
- // Use __builtin_clz, which uses the following instructions:
138
- // x86: bsr
139
- // ARM64: clz
140
- // PPC: cntlzd
141
- static_assert(sizeof(int) == sizeof(n),
142
- "__builtin_clz does not take 32-bit arg");
143
-
144
- // Handle 0 as a special case because __builtin_clz(0) is undefined.
145
- if (n == 0) {
146
- return 32;
147
- }
148
- return __builtin_clz(n);
149
- #else
150
- return CountLeadingZeros32Slow(n);
151
- #endif
152
- }
153
-
154
- ABSL_BASE_INTERNAL_FORCEINLINE int CountTrailingZerosNonZero64Slow(uint64_t n) {
155
- int c = 63;
156
- n &= ~n + 1;
157
- if (n & 0x00000000FFFFFFFF) c -= 32;
158
- if (n & 0x0000FFFF0000FFFF) c -= 16;
159
- if (n & 0x00FF00FF00FF00FF) c -= 8;
160
- if (n & 0x0F0F0F0F0F0F0F0F) c -= 4;
161
- if (n & 0x3333333333333333) c -= 2;
162
- if (n & 0x5555555555555555) c -= 1;
163
- return c;
164
- }
165
-
166
- ABSL_BASE_INTERNAL_FORCEINLINE int CountTrailingZerosNonZero64(uint64_t n) {
167
- #if defined(_MSC_VER) && !defined(__clang__) && defined(_M_X64)
168
- unsigned long result = 0; // NOLINT(runtime/int)
169
- _BitScanForward64(&result, n);
170
- return result;
171
- #elif defined(_MSC_VER) && !defined(__clang__)
172
- unsigned long result = 0; // NOLINT(runtime/int)
173
- if (static_cast<uint32_t>(n) == 0) {
174
- _BitScanForward(&result, static_cast<unsigned long>(n >> 32));
175
- return result + 32;
176
- }
177
- _BitScanForward(&result, static_cast<unsigned long>(n));
178
- return result;
179
- #elif defined(__GNUC__) || defined(__clang__)
180
- static_assert(sizeof(unsigned long long) == sizeof(n), // NOLINT(runtime/int)
181
- "__builtin_ctzll does not take 64-bit arg");
182
- return __builtin_ctzll(n);
183
- #else
184
- return CountTrailingZerosNonZero64Slow(n);
185
- #endif
186
- }
187
-
188
- ABSL_BASE_INTERNAL_FORCEINLINE int CountTrailingZerosNonZero32Slow(uint32_t n) {
189
- int c = 31;
190
- n &= ~n + 1;
191
- if (n & 0x0000FFFF) c -= 16;
192
- if (n & 0x00FF00FF) c -= 8;
193
- if (n & 0x0F0F0F0F) c -= 4;
194
- if (n & 0x33333333) c -= 2;
195
- if (n & 0x55555555) c -= 1;
196
- return c;
197
- }
198
-
199
- ABSL_BASE_INTERNAL_FORCEINLINE int CountTrailingZerosNonZero32(uint32_t n) {
200
- #if defined(_MSC_VER) && !defined(__clang__)
201
- unsigned long result = 0; // NOLINT(runtime/int)
202
- _BitScanForward(&result, n);
203
- return result;
204
- #elif defined(__GNUC__) || defined(__clang__)
205
- static_assert(sizeof(int) == sizeof(n),
206
- "__builtin_ctz does not take 32-bit arg");
207
- return __builtin_ctz(n);
208
- #else
209
- return CountTrailingZerosNonZero32Slow(n);
210
- #endif
211
- }
212
-
213
- #undef ABSL_BASE_INTERNAL_FORCEINLINE
214
-
215
- } // namespace base_internal
216
- ABSL_NAMESPACE_END
217
- } // namespace absl
218
-
219
- #endif // ABSL_BASE_INTERNAL_BITS_H_