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
@@ -135,7 +135,7 @@ class TracedBuffer {
135
135
  /** Cleans the list by calling the callback for each traced buffer in the list
136
136
  * with timestamps that it has. */
137
137
  static void Shutdown(grpc_core::TracedBuffer** head, void* remaining,
138
- grpc_error* shutdown_err);
138
+ grpc_error_handle shutdown_err);
139
139
 
140
140
  private:
141
141
  uint32_t seq_no_; /* The sequence number for the last byte in the buffer */
@@ -148,7 +148,7 @@ class TracedBuffer {
148
148
  public:
149
149
  /* Phony shutdown function */
150
150
  static void Shutdown(grpc_core::TracedBuffer** /*head*/, void* /*remaining*/,
151
- grpc_error* shutdown_err) {
151
+ grpc_error_handle shutdown_err) {
152
152
  GRPC_ERROR_UNREF(shutdown_err);
153
153
  }
154
154
  };
@@ -156,9 +156,8 @@ class TracedBuffer {
156
156
 
157
157
  /** Sets the callback function to call when timestamps for a write are
158
158
  * collected. The callback does not own a reference to error. */
159
- void grpc_tcp_set_write_timestamps_callback(void (*fn)(void*,
160
- grpc_core::Timestamps*,
161
- grpc_error* error));
159
+ void grpc_tcp_set_write_timestamps_callback(
160
+ void (*fn)(void*, grpc_core::Timestamps*, grpc_error_handle error));
162
161
 
163
162
  } /* namespace grpc_core */
164
163
 
@@ -32,15 +32,15 @@ DebugOnlyTraceFlag grpc_call_combiner_trace(false, "call_combiner");
32
32
 
