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
@@ -270,7 +270,7 @@ void grpc_fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
270
270
  g_event_engine->fd_orphan(fd, on_done, release_fd, reason);
271
271
  }
272
272
 
273
- void grpc_fd_shutdown(grpc_fd* fd, grpc_error* why) {
273
+ void grpc_fd_shutdown(grpc_fd* fd, grpc_error_handle why) {
274
274
  GRPC_POLLING_API_TRACE("fd_shutdown(%d)", grpc_fd_wrapped_fd(fd));
275
275
  GRPC_FD_TRACE("fd_shutdown(%d)", grpc_fd_wrapped_fd(fd));
276
276
  g_event_engine->fd_shutdown(fd, why);
@@ -315,19 +315,20 @@ static void pollset_destroy(grpc_pollset* pollset) {
315
315
  g_event_engine->pollset_destroy(pollset);
316
316
  }
317
317
 
318
- static grpc_error* pollset_work(grpc_pollset* pollset,
319
- grpc_pollset_worker** worker,
320
- grpc_millis deadline) {
318
+ static grpc_error_handle pollset_work(grpc_pollset* pollset,
319
+ grpc_pollset_worker** worker,
320
+ grpc_millis deadline) {
321
321
  GRPC_POLLING_API_TRACE("pollset_work(%p, %" PRId64 ") begin", pollset,
322
322
  deadline);
323
- grpc_error* err = g_event_engine->pollset_work(pollset, worker, deadline);
323
+ grpc_error_handle err =
324
+ g_event_engine->pollset_work(pollset, worker, deadline);
324
325
  GRPC_POLLING_API_TRACE("pollset_work(%p, %" PRId64 ") end", pollset,
325
326
  deadline);
326
327
  return err;
327
328
  }
328
329
 
329
- static grpc_error* pollset_kick(grpc_pollset* pollset,
330
- grpc_pollset_worker* specific_worker) {
330
+ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
331
+ grpc_pollset_worker* specific_worker) {
331
332
  GRPC_POLLING_API_TRACE("pollset_kick(%p, %p)", pollset, specific_worker);
332
333
  return g_event_engine->pollset_kick(pollset, specific_worker);
333
334
  }
@@ -406,7 +407,7 @@ bool grpc_is_any_background_poller_thread(void) {
406
407
  }
407
408
 
408
409
  bool grpc_add_closure_to_background_poller(grpc_closure* closure,
409
- grpc_error* error) {
410
+ grpc_error_handle error) {
410
411
  return g_event_engine->add_closure_to_background_poller(closure, error);
411
412
  }
412
413
 
@@ -52,7 +52,7 @@ typedef struct grpc_event_engine_vtable {
52
52
  int (*fd_wrapped_fd)(grpc_fd* fd);
53
53
  void (*fd_orphan)(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
54
54
  const char* reason);
55
- void (*fd_shutdown)(grpc_fd* fd, grpc_error* why);
55
+ void (*fd_shutdown)(grpc_fd* fd, grpc_error_handle why);
56
56
  void (*fd_notify_on_read)(grpc_fd* fd, grpc_closure* closure);
57
57
  void (*fd_notify_on_write)(grpc_fd* fd, grpc_closure* closure);
58
58
  void (*fd_notify_on_error)(grpc_fd* fd, grpc_closure* closure);
@@ -64,11 +64,11 @@ typedef struct grpc_event_engine_vtable {
64
64
  void (*pollset_init)(grpc_pollset* pollset, gpr_mu** mu);
65
65
  void (*pollset_shutdown)(grpc_pollset* pollset, grpc_closure* closure);
66
66
  void (*pollset_destroy)(grpc_pollset* pollset);
67
- grpc_error* (*pollset_work)(grpc_pollset* pollset,
68
- grpc_pollset_worker** worker,
69
- grpc_millis deadline);
70
- grpc_error* (*pollset_kick)(grpc_pollset* pollset,
71
- grpc_pollset_worker* specific_worker);
67
+ grpc_error_handle (*pollset_work)(grpc_pollset* pollset,
68
+ grpc_pollset_worker** worker,
69
+ grpc_millis deadline);
70
+ grpc_error_handle (*pollset_kick)(grpc_pollset* pollset,
71
+ grpc_pollset_worker* specific_worker);
72
72
  void (*pollset_add_fd)(grpc_pollset* pollset, struct grpc_fd* fd);
73
73
 
74
74
  grpc_pollset_set* (*pollset_set_create)(void);
@@ -88,7 +88,7 @@ typedef struct grpc_event_engine_vtable {
88
88
  void (*shutdown_background_closure)(void);
89
89
  void (*shutdown_engine)(void);
90
90
  bool (*add_closure_to_background_poller)(grpc_closure* closure,
91
- grpc_error* error);
91
+ grpc_error_handle error);
92
92
  } grpc_event_engine_vtable;
93
93
 
94
94
  /* register a new event engine factory */
@@ -139,7 +139,7 @@ void grpc_fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
139
139
  bool grpc_fd_is_shutdown(grpc_fd* fd);
140
140
 
141
141
  /* Cause any current and future callbacks to fail. */
142
- void grpc_fd_shutdown(grpc_fd* fd, grpc_error* why);
142
+ void grpc_fd_shutdown(grpc_fd* fd, grpc_error_handle why);
143
143
 
144
144
  /* Register read interest, causing read_cb to be called once when fd becomes
145
145
  readable, on deadline specified by deadline, or on shutdown triggered by
@@ -195,7 +195,7 @@ bool grpc_is_any_background_poller_thread();
195
195
  * that the closure may or may not run yet when this function returns, and the
196
196
  * closure should not be blocking or long-running. */
197
197
  bool grpc_add_closure_to_background_poller(grpc_closure* closure,
198
- grpc_error* error);
198
+ grpc_error_handle error);
199
199
 
200
200
  /* Shut down all the closures registered in the background poller. */
201
201
  void grpc_shutdown_background_closure();
@@ -27,7 +27,7 @@
27
27
  #include "src/core/lib/iomgr/combiner.h"
28
28
  #include "src/core/lib/profiling/timers.h"
29
29
 
30
- static void exec_ctx_run(grpc_closure* closure, grpc_error* error) {
30
+ static void exec_ctx_run(grpc_closure* closure, grpc_error_handle error) {
31
31
  #ifndef NDEBUG
32
32
  closure->scheduled = false;
33
33
  if (grpc_trace_closure.enabled()) {
@@ -46,7 +46,7 @@ static void exec_ctx_run(grpc_closure* closure, grpc_error* error) {
46
46
  GRPC_ERROR_UNREF(error);
47
47
  }
48
48
 
49
- static void exec_ctx_sched(grpc_closure* closure, grpc_error* error) {
49
+ static void exec_ctx_sched(grpc_closure* closure, grpc_error_handle error) {
50
50
  grpc_closure_list_append(grpc_core::ExecCtx::Get()->closure_list(), closure,
51
51
  error);
52
52
  }
@@ -152,7 +152,7 @@ bool ExecCtx::Flush() {
152
152
  closure_list_.head = closure_list_.tail = nullptr;
153
153
  while (c != nullptr) {
154
154
  grpc_closure* next = c->next_data.next;
155
- grpc_error* error = c->error_data.error;
155
+ grpc_error_handle error = c->error_data.error;
156
156
  did_something = true;
157
157
  exec_ctx_run(c, error);
158
158
  c = next;
@@ -174,7 +174,7 @@ grpc_millis ExecCtx::Now() {
174
174
  }
175
175
 
176
176
  void ExecCtx::Run(const DebugLocation& location, grpc_closure* closure,
177
- grpc_error* error) {
177
+ grpc_error_handle error) {
178
178
  (void)location;
179
179
  if (closure == nullptr) {
180
180
  GRPC_ERROR_UNREF(error);
@@ -228,7 +228,7 @@ class ExecCtx {
228
228
  }
229
229
 
230
230
  static void Run(const DebugLocation& location, grpc_closure* closure,
231
- grpc_error* error);
231
+ grpc_error_handle error);
232
232
 
233
233
  static void RunList(const DebugLocation& location, grpc_closure_list* list);
234
234
 
@@ -57,27 +57,27 @@ GPR_TLS_DECL(g_this_thread_state);
57
57
 
58
58
  Executor* executors[static_cast<size_t>(ExecutorType::NUM_EXECUTORS)];
59
59
 
60
- void default_enqueue_short(grpc_closure* closure, grpc_error* error) {
60
+ void default_enqueue_short(grpc_closure* closure, grpc_error_handle error) {
61
61
  executors[static_cast<size_t>(ExecutorType::DEFAULT)]->Enqueue(
62
62
  closure, error, true /* is_short */);
63
63
  }
64
64
 
65
- void default_enqueue_long(grpc_closure* closure, grpc_error* error) {
65
+ void default_enqueue_long(grpc_closure* closure, grpc_error_handle error) {
66
66
  executors[static_cast<size_t>(ExecutorType::DEFAULT)]->Enqueue(
67
67
  closure, error, false /* is_short */);
68
68
  }
69
69
 
70
- void resolver_enqueue_short(grpc_closure* closure, grpc_error* error) {
70
+ void resolver_enqueue_short(grpc_closure* closure, grpc_error_handle error) {
71
71
  executors[static_cast<size_t>(ExecutorType::RESOLVER)]->Enqueue(
72
72
  closure, error, true /* is_short */);
73
73
  }
74
74
 
75
- void resolver_enqueue_long(grpc_closure* closure, grpc_error* error) {
75
+ void resolver_enqueue_long(grpc_closure* closure, grpc_error_handle error) {
76
76
  executors[static_cast<size_t>(ExecutorType::RESOLVER)]->Enqueue(
77
77
  closure, error, false /* is_short */);
78
78
  }
79
79
 
80
- using EnqueueFunc = void (*)(grpc_closure* closure, grpc_error* error);
80
+ using EnqueueFunc = void (*)(grpc_closure* closure, grpc_error_handle error);
81
81
 
82
82
  const EnqueueFunc
83
83
  executor_enqueue_fns_[static_cast<size_t>(ExecutorType::NUM_EXECUTORS)]
@@ -115,7 +115,7 @@ size_t Executor::RunClosures(const char* executor_name,
115
115
  grpc_closure* c = list.head;
116
116
  while (c != nullptr) {
117
117
  grpc_closure* next = c->next_data.next;
118
- grpc_error* error = c->error_data.error;
118
+ grpc_error_handle error = c->error_data.error;
119
119
  #ifndef NDEBUG
120
120
  EXECUTOR_TRACE("(%s) run %p [created by %s:%d]", executor_name, c,
121
121
  c->file_created, c->line_created);
@@ -251,7 +251,7 @@ void Executor::ThreadMain(void* arg) {
251
251
  gpr_tls_set(&g_this_thread_state, reinterpret_cast<intptr_t>(nullptr));
252
252
  }
253
253
 
254
- void Executor::Enqueue(grpc_closure* closure, grpc_error* error,
254
+ void Executor::Enqueue(grpc_closure* closure, grpc_error_handle error,
255
255
  bool is_short) {
256
256
  bool retry_push;
257
257
  if (is_short) {
@@ -404,7 +404,7 @@ void Executor::InitAll() {
404
404
  EXECUTOR_TRACE0("Executor::InitAll() done");
405
405
  }
406
406
 
407
- void Executor::Run(grpc_closure* closure, grpc_error* error,
407
+ void Executor::Run(grpc_closure* closure, grpc_error_handle error,
408
408
  ExecutorType executor_type, ExecutorJobType job_type) {
409
409
  executor_enqueue_fns_[static_cast<size_t>(executor_type)]
410
410
  [static_cast<size_t>(job_type)](closure, error);
@@ -70,7 +70,7 @@ class Executor {
70
70
 
71
71
  /** Enqueue the closure onto the executor. is_short is true if the closure is
72
72
  * a short job (i.e expected to not block and complete quickly) */
73
- void Enqueue(grpc_closure* closure, grpc_error* error, bool is_short);
73
+ void Enqueue(grpc_closure* closure, grpc_error_handle error, bool is_short);
74
74
 
75
75
  // TODO(sreek): Currently we have two executors (available globally): The
76
76
  // default executor and the resolver executor.
@@ -83,7 +83,7 @@ class Executor {
83
83
  // Initialize ALL the executors
84
84
  static void InitAll();
85
85
 
86
- static void Run(grpc_closure* closure, grpc_error* error,
86
+ static void Run(grpc_closure* closure, grpc_error_handle error,
87
87
  ExecutorType executor_type = ExecutorType::DEFAULT,
88
88
  ExecutorJobType job_type = ExecutorJobType::SHORT);
89
89
 
@@ -169,7 +169,7 @@ bool grpc_iomgr_is_any_background_poller_thread() {
169
169
  }
170
170
 
171
171
  bool grpc_iomgr_add_closure_to_background_poller(grpc_closure* closure,
172
- grpc_error* error) {
172
+ grpc_error_handle error) {
173
173
  return grpc_iomgr_platform_add_closure_to_background_poller(closure, error);
174
174
  }
175
175
 
@@ -52,7 +52,7 @@ bool grpc_iomgr_is_any_background_poller_thread();
52
52
  * that the closure may or may not run yet when this function returns, and the
53
53
  * closure should not be blocking or long-running. */
54
54
  bool grpc_iomgr_add_closure_to_background_poller(grpc_closure* closure,
55
- grpc_error* error);
55
+ grpc_error_handle error);
56
56
 
57
57
  /* Exposed only for testing */
58
58
  size_t grpc_iomgr_count_objects_for_testing();
@@ -45,7 +45,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
45
45
  return false;
46
46
  }
47
47
  static bool iomgr_platform_add_closure_to_background_poller(
48
- grpc_closure* /*closure*/, grpc_error* /*error*/) {
48
+ grpc_closure* /*closure*/, grpc_error_handle /*error*/) {
49
49
  return false;
50
50
  }
51
51
 
@@ -50,8 +50,8 @@ bool grpc_iomgr_platform_is_any_background_poller_thread() {
50
50
  return iomgr_platform_vtable->is_any_background_poller_thread();
51
51
  }
52
52
 
53
- bool grpc_iomgr_platform_add_closure_to_background_poller(grpc_closure* closure,
54
- grpc_error* error) {
53
+ bool grpc_iomgr_platform_add_closure_to_background_poller(
54
+ grpc_closure* closure, grpc_error_handle error) {
55
55
  return iomgr_platform_vtable->add_closure_to_background_poller(closure,
56
56
  error);
57
57
  }
@@ -38,7 +38,7 @@ typedef struct grpc_iomgr_platform_vtable {
38
38
  void (*shutdown_background_closure)(void);
39
39
  bool (*is_any_background_poller_thread)(void);
40
40
  bool (*add_closure_to_background_poller)(grpc_closure* closure,
41
- grpc_error* error);
41
+ grpc_error_handle error);
42
42
  } grpc_iomgr_platform_vtable;
43
43
 
44
44
  void grpc_iomgr_register_object(grpc_iomgr_object* obj, const char* name);
@@ -65,8 +65,8 @@ bool grpc_iomgr_platform_is_any_background_poller_thread(void);
65
65
  /** Return true if the closure is registered into the background poller. Note
66
66
  * that the closure may or may not run yet when this function returns, and the
67
67
  * closure should not be blocking or long-running. */
68
- bool grpc_iomgr_platform_add_closure_to_background_poller(grpc_closure* closure,
69
- grpc_error* error);
68
+ bool grpc_iomgr_platform_add_closure_to_background_poller(
69
+ grpc_closure* closure, grpc_error_handle error);
70
70
 
71
71
  bool grpc_iomgr_abort_on_leaks(void);
72
72
 
@@ -59,7 +59,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
59
59
  }
60
60
 
61
61
  static bool iomgr_platform_add_closure_to_background_poller(
62
- grpc_closure* closure, grpc_error* error) {
62
+ grpc_closure* closure, grpc_error_handle error) {
63
63
  return grpc_add_closure_to_background_poller(closure, error);
64
64
  }
65
65
 
@@ -72,7 +72,7 @@ static bool apple_iomgr_platform_is_any_background_poller_thread(void) {
72
72
  }
73
73
 
74
74
  static bool apple_iomgr_platform_add_closure_to_background_poller(
75
- grpc_closure* closure, grpc_error* error) {
75
+ grpc_closure* closure, grpc_error_handle error) {
76
76
  return false;
77
77
  }
78
78
 
@@ -105,7 +105,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
105
105
  }
106
106
 
107
107
  static bool iomgr_platform_add_closure_to_background_poller(
108
- grpc_closure* closure, grpc_error* error) {
108
+ grpc_closure* closure, grpc_error_handle error) {
109
109
  return grpc_add_closure_to_background_poller(closure, error);
110
110
  }
111
111
 
@@ -79,7 +79,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
79
79
  }
80
80
 
81
81
  static bool iomgr_platform_add_closure_to_background_poller(
82
- grpc_closure* closure, grpc_error* error) {
82
+ grpc_closure* closure, grpc_error_handle error) {
83
83
  return false;
84
84
  }
85
85
 
@@ -30,14 +30,14 @@
30
30
  #include "src/core/lib/gpr/string.h"
31
31
  #include "src/core/lib/iomgr/block_annotate.h"
32
32
 
33
- grpc_error* grpc_load_file(const char* filename, int add_null_terminator,
34
- grpc_slice* output) {
33
+ grpc_error_handle grpc_load_file(const char* filename, int add_null_terminator,
34
+ grpc_slice* output) {
35
35
  unsigned char* contents = nullptr;
36
36
  size_t contents_size = 0;
37
37
  grpc_slice result = grpc_empty_slice();
38
38
  FILE* file;
39
39
  size_t bytes_read = 0;
40
- grpc_error* error = GRPC_ERROR_NONE;
40
+ grpc_error_handle error = GRPC_ERROR_NONE;
41
41
 
42
42
  GRPC_SCHEDULING_START_BLOCKING_REGION;
43
43
  file = fopen(filename, "rb");
@@ -67,7 +67,7 @@ end:
67
67
  *output = result;
68
68
  if (file != nullptr) fclose(file);
69
69
  if (error != GRPC_ERROR_NONE) {
70
- grpc_error* error_out =
70
+ grpc_error_handle error_out =
71
71
  grpc_error_set_str(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
72
72
  "Failed to load file", &error, 1),
73
73
  GRPC_ERROR_STR_FILENAME,
@@ -29,7 +29,7 @@
29
29
 
30
30
  /* Loads the content of a file into a slice. add_null_terminator will add
31
31
  a NULL terminator if non-zero. */
32
- grpc_error* grpc_load_file(const char* filename, int add_null_terminator,
33
- grpc_slice* output);
32
+ grpc_error_handle grpc_load_file(const char* filename, int add_null_terminator,
33
+ grpc_slice* output);
34
34
 
35
35
  #endif /* GRPC_CORE_LIB_IOMGR_LOAD_FILE_H */
@@ -77,7 +77,7 @@ void LockfreeEvent::DestroyEvent() {
77
77
  do {
78
78
  curr = gpr_atm_no_barrier_load(&state_);
79
79
  if (curr & kShutdownBit) {
80
- GRPC_ERROR_UNREF((grpc_error*)(curr & ~kShutdownBit));
80
+ GRPC_ERROR_UNREF((grpc_error_handle)(curr & ~kShutdownBit));
81
81
  } else {
82
82
  GPR_ASSERT(curr == kClosureNotReady || curr == kClosureReady);
83
83
  }
@@ -139,8 +139,8 @@ void LockfreeEvent::NotifyOn(grpc_closure* closure) {
139
139
  contains a pointer to the shutdown-error). If the fd is shutdown,
140
140
  schedule the closure with the shutdown error */
141
141
  if ((curr & kShutdownBit) > 0) {
142
- grpc_error* shutdown_err =
143
- reinterpret_cast<grpc_error*>(curr & ~kShutdownBit);
142
+ grpc_error_handle shutdown_err =
143
+ reinterpret_cast<grpc_error_handle>(curr & ~kShutdownBit);
144
144
  ExecCtx::Run(DEBUG_LOCATION, closure,
145
145
  GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
146
146
  "FD Shutdown", &shutdown_err, 1));
@@ -159,7 +159,7 @@ void LockfreeEvent::NotifyOn(grpc_closure* closure) {
159
159
  GPR_UNREACHABLE_CODE(return );
160
160
  }
161
161
 
162
- bool LockfreeEvent::SetShutdown(grpc_error* shutdown_error) {
162
+ bool LockfreeEvent::SetShutdown(grpc_error_handle shutdown_error) {
163
163
  gpr_atm new_state = reinterpret_cast<gpr_atm>(shutdown_error) | kShutdownBit;
164
164
 
165
165
  while (true) {
@@ -167,7 +167,7 @@ bool LockfreeEvent::SetShutdown(grpc_error* shutdown_error) {
167
167
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
168
168
  gpr_log(GPR_DEBUG,
169
169
  "LockfreeEvent::SetShutdown: %p curr=%" PRIxPTR " err=%s",
170
- &state_, curr, grpc_error_string(shutdown_error));
170
+ &state_, curr, grpc_error_std_string(shutdown_error).c_str());
171
171
  }
172
172
  switch (curr) {
173
173
  case kClosureReady:
@@ -56,7 +56,7 @@ class LockfreeEvent {
56
56
 
57
57
  // Sets the shutdown state. If a closure had been provided by NotifyOn and has
58
58
  // not yet been scheduled, it will be scheduled with \a shutdown_error.
59
- bool SetShutdown(grpc_error* shutdown_error);
59
+ bool SetShutdown(grpc_error_handle shutdown_error);
60
60
 
61
61
  // Signals that the event has been received.
62
62
  void SetReady();
@@ -42,14 +42,14 @@ void grpc_pollset_destroy(grpc_pollset* pollset) {
42
42
  grpc_pollset_impl->destroy(pollset);
43
43
  }
44
44
 
45
- grpc_error* grpc_pollset_work(grpc_pollset* pollset,
46
- grpc_pollset_worker** worker,
47
- grpc_millis deadline) {
45
+ grpc_error_handle grpc_pollset_work(grpc_pollset* pollset,
46
+ grpc_pollset_worker** worker,
47
+ grpc_millis deadline) {
48
48
  return grpc_pollset_impl->work(pollset, worker, deadline);
49
49
  }
50
50
 
51
- grpc_error* grpc_pollset_kick(grpc_pollset* pollset,
52
- grpc_pollset_worker* specific_worker) {
51
+ grpc_error_handle grpc_pollset_kick(grpc_pollset* pollset,
52
+ grpc_pollset_worker* specific_worker) {
53
53
  return grpc_pollset_impl->kick(pollset, specific_worker);
54
54
  }
55
55
 
@@ -44,10 +44,10 @@ typedef struct grpc_pollset_vtable {
44
44
  void (*init)(grpc_pollset* pollset, gpr_mu** mu);
45
45
  void (*shutdown)(grpc_pollset* pollset, grpc_closure* closure);
46
46
  void (*destroy)(grpc_pollset* pollset);
47
- grpc_error* (*work)(grpc_pollset* pollset, grpc_pollset_worker** worker,
48
- grpc_millis deadline);
49
- grpc_error* (*kick)(grpc_pollset* pollset,
50
- grpc_pollset_worker* specific_worker);
47
+ grpc_error_handle (*work)(grpc_pollset* pollset, grpc_pollset_worker** worker,
48
+ grpc_millis deadline);
49
+ grpc_error_handle (*kick)(grpc_pollset* pollset,
50
+ grpc_pollset_worker* specific_worker);
51
51
  size_t (*pollset_size)(void);
52
52
  } grpc_pollset_vtable;
53
53
 
@@ -86,14 +86,14 @@ void grpc_pollset_destroy(grpc_pollset* pollset);
86
86
  May call grpc_closure_list_run on grpc_closure_list, without holding the
87
87
  pollset
88
88
  lock */
89
- grpc_error* grpc_pollset_work(grpc_pollset* pollset,
90
- grpc_pollset_worker** worker,
91
- grpc_millis deadline) GRPC_MUST_USE_RESULT;
89
+ grpc_error_handle grpc_pollset_work(grpc_pollset* pollset,
90
+ grpc_pollset_worker** worker,
91
+ grpc_millis deadline) GRPC_MUST_USE_RESULT;
92
92
 
93
93
  /* Break one polling thread out of polling work for this pollset.
94
94
  If specific_worker is non-NULL, then kick that worker. */
95
- grpc_error* grpc_pollset_kick(grpc_pollset* pollset,
96
- grpc_pollset_worker* specific_worker)
95
+ grpc_error_handle grpc_pollset_kick(grpc_pollset* pollset,
96
+ grpc_pollset_worker* specific_worker)
97
97
  GRPC_MUST_USE_RESULT;
98
98
 
99
99
  #endif /* GRPC_CORE_LIB_IOMGR_POLLSET_H */