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
@@ -219,9 +219,9 @@ static void pollset_global_shutdown(void) {
219
219
  /// The Apple pollset simply waits on a condition variable until it is kicked.
220
220
  /// The network events are handled in the global run loop thread. Processing of
221
221
  /// these events will eventually trigger the kick.
222
- static grpc_error* pollset_work(grpc_pollset* pollset,
223
- grpc_pollset_worker** worker,
224
- grpc_millis deadline) {
222
+ static grpc_error_handle pollset_work(grpc_pollset* pollset,
223
+ grpc_pollset_worker** worker,
224
+ grpc_millis deadline) {
225
225
  GRPC_POLLING_TRACE("pollset work: %p, worker: %p, deadline: %" PRIu64,
226
226
  pollset, worker, deadline);
227
227
  GrpcApplePollset* apple_pollset =
@@ -272,8 +272,8 @@ static void kick_worker(GrpcAppleWorker* worker) {
272
272
  /// The caller must acquire the lock GrpcApplePollset.mu before calling this
273
273
  /// function. The kick action simply signals the condition variable of the
274
274
  /// worker.
275
- static grpc_error* pollset_kick(grpc_pollset* pollset,
276
- grpc_pollset_worker* specific_worker) {
275
+ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
276
+ grpc_pollset_worker* specific_worker) {
277
277
  GrpcApplePollset* apple_pollset =
278
278
  reinterpret_cast<GrpcApplePollset*>(pollset);
279
279
 
@@ -241,7 +241,7 @@ struct grpc_pollset_set {
241
241
  * Common helpers
242
242
  */
243
243
 
244
- static bool append_error(grpc_error** composite, grpc_error* error,
244
+ static bool append_error(grpc_error_handle* composite, grpc_error_handle error,
245
245
  const char* desc) {
246
246
  if (error == GRPC_ERROR_NONE) return true;
247
247
  if (*composite == GRPC_ERROR_NONE) {
@@ -382,7 +382,7 @@ static int fd_wrapped_fd(grpc_fd* fd) { return fd->fd; }
382
382
  /* if 'releasing_fd' is true, it means that we are going to detach the internal
383
383
  * fd from grpc_fd structure (i.e which means we should not be calling
384
384
  * shutdown() syscall on that fd) */
385
- static void fd_shutdown_internal(grpc_fd* fd, grpc_error* why,
385
+ static void fd_shutdown_internal(grpc_fd* fd, grpc_error_handle why,
386
386
  bool releasing_fd) {
387
387
  if (fd->read_closure->SetShutdown(GRPC_ERROR_REF(why))) {
388
388
  if (!releasing_fd) {
@@ -402,13 +402,13 @@ static void fd_shutdown_internal(grpc_fd* fd, grpc_error* why,
402
402
  }
403
403
 
404
404
  /* Might be called multiple times */
405
- static void fd_shutdown(grpc_fd* fd, grpc_error* why) {
405
+ static void fd_shutdown(grpc_fd* fd, grpc_error_handle why) {
406
406
  fd_shutdown_internal(fd, why, false);
407
407
  }
408
408
 
409
409
  static void fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
410
410
  const char* reason) {
411
- grpc_error* error = GRPC_ERROR_NONE;
411
+ grpc_error_handle error = GRPC_ERROR_NONE;
412
412
  bool is_release_fd = (release_fd != nullptr);
413
413
 
414
414
  if (!fd->read_closure->IsShutdown()) {
@@ -514,12 +514,12 @@ static size_t choose_neighborhood(void) {
514
514
  return static_cast<size_t>(gpr_cpu_current_cpu()) % g_num_neighborhoods;
515
515
  }
516
516
 
517
- static grpc_error* pollset_global_init(void) {
517
+ static grpc_error_handle pollset_global_init(void) {
518
518
  gpr_tls_init(&g_current_thread_pollset);
519
519
  gpr_tls_init(&g_current_thread_worker);
520
520
  gpr_atm_no_barrier_store(&g_active_poller, 0);
521
521
  global_wakeup_fd.read_fd = -1;
522
- grpc_error* err = grpc_wakeup_fd_init(&global_wakeup_fd);
522
+ grpc_error_handle err = grpc_wakeup_fd_init(&global_wakeup_fd);
523
523
  if (err != GRPC_ERROR_NONE) return err;
524
524
  struct epoll_event ev;
525
525
  ev.events = static_cast<uint32_t>(EPOLLIN | EPOLLET);
@@ -589,9 +589,9 @@ static void pollset_destroy(grpc_pollset* pollset) {
589
589
  gpr_mu_destroy(&pollset->mu);
590
590
  }
591
591
 
592
- static grpc_error* pollset_kick_all(grpc_pollset* pollset) {
592
+ static grpc_error_handle pollset_kick_all(grpc_pollset* pollset) {
593
593
  GPR_TIMER_SCOPE("pollset_kick_all", 0);
594
- grpc_error* error = GRPC_ERROR_NONE;
594
+ grpc_error_handle error = GRPC_ERROR_NONE;
595
595
  if (pollset->root_worker != nullptr) {
596
596
  grpc_pollset_worker* worker = pollset->root_worker;
597
597
  do {
@@ -663,11 +663,11 @@ static int poll_deadline_to_millis_timeout(grpc_millis millis) {
663
663
  NOTE ON SYNCRHONIZATION: Similar to do_epoll_wait(), this function is only
664
664
  called by g_active_poller thread. So there is no need for synchronization
665
665
  when accessing fields in g_epoll_set */
666
- static grpc_error* process_epoll_events(grpc_pollset* /*pollset*/) {
666
+ static grpc_error_handle process_epoll_events(grpc_pollset* /*pollset*/) {
667
667
  GPR_TIMER_SCOPE("process_epoll_events", 0);
668
668
 
669
669
  static const char* err_desc = "process_events";
670
- grpc_error* error = GRPC_ERROR_NONE;
670
+ grpc_error_handle error = GRPC_ERROR_NONE;
671
671
  long num_events = gpr_atm_acq_load(&g_epoll_set.num_events);
672
672
  long cursor = gpr_atm_acq_load(&g_epoll_set.cursor);
673
673
  for (int idx = 0;
@@ -715,7 +715,7 @@ static grpc_error* process_epoll_events(grpc_pollset* /*pollset*/) {
715
715
  NOTE ON SYNCHRONIZATION: At any point of time, only the g_active_poller
716
716
  (i.e the designated poller thread) will be calling this function. So there is
717
717
  no need for any synchronization when accesing fields in g_epoll_set */
718
- static grpc_error* do_epoll_wait(grpc_pollset* ps, grpc_millis deadline) {
718
+ static grpc_error_handle do_epoll_wait(grpc_pollset* ps, grpc_millis deadline) {
719
719
  GPR_TIMER_SCOPE("do_epoll_wait", 0);
720
720
 
721
721
  int r;
@@ -1014,12 +1014,12 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
1014
1014
  The function pollset_work() may temporarily release the lock (pollset->po.mu)
1015
1015
  during the course of its execution but it will always re-acquire the lock and
1016
1016
  ensure that it is held by the time the function returns */
1017
- static grpc_error* pollset_work(grpc_pollset* ps,
1018
- grpc_pollset_worker** worker_hdl,
1019
- grpc_millis deadline) {
1017
+ static grpc_error_handle pollset_work(grpc_pollset* ps,
1018
+ grpc_pollset_worker** worker_hdl,
1019
+ grpc_millis deadline) {
1020
1020
  GPR_TIMER_SCOPE("pollset_work", 0);
1021
1021
  grpc_pollset_worker worker;
1022
- grpc_error* error = GRPC_ERROR_NONE;
1022
+ grpc_error_handle error = GRPC_ERROR_NONE;
1023
1023
  static const char* err_desc = "pollset_work";
1024
1024
  if (ps->kicked_without_poller) {
1025
1025
  ps->kicked_without_poller = false;
@@ -1065,11 +1065,11 @@ static grpc_error* pollset_work(grpc_pollset* ps,
1065
1065
  return error;
1066
1066
  }
1067
1067
 
1068
- static grpc_error* pollset_kick(grpc_pollset* pollset,
1069
- grpc_pollset_worker* specific_worker) {
1068
+ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1069
+ grpc_pollset_worker* specific_worker) {
1070
1070
  GPR_TIMER_SCOPE("pollset_kick", 0);
1071
1071
  GRPC_STATS_INC_POLLSET_KICK();
1072
- grpc_error* ret_err = GRPC_ERROR_NONE;
1072
+ grpc_error_handle ret_err = GRPC_ERROR_NONE;
1073
1073
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1074
1074
  std::vector<std::string> log;
1075
1075
  log.push_back(absl::StrFormat(
@@ -1260,7 +1260,7 @@ static bool is_any_background_poller_thread(void) { return false; }
1260
1260
  static void shutdown_background_closure(void) {}
1261
1261
 
1262
1262
  static bool add_closure_to_background_poller(grpc_closure* /*closure*/,
1263
- grpc_error* /*error*/) {
1263
+ grpc_error_handle /*error*/) {
1264
1264
  return false;
1265
1265
  }
1266
1266
 
@@ -134,7 +134,7 @@ static std::string pollable_desc(pollable* p) {
134
134
  /// added
135
135
  static pollable* g_empty_pollable;
136
136
 
137
- static grpc_error* pollable_create(pollable_type type, pollable** p);
137
+ static grpc_error_handle pollable_create(pollable_type type, pollable** p);
138
138
  static pollable* pollable_ref(pollable* p,
139
139
  const grpc_core::DebugLocation& dbg_loc,
140
140
  const char* reason) {
@@ -314,7 +314,7 @@ struct grpc_pollset_set {
314
314
  * Common helpers
315
315
  */
316
316
 
317
- static bool append_error(grpc_error** composite, grpc_error* error,
317
+ static bool append_error(grpc_error_handle* composite, grpc_error_handle error,
318
318
  const char* desc) {
319
319
  if (error == GRPC_ERROR_NONE) return true;
320
320
  if (*composite == GRPC_ERROR_NONE) {
@@ -372,7 +372,7 @@ static void ref_by(grpc_fd* fd, int n) {
372
372
  }
373
373
 
374
374
  /* Uninitialize and add to the freelist */
375
- static void fd_destroy(void* arg, grpc_error* /*error*/) {
375
+ static void fd_destroy(void* arg, grpc_error_handle /*error*/) {
376
376
  grpc_fd* fd = static_cast<grpc_fd*>(arg);
377
377
  fd->destroy();
378
378
 
@@ -509,7 +509,7 @@ static bool fd_is_shutdown(grpc_fd* fd) {
509
509
  }
510
510
 
511
511
  /* Might be called multiple times */
512
- static void fd_shutdown(grpc_fd* fd, grpc_error* why) {
512
+ static void fd_shutdown(grpc_fd* fd, grpc_error_handle why) {
513
513
  if (fd->read_closure.SetShutdown(GRPC_ERROR_REF(why))) {
514
514
  if (shutdown(fd->fd, SHUT_RDWR)) {
515
515
  if (errno != ENOTCONN) {
@@ -556,7 +556,7 @@ static void fd_add_pollset(grpc_fd* fd, grpc_pollset* pollset) {
556
556
  * Pollable Definitions
557
557
  */
558
558
 
559
- static grpc_error* pollable_create(pollable_type type, pollable** p) {
559
+ static grpc_error_handle pollable_create(pollable_type type, pollable** p) {
560
560
  *p = nullptr;
561
561
 
562
562
  int epfd = epoll_create1(EPOLL_CLOEXEC);
@@ -565,7 +565,7 @@ static grpc_error* pollable_create(pollable_type type, pollable** p) {
565
565
  }
566
566
  GRPC_FD_TRACE("Pollable_create: created epfd: %d (type: %d)", epfd, type);
567
567
  *p = static_cast<pollable*>(gpr_malloc(sizeof(**p)));
568
- grpc_error* err = grpc_wakeup_fd_init(&(*p)->wakeup);
568
+ grpc_error_handle err = grpc_wakeup_fd_init(&(*p)->wakeup);
569
569
  if (err != GRPC_ERROR_NONE) {
570
570
  GRPC_FD_TRACE(
571
571
  "Pollable_create: closed epfd: %d (type: %d). wakeupfd_init error",
@@ -609,8 +609,8 @@ static grpc_error* pollable_create(pollable_type type, pollable** p) {
609
609
  return GRPC_ERROR_NONE;
610
610
  }
611
611
 
612
- static grpc_error* pollable_add_fd(pollable* p, grpc_fd* fd) {
613
- grpc_error* error = GRPC_ERROR_NONE;
612
+ static grpc_error_handle pollable_add_fd(pollable* p, grpc_fd* fd) {
613
+ grpc_error_handle error = GRPC_ERROR_NONE;
614
614
  static const char* err_desc = "pollable_add_fd";
615
615
  const int epfd = p->epfd;
616
616
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
@@ -647,7 +647,7 @@ GPR_TLS_DECL(g_current_thread_pollset);
647
647
  GPR_TLS_DECL(g_current_thread_worker);
648
648
 
649
649
  /* Global state management */
650
- static grpc_error* pollset_global_init(void) {
650
+ static grpc_error_handle pollset_global_init(void) {
651
651
  gpr_tls_init(&g_current_thread_pollset);
652
652
  gpr_tls_init(&g_current_thread_worker);
653
653
  return pollable_create(PO_EMPTY, &g_empty_pollable);
@@ -681,7 +681,7 @@ static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
681
681
  /* pollset->mu must be held before calling this function,
682
682
  * pollset->active_pollable->mu & specific_worker->pollable_obj->mu must not be
683
683
  * held */
684
- static grpc_error* kick_one_worker(grpc_pollset_worker* specific_worker) {
684
+ static grpc_error_handle kick_one_worker(grpc_pollset_worker* specific_worker) {
685
685
  GPR_TIMER_SCOPE("kick_one_worker", 0);
686
686
  pollable* p = specific_worker->pollable_obj;
687
687
  grpc_core::MutexLockForGprMu lock(&p->mu);
@@ -708,7 +708,7 @@ static grpc_error* kick_one_worker(grpc_pollset_worker* specific_worker) {
708
708
  gpr_log(GPR_INFO, "PS:%p kicked_specific_via_wakeup_fd", p);
709
709
  }
710
710
  specific_worker->kicked = true;
711
- grpc_error* error = grpc_wakeup_fd_wakeup(&p->wakeup);
711
+ grpc_error_handle error = grpc_wakeup_fd_wakeup(&p->wakeup);
712
712
  return error;
713
713
  }
714
714
  if (specific_worker->initialized_cv) {
@@ -725,8 +725,8 @@ static grpc_error* kick_one_worker(grpc_pollset_worker* specific_worker) {
725
725
  return GRPC_ERROR_NONE;
726
726
  }
727
727
 
728
- static grpc_error* pollset_kick(grpc_pollset* pollset,
729
- grpc_pollset_worker* specific_worker) {
728
+ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
729
+ grpc_pollset_worker* specific_worker) {
730
730
  GPR_TIMER_SCOPE("pollset_kick", 0);
731
731
  GRPC_STATS_INC_POLLSET_KICK();
732
732
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
@@ -777,9 +777,9 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
777
777
  }
778
778
  }
779
779
 
780
- static grpc_error* pollset_kick_all(grpc_pollset* pollset) {
780
+ static grpc_error_handle pollset_kick_all(grpc_pollset* pollset) {
781
781
  GPR_TIMER_SCOPE("pollset_kick_all", 0);
782
- grpc_error* error = GRPC_ERROR_NONE;
782
+ grpc_error_handle error = GRPC_ERROR_NONE;
783
783
  const char* err_desc = "pollset_kick_all";
784
784
  grpc_pollset_worker* w = pollset->root_worker;
785
785
  if (w != nullptr) {
@@ -828,9 +828,9 @@ static void fd_has_errors(grpc_fd* fd) { fd->error_closure.SetReady(); }
828
828
  *
829
829
  * Note that if a pollable object is already attached to the fd, it may be of
830
830
  * either PO_FD or PO_MULTI type */
831
- static grpc_error* get_fd_pollable(grpc_fd* fd, pollable** p) {
831
+ static grpc_error_handle get_fd_pollable(grpc_fd* fd, pollable** p) {
832
832
  gpr_mu_lock(&fd->pollable_mu);
833
- grpc_error* error = GRPC_ERROR_NONE;
833
+ grpc_error_handle error = GRPC_ERROR_NONE;
834
834
  static const char* err_desc = "get_fd_pollable";
835
835
  if (fd->pollable_obj == nullptr) {
836
836
  if (append_error(&error, pollable_create(PO_FD, &fd->pollable_obj),
@@ -863,8 +863,9 @@ static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
863
863
  pollset_maybe_finish_shutdown(pollset);
864
864
  }
865
865
 
866
- static grpc_error* pollable_process_events(grpc_pollset* pollset,
867
- pollable* pollable_obj, bool drain) {
866
+ static grpc_error_handle pollable_process_events(grpc_pollset* pollset,
867
+ pollable* pollable_obj,
868
+ bool drain) {
868
869
  GPR_TIMER_SCOPE("pollable_process_events", 0);
869
870
  static const char* err_desc = "pollset_process_events";
870
871
  // Use a simple heuristic to determine how many fd events to process
@@ -877,7 +878,7 @@ static grpc_error* pollable_process_events(grpc_pollset* pollset,
877
878
  if (handle_count == 0) {
878
879
  handle_count = 1;
879
880
  }
880
- grpc_error* error = GRPC_ERROR_NONE;
881
+ grpc_error_handle error = GRPC_ERROR_NONE;
881
882
  for (int i = 0; (drain || i < handle_count) &&
882
883
  pollable_obj->event_cursor != pollable_obj->event_count;
883
884
  i++) {
@@ -932,7 +933,7 @@ static void pollset_destroy(grpc_pollset* pollset) {
932
933
  gpr_mu_destroy(&pollset->mu);
933
934
  }
934
935
 
935
- static grpc_error* pollable_epoll(pollable* p, grpc_millis deadline) {
936
+ static grpc_error_handle pollable_epoll(pollable* p, grpc_millis deadline) {
936
937
  GPR_TIMER_SCOPE("pollable_epoll", 0);
937
938
  int timeout = poll_deadline_to_millis_timeout(deadline);
938
939
 
@@ -1103,9 +1104,9 @@ static long sys_gettid(void) { return syscall(__NR_gettid); }
1103
1104
  The function pollset_work() may temporarily release the lock (pollset->po.mu)
1104
1105
  during the course of its execution but it will always re-acquire the lock and
1105
1106
  ensure that it is held by the time the function returns */
1106
- static grpc_error* pollset_work(grpc_pollset* pollset,
1107
- grpc_pollset_worker** worker_hdl,
1108
- grpc_millis deadline) {
1107
+ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1108
+ grpc_pollset_worker** worker_hdl,
1109
+ grpc_millis deadline) {
1109
1110
  GPR_TIMER_SCOPE("pollset_work", 0);
1110
1111
  #ifdef GRPC_EPOLLEX_CREATE_WORKERS_ON_HEAP
1111
1112
  grpc_pollset_worker* worker =
@@ -1126,7 +1127,7 @@ static grpc_error* pollset_work(grpc_pollset* pollset,
1126
1127
  deadline, pollset->kicked_without_poller, pollset->active_pollable);
1127
1128
  }
1128
1129
  static const char* err_desc = "pollset_work";
1129
- grpc_error* error = GRPC_ERROR_NONE;
1130
+ grpc_error_handle error = GRPC_ERROR_NONE;
1130
1131
  if (pollset->kicked_without_poller) {
1131
1132
  pollset->kicked_without_poller = false;
1132
1133
  } else {
@@ -1155,10 +1156,10 @@ static grpc_error* pollset_work(grpc_pollset* pollset,
1155
1156
  return error;
1156
1157
  }
1157
1158
 
1158
- static grpc_error* pollset_transition_pollable_from_empty_to_fd_locked(
1159
+ static grpc_error_handle pollset_transition_pollable_from_empty_to_fd_locked(
1159
1160
  grpc_pollset* pollset, grpc_fd* fd) {
1160
1161
  static const char* err_desc = "pollset_transition_pollable_from_empty_to_fd";
1161
- grpc_error* error = GRPC_ERROR_NONE;
1162
+ grpc_error_handle error = GRPC_ERROR_NONE;
1162
1163
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1163
1164
  gpr_log(GPR_INFO,
1164
1165
  "PS:%p add fd %p (%d); transition pollable from empty to fd",
@@ -1171,10 +1172,10 @@ static grpc_error* pollset_transition_pollable_from_empty_to_fd_locked(
1171
1172
  return error;
1172
1173
  }
1173
1174
 
1174
- static grpc_error* pollset_transition_pollable_from_fd_to_multi_locked(
1175
+ static grpc_error_handle pollset_transition_pollable_from_fd_to_multi_locked(
1175
1176
  grpc_pollset* pollset, grpc_fd* and_add_fd) {
1176
1177
  static const char* err_desc = "pollset_transition_pollable_from_fd_to_multi";
1177
- grpc_error* error = GRPC_ERROR_NONE;
1178
+ grpc_error_handle error = GRPC_ERROR_NONE;
1178
1179
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1179
1180
  gpr_log(
1180
1181
  GPR_INFO,
@@ -1200,8 +1201,9 @@ static grpc_error* pollset_transition_pollable_from_fd_to_multi_locked(
1200
1201
  }
1201
1202
 
1202
1203
  /* expects pollsets locked, flag whether fd is locked or not */
1203
- static grpc_error* pollset_add_fd_locked(grpc_pollset* pollset, grpc_fd* fd) {
1204
- grpc_error* error = GRPC_ERROR_NONE;
1204
+ static grpc_error_handle pollset_add_fd_locked(grpc_pollset* pollset,
1205
+ grpc_fd* fd) {
1206
+ grpc_error_handle error = GRPC_ERROR_NONE;
1205
1207
  pollable* po_at_start =
1206
1208
  POLLABLE_REF(pollset->active_pollable, "pollset_add_fd");
1207
1209
  switch (pollset->active_pollable->type) {
@@ -1236,9 +1238,9 @@ static grpc_error* pollset_add_fd_locked(grpc_pollset* pollset, grpc_fd* fd) {
1236
1238
  return error;
1237
1239
  }
1238
1240
 
1239
- static grpc_error* pollset_as_multipollable_locked(grpc_pollset* pollset,
1240
- pollable** pollable_obj) {
1241
- grpc_error* error = GRPC_ERROR_NONE;
1241
+ static grpc_error_handle pollset_as_multipollable_locked(
1242
+ grpc_pollset* pollset, pollable** pollable_obj) {
1243
+ grpc_error_handle error = GRPC_ERROR_NONE;
1242
1244
  pollable* po_at_start =
1243
1245
  POLLABLE_REF(pollset->active_pollable, "pollset_as_multipollable");
1244
1246
  switch (pollset->active_pollable->type) {
@@ -1297,7 +1299,7 @@ static void pollset_add_fd(grpc_pollset* pollset, grpc_fd* fd) {
1297
1299
  }
1298
1300
 
1299
1301
  grpc_core::MutexLockForGprMu lock(&pollset->mu);
1300
- grpc_error* error = pollset_add_fd_locked(pollset, fd);
1302
+ grpc_error_handle error = pollset_add_fd_locked(pollset, fd);
1301
1303
 
1302
1304
  // If we are in PO_MULTI mode, we should update the pollsets of the FD.
1303
1305
  if (gpr_atm_no_barrier_load(&pollset->active_pollable_type) == PO_MULTI) {
@@ -1354,7 +1356,7 @@ static void pollset_set_add_fd(grpc_pollset_set* pss, grpc_fd* fd) {
1354
1356
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1355
1357
  gpr_log(GPR_INFO, "PSS:%p: add fd %p (%d)", pss, fd, fd->fd);
1356
1358
  }
1357
- grpc_error* error = GRPC_ERROR_NONE;
1359
+ grpc_error_handle error = GRPC_ERROR_NONE;
1358
1360
  static const char* err_desc = "pollset_set_add_fd";
1359
1361
  pss = pss_lock_adam(pss);
1360
1362
  for (size_t i = 0; i < pss->pollset_count; i++) {
@@ -1421,13 +1423,14 @@ static void pollset_set_del_pollset(grpc_pollset_set* pss, grpc_pollset* ps) {
1421
1423
 
1422
1424
  // add all fds to pollables, and output a new array of unorphaned out_fds
1423
1425
  // assumes pollsets are multipollable
1424
- static grpc_error* add_fds_to_pollsets(grpc_fd** fds, size_t fd_count,
1425
- grpc_pollset** pollsets,
1426
- size_t pollset_count,
1427
- const char* err_desc, grpc_fd** out_fds,
1428
- size_t* out_fd_count) {
1426
+ static grpc_error_handle add_fds_to_pollsets(grpc_fd** fds, size_t fd_count,
1427
+ grpc_pollset** pollsets,
1428
+ size_t pollset_count,
1429
+ const char* err_desc,
1430
+ grpc_fd** out_fds,
1431
+ size_t* out_fd_count) {
1429
1432
  GPR_TIMER_SCOPE("add_fds_to_pollsets", 0);
1430
- grpc_error* error = GRPC_ERROR_NONE;
1433
+ grpc_error_handle error = GRPC_ERROR_NONE;
1431
1434
  for (size_t i = 0; i < fd_count; i++) {
1432
1435
  gpr_mu_lock(&fds[i]->orphan_mu);
1433
1436
  if ((gpr_atm_no_barrier_load(&fds[i]->refst) & 1) == 0) {
@@ -1451,7 +1454,7 @@ static void pollset_set_add_pollset(grpc_pollset_set* pss, grpc_pollset* ps) {
1451
1454
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1452
1455
  gpr_log(GPR_INFO, "PSS:%p: add pollset %p", pss, ps);
1453
1456
  }
1454
- grpc_error* error = GRPC_ERROR_NONE;
1457
+ grpc_error_handle error = GRPC_ERROR_NONE;
1455
1458
  static const char* err_desc = "pollset_set_add_pollset";
1456
1459
  pollable* pollable_obj = nullptr;
1457
1460
  gpr_mu_lock(&ps->mu);
@@ -1488,7 +1491,7 @@ static void pollset_set_add_pollset_set(grpc_pollset_set* a,
1488
1491
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1489
1492
  gpr_log(GPR_INFO, "PSS: merge (%p, %p)", a, b);
1490
1493
  }
1491
- grpc_error* error = GRPC_ERROR_NONE;
1494
+ grpc_error_handle error = GRPC_ERROR_NONE;
1492
1495
  static const char* err_desc = "pollset_set_add_fd";
1493
1496
  for (;;) {
1494
1497
  if (a == b) {
@@ -1573,7 +1576,7 @@ static bool is_any_background_poller_thread(void) { return false; }
1573
1576
  static void shutdown_background_closure(void) {}
1574
1577
 
1575
1578
  static bool add_closure_to_background_poller(grpc_closure* /*closure*/,
1576
- grpc_error* /*error*/) {
1579
+ grpc_error_handle /*error*/) {
1577
1580
  return false;
1578
1581
  }
1579
1582
 
@@ -89,7 +89,7 @@ struct grpc_fd {
89
89
  int closed;
90
90
  int released;
91
91
  gpr_atm pollhup;
92
- grpc_error* shutdown_error;
92
+ grpc_error_handle shutdown_error;
93
93
 
94
94
  /* The watcher list.
95
95
 
@@ -230,9 +230,9 @@ static int poll_deadline_to_millis_timeout(grpc_millis deadline);
230
230
  #define GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP 2
231
231
  /* As per pollset_kick, with an extended set of flags (defined above)
232
232
  -- mostly for fd_posix's use. */
233
- static grpc_error* pollset_kick_ext(grpc_pollset* p,
234
- grpc_pollset_worker* specific_worker,
235
- uint32_t flags) GRPC_MUST_USE_RESULT;
233
+ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
234
+ grpc_pollset_worker* specific_worker,
235
+ uint32_t flags) GRPC_MUST_USE_RESULT;
236
236
 
237
237
  /* Return 1 if the pollset has active threads in pollset_work (pollset must
238
238
  * be locked) */
@@ -394,11 +394,12 @@ static bool fd_is_orphaned(grpc_fd* fd) {
394
394
  return (gpr_atm_acq_load(&fd->refst) & 1) == 0;
395
395
  }
396
396
 
397
- static grpc_error* pollset_kick_locked(grpc_fd_watcher* watcher) {
397
+ static grpc_error_handle pollset_kick_locked(grpc_fd_watcher* watcher) {
398
398
  gpr_mu_lock(&watcher->pollset->mu);
399
399
  GPR_ASSERT(watcher->worker);
400
- grpc_error* err = pollset_kick_ext(watcher->pollset, watcher->worker,
401
- GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP);
400
+ grpc_error_handle err =
401
+ pollset_kick_ext(watcher->pollset, watcher->worker,
402
+ GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP);
402
403
  gpr_mu_unlock(&watcher->pollset->mu);
403
404
  return err;
404
405
  }
@@ -484,7 +485,7 @@ static void fd_ref(grpc_fd* fd) { ref_by(fd, 2); }
484
485
  static void fd_unref(grpc_fd* fd) { unref_by(fd, 2); }
485
486
  #endif
486
487
 
487
- static grpc_error* fd_shutdown_error(grpc_fd* fd) {
488
+ static grpc_error_handle fd_shutdown_error(grpc_fd* fd) {
488
489
  if (!fd->shutdown) {
489
490
  return GRPC_ERROR_NONE;
490
491
  } else {
@@ -537,7 +538,7 @@ static int set_ready_locked(grpc_fd* fd, grpc_closure** st) {
537
538
  }
538
539
  }
539
540
 
540
- static void fd_shutdown(grpc_fd* fd, grpc_error* why) {
541
+ static void fd_shutdown(grpc_fd* fd, grpc_error_handle why) {
541
542
  gpr_mu_lock(&fd->mu);
542
543
  /* only shutdown once */
543
544
  if (!fd->shutdown) {
@@ -747,7 +748,8 @@ static void push_front_worker(grpc_pollset* p, grpc_pollset_worker* worker) {
747
748
  worker->prev->next = worker->next->prev = worker;
748
749
  }
749
750
 
750
- static void kick_append_error(grpc_error** composite, grpc_error* error) {
751
+ static void kick_append_error(grpc_error_handle* composite,
752
+ grpc_error_handle error) {
751
753
  if (error == GRPC_ERROR_NONE) return;
752
754
  if (*composite == GRPC_ERROR_NONE) {
753
755
  *composite = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Kick Failure");
@@ -755,11 +757,11 @@ static void kick_append_error(grpc_error** composite, grpc_error* error) {
755
757
  *composite = grpc_error_add_child(*composite, error);
756
758
  }
757
759
 
758
- static grpc_error* pollset_kick_ext(grpc_pollset* p,
759
- grpc_pollset_worker* specific_worker,
760
- uint32_t flags) {
760
+ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
761
+ grpc_pollset_worker* specific_worker,
762
+ uint32_t flags) {
761
763
  GPR_TIMER_SCOPE("pollset_kick_ext", 0);
762
- grpc_error* error = GRPC_ERROR_NONE;
764
+ grpc_error_handle error = GRPC_ERROR_NONE;
763
765
  GRPC_STATS_INC_POLLSET_KICK();
764
766
 
765
767
  /* pollset->mu already held */
@@ -826,14 +828,14 @@ static grpc_error* pollset_kick_ext(grpc_pollset* p,
826
828
  return error;
827
829
  }
828
830
 
829
- static grpc_error* pollset_kick(grpc_pollset* p,
830
- grpc_pollset_worker* specific_worker) {
831
+ static grpc_error_handle pollset_kick(grpc_pollset* p,
832
+ grpc_pollset_worker* specific_worker) {
831
833
  return pollset_kick_ext(p, specific_worker, 0);
832
834
  }
833
835
 
834
836
  /* global state management */
835
837
 
836
- static grpc_error* pollset_global_init(void) {
838
+ static grpc_error_handle pollset_global_init(void) {
837
839
  gpr_tls_init(&g_current_thread_poller);
838
840
  gpr_tls_init(&g_current_thread_worker);
839
841
  return GRPC_ERROR_NONE;
@@ -904,7 +906,8 @@ static void finish_shutdown(grpc_pollset* pollset) {
904
906
  GRPC_ERROR_NONE);
905
907
  }
906
908
 
907
- static void work_combine_error(grpc_error** composite, grpc_error* error) {
909
+ static void work_combine_error(grpc_error_handle* composite,
910
+ grpc_error_handle error) {
908
911
  if (error == GRPC_ERROR_NONE) return;
909
912
  if (*composite == GRPC_ERROR_NONE) {
910
913
  *composite = GRPC_ERROR_CREATE_FROM_STATIC_STRING("pollset_work");
@@ -912,13 +915,13 @@ static void work_combine_error(grpc_error** composite, grpc_error* error) {
912
915
  *composite = grpc_error_add_child(*composite, error);
913
916
  }
914
917
 
915
- static grpc_error* pollset_work(grpc_pollset* pollset,
916
- grpc_pollset_worker** worker_hdl,
917
- grpc_millis deadline) {
918
+ static grpc_error_handle pollset_work(grpc_pollset* pollset,
919
+ grpc_pollset_worker** worker_hdl,
920
+ grpc_millis deadline) {
918
921
  GPR_TIMER_SCOPE("pollset_work", 0);
919
922
  grpc_pollset_worker worker;
920
923
  if (worker_hdl) *worker_hdl = &worker;
921
- grpc_error* error = GRPC_ERROR_NONE;
924
+ grpc_error_handle error = GRPC_ERROR_NONE;
922
925
 
923
926
  /* Avoid malloc for small number of elements. */
924
927
  enum { inline_elements = 96 };
@@ -1336,7 +1339,7 @@ static bool is_any_background_poller_thread(void) { return false; }
1336
1339
  static void shutdown_background_closure(void) {}
1337
1340
 
1338
1341
  static bool add_closure_to_background_poller(grpc_closure* /*closure*/,
1339
- grpc_error* /*error*/) {
1342
+ grpc_error_handle /*error*/) {
1340
1343
  return false;
1341
1344
  }
1342
1345