33
33
  namespace {
34
34
 
35
- grpc_error* DecodeCancelStateError(gpr_atm cancel_state) {
35
+ grpc_error_handle DecodeCancelStateError(gpr_atm cancel_state) {
36
36
  if (cancel_state & 1) {
37
- return reinterpret_cast<grpc_error*>(cancel_state &
38
- ~static_cast<gpr_atm>(1));
37
+ return reinterpret_cast<grpc_error_handle>(cancel_state &
38
+ ~static_cast<gpr_atm>(1));
39
39
  }
40
40
  return GRPC_ERROR_NONE;
41
41
  }
42
42
 
43
- gpr_atm EncodeCancelStateError(grpc_error* error) {
43
+ gpr_atm EncodeCancelStateError(grpc_error_handle error) {
44
44
  return static_cast<gpr_atm>(1) | reinterpret_cast<gpr_atm>(error);
45
45
  }
46
46
 
@@ -60,7 +60,7 @@ CallCombiner::~CallCombiner() {
60
60
  }
61
61
 
62
62
  #ifdef GRPC_TSAN_ENABLED
63
- void CallCombiner::TsanClosure(void* arg, grpc_error* error) {
63
+ void CallCombiner::TsanClosure(void* arg, grpc_error_handle error) {
64
64
  CallCombiner* self = static_cast<CallCombiner*>(arg);
65
65
  // We ref-count the lock, and check if it's already taken.
66
66
  // If it was taken, we should do nothing. Otherwise, we will mark it as
@@ -91,7 +91,8 @@ void CallCombiner::TsanClosure(void* arg, grpc_error* error) {
91
91
  }
92
92
  #endif
93
93
 
94
- void CallCombiner::ScheduleClosure(grpc_closure* closure, grpc_error* error) {
94
+ void CallCombiner::ScheduleClosure(grpc_closure* closure,
95
+ grpc_error_handle error) {
95
96
  #ifdef GRPC_TSAN_ENABLED
96
97
  original_closure_ = closure;
97
98
  ExecCtx::Run(DEBUG_LOCATION, &tsan_closure_, error);
@@ -110,14 +111,15 @@ void CallCombiner::ScheduleClosure(grpc_closure* closure, grpc_error* error) {
110
111
  #define DEBUG_FMT_ARGS
111
112
  #endif
112
113
 
113
- void CallCombiner::Start(grpc_closure* closure, grpc_error* error,
114
+ void CallCombiner::Start(grpc_closure* closure, grpc_error_handle error,
114
115
  DEBUG_ARGS const char* reason) {
115
116
  GPR_TIMER_SCOPE("CallCombiner::Start", 0);
116
117
  if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
117
118
  gpr_log(GPR_INFO,
118
119
  "==> CallCombiner::Start() [%p] closure=%p [" DEBUG_FMT_STR
119
120
  "%s] error=%s",
120
- this, closure DEBUG_FMT_ARGS, reason, grpc_error_string(error));
121
+ this, closure DEBUG_FMT_ARGS, reason,
122
+ grpc_error_std_string(error).c_str());
121
123
  }
122
124
  size_t prev_size =
123
125
  static_cast<size_t>(gpr_atm_full_fetch_add(&size_, (gpr_atm)1));
@@ -176,7 +178,8 @@ void CallCombiner::Stop(DEBUG_ARGS const char* reason) {
176
178
  }
177
179
  if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
178
180
  gpr_log(GPR_INFO, " EXECUTING FROM QUEUE: closure=%p error=%s",
179
- closure, grpc_error_string(closure->error_data.error));
181
+ closure,
182
+ grpc_error_std_string(closure->error_data.error).c_str());
180
183
  }
181
184
  ScheduleClosure(closure, closure->error_data.error);
182
185
  break;
@@ -191,7 +194,7 @@ void CallCombiner::SetNotifyOnCancel(grpc_closure* closure) {
191
194
  while (true) {
192
195
  // Decode original state.
193
196
  gpr_atm original_state = gpr_atm_acq_load(&cancel_state_);
194
- grpc_error* original_error = DecodeCancelStateError(original_state);
197
+ grpc_error_handle original_error = DecodeCancelStateError(original_state);
195
198
  // If error is set, invoke the cancellation closure immediately.
196
199
  // Otherwise, store the new closure.
197
200
  if (original_error != GRPC_ERROR_NONE) {
@@ -229,11 +232,11 @@ void CallCombiner::SetNotifyOnCancel(grpc_closure* closure) {
229
232
  }
230
233
  }
231
234
 
232
- void CallCombiner::Cancel(grpc_error* error) {
235
+ void CallCombiner::Cancel(grpc_error_handle error) {
233
236
  GRPC_STATS_INC_CALL_COMBINER_CANCELLED();
234
237
  while (true) {
235
238
  gpr_atm original_state = gpr_atm_acq_load(&cancel_state_);
236
- grpc_error* original_error = DecodeCancelStateError(original_state);
239
+ grpc_error_handle original_error = DecodeCancelStateError(original_state);
237
240
  if (original_error != GRPC_ERROR_NONE) {
238
241
  GRPC_ERROR_UNREF(error);
239
242
  break;
@@ -58,7 +58,7 @@ class CallCombiner {
58
58
  #define GRPC_CALL_COMBINER_STOP(call_combiner, reason) \
59
59
  (call_combiner)->Stop(__FILE__, __LINE__, (reason))
60
60
  /// Starts processing \a closure.
61
- void Start(grpc_closure* closure, grpc_error* error, const char* file,
61
+ void Start(grpc_closure* closure, grpc_error_handle error, const char* file,
62
62
  int line, const char* reason);
63
63
  /// Yields the call combiner to the next closure in the queue, if any.
64
64
  void Stop(const char* file, int line, const char* reason);
@@ -68,7 +68,8 @@ class CallCombiner {
68
68
  #define GRPC_CALL_COMBINER_STOP(call_combiner, reason) \
69
69
  (call_combiner)->Stop((reason))
70
70
  /// Starts processing \a closure.
71
- void Start(grpc_closure* closure, grpc_error* error, const char* reason);
71
+ void Start(grpc_closure* closure, grpc_error_handle error,
72
+ const char* reason);
72
73
  /// Yields the call combiner to the next closure in the queue, if any.
73
74
  void Stop(const char* reason);
74
75
  #endif
@@ -94,26 +95,22 @@ class CallCombiner {
94
95
  /// cancellation; this effectively unregisters the previously set closure.
95
96
  /// However, most filters will not need to explicitly unregister their
96
97
  /// callbacks, as this is done automatically when the call is destroyed.
97
- /// Filters that schedule the cancellation closure on ExecCtx do not need
98
- /// to take a ref on the call stack to guarantee closure liveness. This is
99
- /// done by explicitly flushing ExecCtx after the unregistration during
100
- /// call destruction.
101
98
  void SetNotifyOnCancel(grpc_closure* closure);
102
99
 
103
100
  /// Indicates that the call has been cancelled.
104
- void Cancel(grpc_error* error);
101
+ void Cancel(grpc_error_handle error);
105
102
 
106
103
  private:
107
- void ScheduleClosure(grpc_closure* closure, grpc_error* error);
104
+ void ScheduleClosure(grpc_closure* closure, grpc_error_handle error);
108
105
  #ifdef GRPC_TSAN_ENABLED
109
- static void TsanClosure(void* arg, grpc_error* error);
106
+ static void TsanClosure(void* arg, grpc_error_handle error);
110
107
  #endif
111
108
 
112
109
  gpr_atm size_ = 0; // size_t, num closures in queue or currently executing
113
110
  MultiProducerSingleConsumerQueue queue_;
114
111
  // Either 0 (if not cancelled and no cancellation closure set),
115
112
  // a grpc_closure* (if the lowest bit is 0),
116
- // or a grpc_error* (if the lowest bit is 1).
113
+ // or a grpc_error_handle (if the lowest bit is 1).
117
114
  gpr_atm cancel_state_ = 0;
118
115
  #ifdef GRPC_TSAN_ENABLED
119
116
  // A fake ref-counted lock that is kept alive after the destruction of
@@ -150,7 +147,7 @@ class CallCombinerClosureList {
150
147
 
151
148
  // Adds a closure to the list. The closure must eventually result in
152
149
  // the call combiner being yielded.
153
- void Add(grpc_closure* closure, grpc_error* error, const char* reason) {
150
+ void Add(grpc_closure* closure, grpc_error_handle error, const char* reason) {
154
151
  closures_.emplace_back(closure, error, reason);
155
152
  }
156
153
 
@@ -176,7 +173,8 @@ class CallCombinerClosureList {
176
173
  "CallCombinerClosureList executing closure while already "
177
174
  "holding call_combiner %p: closure=%p error=%s reason=%s",
178
175
  call_combiner, closures_[0].closure,
179
- grpc_error_string(closures_[0].error), closures_[0].reason);
176
+ grpc_error_std_string(closures_[0].error).c_str(),
177
+ closures_[0].reason);
180
178
  }
181
179
  // This will release the call combiner.
182
180
  ExecCtx::Run(DEBUG_LOCATION, closures_[0].closure, closures_[0].error);
@@ -199,10 +197,10 @@ class CallCombinerClosureList {
199
197
  private:
200
198
  struct CallCombinerClosure {
201
199
  grpc_closure* closure;
202
- grpc_error* error;
200
+ grpc_error_handle error;
203
201
  const char* reason;
204
202
 
205
- CallCombinerClosure(grpc_closure* closure, grpc_error* error,
203
+ CallCombinerClosure(grpc_closure* closure, grpc_error_handle error,
206
204
  const char* reason)
207
205
  : closure(closure), error(error), reason(reason) {}
208
206
  };
@@ -62,7 +62,7 @@ void CFStreamHandle::ReadCallback(CFReadStreamRef stream,
62
62
  void* client_callback_info) {
63
63
  grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
64
64
  grpc_core::ExecCtx exec_ctx;
65
- grpc_error* error;
65
+ grpc_error_handle error;
66
66
  CFErrorRef stream_error;
67
67
  CFStreamHandle* handle = static_cast<CFStreamHandle*>(client_callback_info);
68
68
  if (grpc_tcp_trace.enabled()) {
@@ -97,7 +97,7 @@ void CFStreamHandle::WriteCallback(CFWriteStreamRef stream,
97
97
  void* clientCallBackInfo) {
98
98
  grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
99
99
  grpc_core::ExecCtx exec_ctx;
100
- grpc_error* error;
100
+ grpc_error_handle error;
101
101
  CFErrorRef stream_error;
102
102
  CFStreamHandle* handle = static_cast<CFStreamHandle*>(clientCallBackInfo);
103
103
  if (grpc_tcp_trace.enabled()) {
@@ -171,7 +171,7 @@ void CFStreamHandle::NotifyOnWrite(grpc_closure* closure) {
171
171
  write_event_.NotifyOn(closure);
172
172
  }
173
173
 
174
- void CFStreamHandle::Shutdown(grpc_error* error) {
174
+ void CFStreamHandle::Shutdown(grpc_error_handle error) {
175
175
  open_event_.SetShutdown(GRPC_ERROR_REF(error));
176
176
  read_event_.SetShutdown(GRPC_ERROR_REF(error));
177
177
  write_event_.SetShutdown(GRPC_ERROR_REF(error));
@@ -53,7 +53,7 @@ class CFStreamHandle : public GrpcLibraryInitHolder {
53
53
  void NotifyOnOpen(grpc_closure* closure);
54
54
  void NotifyOnRead(grpc_closure* closure);
55
55
  void NotifyOnWrite(grpc_closure* closure);
56
- void Shutdown(grpc_error* error);
56
+ void Shutdown(grpc_error_handle error);
57
57
 
58
58
  void Ref(const char* file = "", int line = 0, const char* reason = nullptr);
59
59
  void Unref(const char* file = "", int line = 0, const char* reason = nullptr);
@@ -50,7 +50,7 @@ typedef struct grpc_closure_list {
50
50
  * describing what went wrong.
51
51
  * Error contract: it is not the cb's job to unref this error;
52
52
  * the closure scheduler will do that after the cb returns */
53
- typedef void (*grpc_iomgr_cb_func)(void* arg, grpc_error* error);
53
+ typedef void (*grpc_iomgr_cb_func)(void* arg, grpc_error_handle error);
54
54
 
55
55
  /** A closure over a grpc_iomgr_cb_func. */
56
56
  struct grpc_closure {
@@ -72,7 +72,7 @@ struct grpc_closure {
72
72
 
73
73
  /** Once queued, the result of the closure. Before then: scratch space */
74
74
  union {
75
- grpc_error* error;
75
+ grpc_error_handle error;
76
76
  uintptr_t scratch;
77
77
  } error_data;
78
78
 
@@ -126,7 +126,7 @@ struct wrapped_closure {
126
126
  void* cb_arg;
127
127
  grpc_closure wrapper;
128
128
  };
129
- inline void closure_wrapper(void* arg, grpc_error* error) {
129
+ inline void closure_wrapper(void* arg, grpc_error_handle error) {
130
130
  wrapped_closure* wc = static_cast<wrapped_closure*>(arg);
131
131
  grpc_iomgr_cb_func cb = wc->cb;
132
132
  void* cb_arg = wc->cb_arg;
@@ -175,7 +175,8 @@ inline void grpc_closure_list_init(grpc_closure_list* closure_list) {
175
175
  and set \a closure's result to \a error
176
176
  Returns true if \a list becomes non-empty */
177
177
  inline bool grpc_closure_list_append(grpc_closure_list* closure_list,
178
- grpc_closure* closure, grpc_error* error) {
178
+ grpc_closure* closure,
179
+ grpc_error_handle error) {
179
180
  if (closure == nullptr) {
180
181
  GRPC_ERROR_UNREF(error);
181
182
  return false;
@@ -194,7 +195,7 @@ inline bool grpc_closure_list_append(grpc_closure_list* closure_list,
194
195
 
195
196
  /** force all success bits in \a list to false */
196
197
  inline void grpc_closure_list_fail_all(grpc_closure_list* list,
197
- grpc_error* forced_failure) {
198
+ grpc_error_handle forced_failure) {
198
199
  for (grpc_closure* c = list->head; c != nullptr; c = c->next_data.next) {
199
200
  if (c->error_data.error == GRPC_ERROR_NONE) {
200
201
  c->error_data.error = GRPC_ERROR_REF(forced_failure);
@@ -227,7 +228,7 @@ namespace grpc_core {
227
228
  class Closure {
228
229
  public:
229
230
  static void Run(const DebugLocation& location, grpc_closure* closure,
230
- grpc_error* error) {
231
+ grpc_error_handle error) {
231
232
  (void)location;
232
233
  if (closure == nullptr) {
233
234
  GRPC_ERROR_UNREF(error);
@@ -46,11 +46,12 @@ grpc_core::DebugOnlyTraceFlag grpc_combiner_trace(false, "combiner");
46
46
  #define STATE_ELEM_COUNT_LOW_BIT 2
47
47
 
48
48
  static void combiner_exec(grpc_core::Combiner* lock, grpc_closure* closure,
49
- grpc_error* error);
49
+ grpc_error_handle error);
50
50
  static void combiner_finally_exec(grpc_core::Combiner* lock,
51
- grpc_closure* closure, grpc_error* error);
51
+ grpc_closure* closure,
52
+ grpc_error_handle error);
52
53
 
53
- static void offload(void* arg, grpc_error* error);
54
+ static void offload(void* arg, grpc_error_handle error);
54
55
 
55
56
  grpc_core::Combiner* grpc_combiner_create(void) {
56
57
  grpc_core::Combiner* lock = new grpc_core::Combiner();
@@ -126,7 +127,7 @@ static void push_first_on_exec_ctx(grpc_core::Combiner* lock) {
126
127
  }
127
128
 
128
129
  static void combiner_exec(grpc_core::Combiner* lock, grpc_closure* cl,
129
- grpc_error* error) {
130
+ grpc_error_handle error) {
130
131
  GPR_TIMER_SCOPE("combiner.execute", 0);
131
132
  GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_ITEMS();
132
133
  gpr_atm last = gpr_atm_full_fetch_add(&lock->state, STATE_ELEM_COUNT_LOW_BIT);
@@ -167,7 +168,7 @@ static void move_next() {
167
168
  }
168
169
  }
169
170
 
170
- static void offload(void* arg, grpc_error* /*error*/) {
171
+ static void offload(void* arg, grpc_error_handle /*error*/) {
171
172
  grpc_core::Combiner* lock = static_cast<grpc_core::Combiner*>(arg);
172
173
  push_last_on_exec_ctx(lock);
173
174
  }
@@ -230,7 +231,7 @@ bool grpc_combiner_continue_exec_ctx() {
230
231
  }
231
232
  GPR_TIMER_SCOPE("combiner.exec1", 0);
232
233
  grpc_closure* cl = reinterpret_cast<grpc_closure*>(n);
233
- grpc_error* cl_err = cl->error_data.error;
234
+ grpc_error_handle cl_err = cl->error_data.error;
234
235
  #ifndef NDEBUG
235
236
  cl->scheduled = false;
236
237
  #endif
@@ -246,7 +247,7 @@ bool grpc_combiner_continue_exec_ctx() {
246
247
  GRPC_COMBINER_TRACE(
247
248
  gpr_log(GPR_INFO, "C:%p execute_final[%d] c=%p", lock, loops, c));
248
249
  grpc_closure* next = c->next_data.next;
249
- grpc_error* error = c->error_data.error;
250
+ grpc_error_handle error = c->error_data.error;
250
251
  #ifndef NDEBUG
251
252
  c->scheduled = false;
252
253
  #endif
@@ -297,10 +298,11 @@ bool grpc_combiner_continue_exec_ctx() {
297
298
  return true;
298
299
  }
299
300
 
300
- static void enqueue_finally(void* closure, grpc_error* error);
301
+ static void enqueue_finally(void* closure, grpc_error_handle error);
301
302
 
302
303
  static void combiner_finally_exec(grpc_core::Combiner* lock,
303
- grpc_closure* closure, grpc_error* error) {
304
+ grpc_closure* closure,
305
+ grpc_error_handle error) {
304
306
  GPR_ASSERT(lock != nullptr);
305
307
  GPR_TIMER_SCOPE("combiner.execute_finally", 0);
306
308
  GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_FINAL_ITEMS();
@@ -322,7 +324,7 @@ static void combiner_finally_exec(grpc_core::Combiner* lock,
322
324
  grpc_closure_list_append(&lock->final_list, closure, error);
323
325
  }
324
326
 
325
- static void enqueue_finally(void* closure, grpc_error* error) {
327
+ static void enqueue_finally(void* closure, grpc_error_handle error) {
326
328
  grpc_closure* cl = static_cast<grpc_closure*>(closure);
327
329
  combiner_finally_exec(
328
330
  reinterpret_cast<grpc_core::Combiner*>(cl->error_data.scratch), cl,
@@ -330,11 +332,11 @@ static void enqueue_finally(void* closure, grpc_error* error) {
330
332
  }
331
333
 
332
334
  namespace grpc_core {
333
- void Combiner::Run(grpc_closure* closure, grpc_error* error) {
335
+ void Combiner::Run(grpc_closure* closure, grpc_error_handle error) {
334
336
  combiner_exec(this, closure, error);
335
337
  }
336
338
 
337
- void Combiner::FinallyRun(grpc_closure* closure, grpc_error* error) {
339
+ void Combiner::FinallyRun(grpc_closure* closure, grpc_error_handle error) {
338
340
  combiner_finally_exec(this, closure, error);
339
341
  }
340
342
  } // namespace grpc_core
@@ -32,9 +32,9 @@ namespace grpc_core {
32
32
  // use ExecCtx
33
33
  class Combiner {
34
34
  public:
35
- void Run(grpc_closure* closure, grpc_error* error);
35
+ void Run(grpc_closure* closure, grpc_error_handle error);
36
36
  // TODO(yashkt) : Remove this method
37
- void FinallyRun(grpc_closure* closure, grpc_error* error);
37
+ void FinallyRun(grpc_closure* closure, grpc_error_handle error);
38
38
  Combiner* next_combiner_on_this_exec_ctx = nullptr;
39
39
  MultiProducerSingleConsumerQueue queue;
40
40
  // either:
@@ -46,7 +46,7 @@ void grpc_endpoint_delete_from_pollset_set(grpc_endpoint* ep,
46
46
  ep->vtable->delete_from_pollset_set(ep, pollset_set);
47
47
  }
48
48
 
49
- void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error* why) {
49
+ void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error_handle why) {
50
50
  ep->vtable->shutdown(ep, why);
51
51
  }
52
52
 
@@ -44,7 +44,7 @@ struct grpc_endpoint_vtable {
44
44
  void (*add_to_pollset)(grpc_endpoint* ep, grpc_pollset* pollset);
45
45
  void (*add_to_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
46
46
  void (*delete_from_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
47
- void (*shutdown)(grpc_endpoint* ep, grpc_error* why);
47
+ void (*shutdown)(grpc_endpoint* ep, grpc_error_handle why);
48
48
  void (*destroy)(grpc_endpoint* ep);
49
49
  grpc_resource_user* (*get_resource_user)(grpc_endpoint* ep);
50
50
  absl::string_view (*get_peer)(grpc_endpoint* ep);
@@ -86,7 +86,7 @@ void grpc_endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
86
86
 
87
87
  /* Causes any pending and future read/write callbacks to run immediately with
88
88
  success==0 */
89
- void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error* why);
89
+ void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error_handle why);
90
90
  void grpc_endpoint_destroy(grpc_endpoint* ep);
91
91
 
92
92
  /* Add an endpoint to a pollset or pollset_set, so that when the pollset is
@@ -29,13 +29,13 @@
29
29
  #include <grpc/support/alloc.h>
30
30
  #include <grpc/support/string_util.h>
31
31
 
32
+ #include "src/core/lib/address_utils/sockaddr_utils.h"
32
33
  #include "src/core/lib/gpr/string.h"
33
34
  #include "src/core/lib/iomgr/cfstream_handle.h"
34
35
  #include "src/core/lib/iomgr/closure.h"
35
36
  #include "src/core/lib/iomgr/endpoint.h"
36
37
  #include "src/core/lib/iomgr/error_cfstream.h"
37
38
  #include "src/core/lib/iomgr/sockaddr.h"
38
- #include "src/core/lib/iomgr/sockaddr_utils.h"
39
39
  #include "src/core/lib/slice/slice_internal.h"
40
40
  #include "src/core/lib/slice/slice_string_helpers.h"
41
41
 
@@ -106,8 +106,8 @@ static void CFStreamUnref(CFStreamEndpoint* ep) {
106
106
  static void CFStreamRef(CFStreamEndpoint* ep) { gpr_ref(&ep->refcount); }
107
107
  #endif
108
108
 
109
- static grpc_error* CFStreamAnnotateError(grpc_error* src_error,
110
- CFStreamEndpoint* ep) {
109
+ static grpc_error_handle CFStreamAnnotateError(grpc_error_handle src_error,
110
+ CFStreamEndpoint* ep) {
111
111
  return grpc_error_set_str(
112
112
  grpc_error_set_int(src_error, GRPC_ERROR_INT_GRPC_STATUS,
113
113
  GRPC_STATUS_UNAVAILABLE),
@@ -115,13 +115,12 @@ static grpc_error* CFStreamAnnotateError(grpc_error* src_error,
115
115
  grpc_slice_from_copied_string(ep->peer_string.c_str()));
116
116
  }
117
117
 
118
- static void CallReadCb(CFStreamEndpoint* ep, grpc_error* error) {
118
+ static void CallReadCb(CFStreamEndpoint* ep, grpc_error_handle error) {
119
119
  if (grpc_tcp_trace.enabled()) {
120
120
  gpr_log(GPR_DEBUG, "CFStream endpoint:%p call_read_cb %p %p:%p", ep,
121
121
  ep->read_cb, ep->read_cb->cb, ep->read_cb->cb_arg);
122
122
  size_t i;
123
- const char* str = grpc_error_string(error);
124
- gpr_log(GPR_DEBUG, "read: error=%s", str);
123
+ gpr_log(GPR_DEBUG, "read: error=%s", grpc_error_std_string(error).c_str());
125
124
 
126
125
  for (i = 0; i < ep->read_slices->count; i++) {
127
126
  char* dump = grpc_dump_slice(ep->read_slices->slices[i],
@@ -137,12 +136,11 @@ static void CallReadCb(CFStreamEndpoint* ep, grpc_error* error) {
137
136
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, error);
138
137
  }
139
138
 
140
- static void CallWriteCb(CFStreamEndpoint* ep, grpc_error* error) {
139
+ static void CallWriteCb(CFStreamEndpoint* ep, grpc_error_handle error) {
141
140
  if (grpc_tcp_trace.enabled()) {
142
141
  gpr_log(GPR_DEBUG, "CFStream endpoint:%p call_write_cb %p %p:%p", ep,
143
142
  ep->write_cb, ep->write_cb->cb, ep->write_cb->cb_arg);
144
- const char* str = grpc_error_string(error);
145
- gpr_log(GPR_DEBUG, "write: error=%s", str);
143
+ gpr_log(GPR_DEBUG, "write: error=%s", grpc_error_std_string(error).c_str());
146
144
  }
147
145
  grpc_closure* cb = ep->write_cb;
148
146
  ep->write_cb = nullptr;
@@ -150,7 +148,7 @@ static void CallWriteCb(CFStreamEndpoint* ep, grpc_error* error) {
150
148
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, error);
151
149
  }
152
150
 
153
- static void ReadAction(void* arg, grpc_error* error) {
151
+ static void ReadAction(void* arg, grpc_error_handle error) {
154
152
  CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
155
153
  GPR_ASSERT(ep->read_cb != nullptr);
156
154
  if (error) {
@@ -192,7 +190,7 @@ static void ReadAction(void* arg, grpc_error* error) {
192
190
  }
193
191
  }
194
192
 
195
- static void WriteAction(void* arg, grpc_error* error) {
193
+ static void WriteAction(void* arg, grpc_error_handle error) {
196
194
  CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
197
195
  GPR_ASSERT(ep->write_cb != nullptr);
198
196
  if (error) {
@@ -242,7 +240,7 @@ static void WriteAction(void* arg, grpc_error* error) {
242
240
  grpc_slice_unref_internal(slice);
243
241
  }
244
242
 
245
- static void CFStreamReadAllocationDone(void* arg, grpc_error* error) {
243
+ static void CFStreamReadAllocationDone(void* arg, grpc_error_handle error) {
246
244
  CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
247
245
  if (error == GRPC_ERROR_NONE) {
248
246
  ep->stream_sync->NotifyOnRead(&ep->read_action);
@@ -286,7 +284,7 @@ static void CFStreamWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
286
284
  ep_impl->stream_sync->NotifyOnWrite(&ep_impl->write_action);
287
285
  }
288
286
 
289
- void CFStreamShutdown(grpc_endpoint* ep, grpc_error* why) {
287
+ void CFStreamShutdown(grpc_endpoint* ep, grpc_error_handle why) {
290
288
  CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
291
289
  if (grpc_tcp_trace.enabled()) {
292
290
  gpr_log(GPR_DEBUG, "CFStream endpoint:%p shutdown (%p)", ep_impl, why);