grpc 1.42.0 → 1.43.1

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 (739) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +85 -34
  3. data/include/grpc/event_engine/event_engine.h +37 -13
  4. data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -31
  5. data/include/grpc/event_engine/memory_allocator.h +27 -11
  6. data/include/grpc/event_engine/memory_request.h +57 -0
  7. data/include/grpc/grpc_security.h +276 -145
  8. data/include/grpc/grpc_security_constants.h +1 -14
  9. data/include/grpc/impl/codegen/port_platform.h +7 -3
  10. data/src/core/ext/filters/client_channel/backend_metric.cc +6 -7
  11. data/src/core/ext/filters/client_channel/backend_metric.h +3 -2
  12. data/src/core/ext/filters/client_channel/client_channel.cc +81 -40
  13. data/src/core/ext/filters/client_channel/client_channel.h +5 -4
  14. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -2
  15. data/src/core/ext/filters/client_channel/dynamic_filters.cc +4 -4
  16. data/src/core/ext/filters/client_channel/health/health_check_client.h +1 -1
  17. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +12 -14
  18. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1 -2
  19. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +1 -2
  20. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
  21. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -3
  22. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +27 -80
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +82 -34
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +47 -91
  25. data/src/core/ext/filters/client_channel/lb_policy.h +75 -59
  26. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +3 -3
  27. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -2
  28. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +8 -12
  29. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +3 -3
  30. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +6 -12
  31. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +222 -294
  32. data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -7
  33. data/src/core/ext/filters/client_channel/resolver_registry.h +1 -2
  34. data/src/core/ext/filters/client_channel/subchannel.cc +4 -4
  35. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
  36. data/src/core/ext/filters/http/client/http_client_filter.cc +14 -30
  37. data/src/core/ext/filters/http/http_filters_plugin.cc +3 -5
  38. data/src/core/ext/filters/http/server/http_server_filter.cc +11 -28
  39. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +67 -0
  40. data/src/core/ext/filters/server_config_selector/server_config_selector.h +70 -0
  41. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +265 -0
  42. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +32 -0
  43. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +4 -20
  44. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -2
  45. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +8 -5
  46. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +11 -14
  47. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +6 -3
  48. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +54 -79
  49. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -3
  50. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +9 -13
  51. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +6 -6
  52. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +53 -62
  53. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -2
  54. data/src/core/ext/transport/chttp2/transport/context_list.cc +2 -3
  55. data/src/core/ext/transport/chttp2/transport/context_list.h +2 -3
  56. data/src/core/ext/transport/chttp2/transport/flow_control.cc +8 -8
  57. data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -2
  58. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +83 -19
  59. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +33 -1
  60. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +66 -92
  61. data/src/core/ext/transport/chttp2/transport/internal.h +8 -4
  62. data/src/core/ext/transport/inproc/inproc_transport.cc +16 -7
  63. data/src/core/ext/transport/inproc/inproc_transport.h +1 -1
  64. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +197 -165
  65. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +2 -0
  66. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +41 -0
  67. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +18 -0
  68. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +26 -2
  69. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
  70. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +107 -82
  71. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +2 -0
  72. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +188 -160
  73. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +2 -0
  74. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +35 -22
  75. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +2 -0
  76. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +253 -218
  77. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2 -0
  78. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +16 -5
  79. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +2 -0
  80. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +36 -25
  81. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +2 -0
  82. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +56 -39
  83. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +2 -0
  84. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +16 -5
  85. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +2 -0
  86. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +162 -128
  87. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +2 -0
  88. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +51 -36
  89. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +2 -0
  90. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +15 -4
  91. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +2 -0
  92. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +25 -13
  93. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +2 -0
  94. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +114 -90
  95. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +2 -0
  96. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +89 -71
  97. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +2 -0
  98. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +17 -6
  99. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +2 -0
  100. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +117 -93
  101. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +2 -0
  102. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +13 -2
  103. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +2 -0
  104. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +21 -9
  105. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +2 -0
  106. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +18 -7
  107. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +2 -0
  108. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +22 -11
  109. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +2 -0
  110. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +17 -6
  111. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +2 -0
  112. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +41 -27
  113. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +2 -0
  114. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +59 -43
  115. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +2 -0
  116. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +58 -43
  117. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +2 -0
  118. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +15 -4
  119. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +2 -0
  120. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +73 -57
  121. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +2 -0
  122. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +81 -64
  123. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +2 -0
  124. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +25 -14
  125. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +2 -0
  126. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +19 -7
  127. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +2 -0
  128. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +63 -45
  129. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +2 -0
  130. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +66 -47
  131. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +2 -0
  132. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +93 -75
  133. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +2 -0
  134. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +41 -28
  135. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +2 -0
  136. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +503 -440
  137. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2 -0
  138. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +26 -13
  139. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +2 -0
  140. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +21 -9
  141. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +2 -0
  142. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +13 -2
  143. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +2 -0
  144. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +35 -20
  145. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +2 -0
  146. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +44 -31
  147. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +2 -0
  148. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +22 -11
  149. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +2 -0
  150. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +210 -181
  151. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2 -0
  152. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -0
  153. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +5 -3
  154. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +64 -48
  155. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +2 -0
  156. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +33 -20
  157. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +2 -0
  158. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +81 -65
  159. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +2 -0
  160. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +12 -1
  161. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +2 -0
  162. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +12 -1
  163. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +2 -0
  164. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +75 -58
  165. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +2 -0
  166. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +12 -1
  167. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +2 -0
  168. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +12 -1
  169. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +2 -0
  170. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +25 -13
  171. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +2 -0
  172. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +12 -1
  173. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +2 -0
  174. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +12 -1
  175. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +2 -0
  176. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +61 -46
  177. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +2 -0
  178. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +26 -12
  179. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +2 -0
  180. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +22 -10
  181. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +2 -0
  182. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +17 -6
  183. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +2 -0
  184. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +16 -5
  185. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +2 -0
  186. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +15 -4
  187. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +2 -0
  188. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +27 -14
  189. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +2 -0
  190. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +25 -13
  191. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +2 -0
  192. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +20 -8
  193. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +2 -0
  194. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +30 -17
  195. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +2 -0
  196. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +38 -21
  197. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +2 -0
  198. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +41 -26
  199. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +2 -0
  200. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -0
  201. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -0
  202. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +17 -5
  203. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +2 -0
  204. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +22 -9
  205. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +2 -0
  206. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +15 -4
  207. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +2 -0
  208. data/src/core/ext/upb-generated/google/api/annotations.upb.c +20 -0
  209. data/src/core/ext/upb-generated/google/api/annotations.upb.h +7 -0
  210. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +116 -93
  211. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +2 -0
  212. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +102 -0
  213. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +306 -0
  214. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +56 -0
  215. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +135 -0
  216. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +122 -98
  217. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +2 -0
  218. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +115 -0
  219. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +371 -0
  220. data/src/core/ext/upb-generated/google/api/http.upb.c +35 -22
  221. data/src/core/ext/upb-generated/google/api/http.upb.h +2 -0
  222. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +14 -3
  223. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +2 -0
  224. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +247 -210
  225. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2 -0
  226. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +14 -3
  227. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +2 -0
  228. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +12 -1
  229. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +2 -0
  230. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +37 -23
  231. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +2 -0
  232. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +14 -3
  233. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +2 -0
  234. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +37 -18
  235. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +2 -0
  236. data/src/core/ext/upb-generated/google/rpc/status.upb.c +17 -6
  237. data/src/core/ext/upb-generated/google/rpc/status.upb.h +2 -0
  238. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +26 -14
  239. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +2 -0
  240. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +105 -83
  241. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +2 -0
  242. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +20 -8
  243. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +2 -0
  244. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +16 -4
  245. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +2 -0
  246. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +65 -47
  247. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +34 -36
  248. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +26 -13
  249. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +2 -0
  250. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +67 -7
  251. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +27 -0
  252. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +27 -3
  253. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -0
  254. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +19 -0
  255. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +7 -0
  256. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +27 -3
  257. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -0
  258. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +26 -2
  259. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
  260. data/src/core/ext/upb-generated/validate/validate.upb.c +320 -251
  261. data/src/core/ext/upb-generated/validate/validate.upb.h +20 -0
  262. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +54 -9
  263. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +17 -0
  264. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +13 -2
  265. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +2 -0
  266. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +24 -12
  267. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +2 -0
  268. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +19 -7
  269. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +2 -0
  270. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +18 -7
  271. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +2 -0
  272. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +27 -15
  273. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +2 -0
  274. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +18 -7
  275. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +2 -0
  276. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +28 -15
  277. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +2 -0
  278. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +16 -5
  279. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +2 -0
  280. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +2 -49
  281. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +2 -2
  282. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +2 -7
  283. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +2 -35
  284. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +2 -41
  285. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -11
  286. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +2 -55
  287. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +2 -7
  288. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +2 -7
  289. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +2 -19
  290. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +2 -7
  291. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +2 -53
  292. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +2 -15
  293. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +2 -7
  294. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +2 -9
  295. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +2 -33
  296. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +2 -21
  297. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +2 -7
  298. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +2 -33
  299. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -7
  300. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +2 -9
  301. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +2 -7
  302. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -7
  303. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -7
  304. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -13
  305. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +2 -17
  306. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +2 -15
  307. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +2 -7
  308. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +2 -17
  309. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +2 -19
  310. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +2 -7
  311. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -9
  312. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +2 -21
  313. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +2 -23
  314. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +2 -11
  315. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +2 -111
  316. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +2 -11
  317. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -9
  318. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -7
  319. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -15
  320. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -11
  321. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -7
  322. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +2 -43
  323. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -2
  324. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +2 -17
  325. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -11
  326. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +2 -17
  327. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +2 -7
  328. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +2 -7
  329. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +2 -19
  330. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +2 -7
  331. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +2 -7
  332. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -9
  333. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +2 -7
  334. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +2 -7
  335. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +2 -15
  336. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +2 -13
  337. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +2 -9
  338. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +2 -7
  339. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +2 -7
  340. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +2 -7
  341. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +2 -11
  342. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +2 -9
  343. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +2 -9
  344. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +2 -11
  345. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +2 -19
  346. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -15
  347. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +2 -2
  348. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +2 -9
  349. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +2 -11
  350. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +2 -7
  351. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +2 -2
  352. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +2 -11
  353. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +2 -7
  354. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +2 -59
  355. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +2 -7
  356. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +2 -7
  357. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +2 -13
  358. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +2 -7
  359. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +2 -23
  360. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +2 -7
  361. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +2 -11
  362. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +2 -7
  363. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +2 -2
  364. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +2 -7
  365. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +2 -7
  366. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +2 -51
  367. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +2 -13
  368. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +2 -7
  369. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +2 -9
  370. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +2 -9
  371. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +2 -7
  372. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +2 -9
  373. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +2 -7
  374. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +2 -7
  375. data/src/core/ext/xds/certificate_provider_registry.cc +1 -1
  376. data/src/core/ext/xds/certificate_provider_store.h +1 -1
  377. data/src/core/ext/xds/xds_api.cc +409 -304
  378. data/src/core/ext/xds/xds_api.h +3 -1
  379. data/src/core/ext/xds/xds_bootstrap.cc +6 -3
  380. data/src/core/ext/xds/xds_certificate_provider.h +1 -2
  381. data/src/core/ext/xds/xds_channel_stack_modifier.cc +3 -4
  382. data/src/core/ext/xds/xds_client.cc +395 -291
  383. data/src/core/ext/xds/xds_client.h +47 -38
  384. data/src/core/ext/xds/xds_routing.cc +247 -0
  385. data/src/core/ext/xds/xds_routing.h +98 -0
  386. data/src/core/ext/xds/xds_server_config_fetcher.cc +975 -261
  387. data/src/core/lib/avl/avl.h +389 -88
  388. data/src/core/lib/backoff/backoff.cc +2 -2
  389. data/src/core/lib/channel/channel_args.cc +17 -17
  390. data/src/core/lib/channel/channel_args.h +11 -10
  391. data/src/core/lib/channel/channel_args_preconditioning.cc +47 -0
  392. data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
  393. data/src/core/lib/channel/channel_stack_builder.cc +0 -2
  394. data/src/core/lib/channel/channel_trace.cc +6 -6
  395. data/src/core/lib/channel/channelz.cc +1 -1
  396. data/src/core/lib/compression/compression_args.cc +7 -5
  397. data/src/core/lib/compression/compression_args.h +6 -4
  398. data/src/core/lib/config/core_configuration.cc +3 -1
  399. data/src/core/lib/config/core_configuration.h +11 -0
  400. data/src/core/lib/debug/trace.h +2 -2
  401. data/src/core/lib/event_engine/{endpoint_config.cc → channel_args_endpoint_config.cc} +2 -1
  402. data/src/core/lib/event_engine/{endpoint_config_internal.h → channel_args_endpoint_config.h} +3 -3
  403. data/src/core/lib/event_engine/event_engine.cc +0 -13
  404. data/src/core/lib/event_engine/event_engine_factory.cc +49 -0
  405. data/src/core/lib/event_engine/event_engine_factory.h +33 -0
  406. data/src/core/lib/event_engine/memory_allocator.cc +70 -0
  407. data/src/core/lib/gpr/tls.h +6 -0
  408. data/src/core/lib/gprpp/cpp_impl_of.h +45 -0
  409. data/src/core/lib/gprpp/global_config_env.cc +7 -7
  410. data/src/core/lib/gprpp/global_config_env.h +2 -2
  411. data/src/core/lib/gprpp/manual_constructor.h +2 -3
  412. data/src/core/lib/gprpp/orphanable.h +1 -1
  413. data/src/core/lib/gprpp/ref_counted.h +1 -1
  414. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
  415. data/src/core/lib/gprpp/status_helper.h +1 -1
  416. data/src/core/lib/gprpp/table.h +13 -1
  417. data/src/core/lib/http/httpcli.cc +30 -26
  418. data/src/core/lib/http/httpcli.h +14 -12
  419. data/src/core/lib/iomgr/buffer_list.cc +9 -9
  420. data/src/core/lib/iomgr/buffer_list.h +13 -13
  421. data/src/core/lib/iomgr/call_combiner.cc +2 -3
  422. data/src/core/lib/iomgr/endpoint.h +0 -1
  423. data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -24
  424. data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
  425. data/src/core/lib/iomgr/endpoint_pair_posix.cc +9 -11
  426. data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -14
  427. data/src/core/lib/iomgr/event_engine/endpoint.cc +2 -3
  428. data/src/core/lib/iomgr/event_engine/iomgr.cc +5 -25
  429. data/src/core/lib/iomgr/event_engine/resolver.cc +3 -2
  430. data/src/core/lib/iomgr/event_engine/tcp.cc +7 -5
  431. data/src/core/lib/iomgr/event_engine/timer.cc +4 -3
  432. data/src/core/lib/iomgr/exec_ctx.h +11 -11
  433. data/src/core/lib/iomgr/executor.cc +12 -15
  434. data/src/core/lib/iomgr/executor.h +1 -1
  435. data/src/core/lib/iomgr/tcp_client.cc +2 -4
  436. data/src/core/lib/iomgr/tcp_client.h +1 -3
  437. data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -9
  438. data/src/core/lib/iomgr/tcp_client_custom.cc +4 -10
  439. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -23
  440. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  441. data/src/core/lib/iomgr/tcp_client_windows.cc +1 -10
  442. data/src/core/lib/iomgr/tcp_custom.cc +9 -36
  443. data/src/core/lib/iomgr/tcp_custom.h +0 -1
  444. data/src/core/lib/iomgr/tcp_posix.cc +28 -33
  445. data/src/core/lib/iomgr/tcp_posix.h +1 -3
  446. data/src/core/lib/iomgr/tcp_server.cc +4 -6
  447. data/src/core/lib/iomgr/tcp_server.h +6 -8
  448. data/src/core/lib/iomgr/tcp_server_custom.cc +5 -15
  449. data/src/core/lib/iomgr/tcp_server_posix.cc +18 -22
  450. data/src/core/lib/iomgr/tcp_server_utils_posix.h +19 -18
  451. data/src/core/lib/iomgr/tcp_server_windows.cc +5 -12
  452. data/src/core/lib/iomgr/tcp_windows.cc +2 -7
  453. data/src/core/lib/iomgr/tcp_windows.h +1 -2
  454. data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
  455. data/src/core/lib/iomgr/unix_sockets_posix.h +1 -1
  456. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +1 -1
  457. data/src/core/lib/iomgr/work_serializer.cc +115 -44
  458. data/src/core/lib/iomgr/work_serializer.h +16 -4
  459. data/src/core/lib/json/json_reader.cc +83 -35
  460. data/src/core/lib/json/json_util.cc +1 -1
  461. data/src/core/lib/promise/activity.cc +115 -0
  462. data/src/core/lib/promise/activity.h +499 -0
  463. data/src/core/lib/promise/context.h +86 -0
  464. data/src/core/lib/promise/detail/basic_seq.h +407 -0
  465. data/src/core/lib/promise/detail/promise_factory.h +189 -0
  466. data/src/core/lib/promise/detail/promise_like.h +85 -0
  467. data/src/core/lib/promise/detail/status.h +44 -0
  468. data/src/core/lib/promise/detail/switch.h +1455 -0
  469. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
  470. data/src/core/lib/promise/loop.h +108 -0
  471. data/src/core/lib/promise/map.h +88 -0
  472. data/src/core/lib/promise/poll.h +60 -0
  473. data/src/core/lib/promise/race.h +84 -0
  474. data/src/core/lib/promise/seq.h +71 -0
  475. data/src/core/lib/resource_quota/api.cc +108 -0
  476. data/src/core/lib/resource_quota/api.h +41 -0
  477. data/src/core/lib/resource_quota/memory_quota.cc +454 -0
  478. data/src/core/lib/resource_quota/memory_quota.h +421 -0
  479. data/src/core/lib/resource_quota/resource_quota.cc +33 -0
  480. data/src/core/lib/resource_quota/resource_quota.h +58 -0
  481. data/src/core/lib/resource_quota/thread_quota.cc +43 -0
  482. data/src/core/lib/resource_quota/thread_quota.h +57 -0
  483. data/src/core/lib/resource_quota/trace.cc +19 -0
  484. data/src/core/lib/resource_quota/trace.h +24 -0
  485. data/src/core/lib/security/authorization/evaluate_args.cc +13 -19
  486. data/src/core/lib/security/authorization/evaluate_args.h +2 -1
  487. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +3 -1
  488. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +11 -12
  489. data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -10
  490. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +3 -4
  491. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +4 -6
  492. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +1 -1
  493. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +4 -6
  494. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -22
  495. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +11 -12
  496. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -8
  497. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +201 -0
  498. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +106 -0
  499. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +11 -90
  500. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +19 -82
  501. data/src/core/lib/security/credentials/tls/tls_credentials.cc +21 -10
  502. data/src/core/lib/security/credentials/xds/xds_credentials.cc +28 -33
  503. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +3 -3
  504. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +2 -2
  505. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +3 -4
  506. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  507. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +7 -7
  508. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -2
  509. data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -1
  510. data/src/core/lib/security/security_connector/ssl_utils.cc +10 -2
  511. data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
  512. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +344 -195
  513. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +64 -41
  514. data/src/core/lib/security/transport/security_handshaker.cc +2 -2
  515. data/src/core/lib/slice/percent_encoding.cc +30 -86
  516. data/src/core/lib/slice/percent_encoding.h +5 -11
  517. data/src/core/lib/slice/slice.cc +7 -7
  518. data/src/core/lib/slice/slice.h +341 -0
  519. data/src/core/lib/slice/slice_buffer.cc +4 -0
  520. data/src/core/lib/slice/slice_intern.cc +1 -1
  521. data/src/core/lib/slice/slice_refcount.h +5 -1
  522. data/src/core/lib/slice/slice_refcount_base.h +19 -11
  523. data/src/core/lib/slice/static_slice.cc +331 -483
  524. data/src/core/lib/slice/static_slice.h +101 -132
  525. data/src/core/lib/surface/builtins.cc +1 -1
  526. data/src/core/lib/surface/call.cc +85 -59
  527. data/src/core/lib/surface/channel.cc +4 -29
  528. data/src/core/lib/surface/channel.h +2 -12
  529. data/src/core/lib/surface/completion_queue.cc +2 -2
  530. data/src/core/lib/surface/init.cc +0 -1
  531. data/src/core/lib/surface/lame_client.cc +24 -17
  532. data/src/core/lib/surface/server.cc +22 -22
  533. data/src/core/lib/surface/server.h +8 -9
  534. data/src/core/lib/surface/validate_metadata.cc +2 -2
  535. data/src/core/lib/surface/version.cc +2 -2
  536. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  537. data/src/core/lib/transport/byte_stream.cc +4 -0
  538. data/src/core/lib/transport/metadata.h +4 -4
  539. data/src/core/lib/transport/metadata_batch.cc +5 -0
  540. data/src/core/lib/transport/metadata_batch.h +174 -99
  541. data/src/core/lib/transport/parsed_metadata.cc +35 -0
  542. data/src/core/lib/transport/parsed_metadata.h +180 -61
  543. data/src/core/lib/transport/pid_controller.cc +4 -4
  544. data/src/core/lib/transport/static_metadata.cc +529 -614
  545. data/src/core/lib/transport/static_metadata.h +0 -18
  546. data/src/core/lib/transport/transport.cc +4 -26
  547. data/src/core/lib/transport/transport.h +0 -1
  548. data/src/core/lib/transport/transport_op_string.cc +1 -1
  549. data/src/core/lib/uri/uri_parser.cc +19 -19
  550. data/src/core/lib/uri/uri_parser.h +2 -0
  551. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -2
  552. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  553. data/src/core/tsi/local_transport_security.cc +15 -15
  554. data/src/core/tsi/ssl_transport_security.cc +30 -1
  555. data/src/core/tsi/ssl_transport_security.h +1 -0
  556. data/src/ruby/ext/grpc/extconf.rb +1 -1
  557. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -10
  558. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +9 -15
  559. data/src/ruby/lib/grpc/version.rb +1 -1
  560. data/third_party/abseil-cpp/absl/algorithm/container.h +101 -91
  561. data/third_party/abseil-cpp/absl/base/attributes.h +64 -31
  562. data/third_party/abseil-cpp/absl/base/config.h +67 -37
  563. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +1 -26
  564. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -1
  565. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +2 -0
  566. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +69 -0
  567. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -4
  568. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +16 -0
  569. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
  570. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  571. data/third_party/abseil-cpp/absl/container/fixed_array.h +0 -5
  572. data/third_party/abseil-cpp/absl/container/inlined_vector.h +105 -97
  573. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
  574. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +18 -102
  575. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +37 -78
  576. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +388 -423
  577. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
  578. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -8
  579. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +251 -120
  580. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +11 -1
  581. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
  582. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
  583. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +12 -5
  584. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
  585. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
  586. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
  587. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +8 -2
  588. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
  589. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
  590. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
  591. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +14 -0
  592. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
  593. data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
  594. data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
  595. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +15 -16
  596. data/third_party/abseil-cpp/absl/hash/internal/hash.h +88 -37
  597. data/third_party/abseil-cpp/absl/hash/internal/{wyhash.cc → low_level_hash.cc} +23 -11
  598. data/third_party/abseil-cpp/absl/hash/internal/{wyhash.h → low_level_hash.h} +14 -12
  599. data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
  600. data/third_party/abseil-cpp/absl/meta/type_traits.h +32 -2
  601. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -10
  602. data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
  603. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
  604. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
  605. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.cc +4 -4
  606. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
  607. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
  608. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +5 -5
  609. data/third_party/abseil-cpp/absl/status/status.cc +9 -17
  610. data/third_party/abseil-cpp/absl/status/status.h +19 -15
  611. data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
  612. data/third_party/abseil-cpp/absl/status/statusor.h +31 -21
  613. data/third_party/abseil-cpp/absl/strings/charconv.cc +3 -3
  614. data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
  615. data/third_party/abseil-cpp/absl/strings/cord.cc +453 -359
  616. data/third_party/abseil-cpp/absl/strings/cord.h +197 -70
  617. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +1 -1
  618. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +6 -0
  619. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +140 -63
  620. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
  621. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
  622. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
  623. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
  624. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
  625. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
  626. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
  627. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
  628. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +7 -7
  629. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +55 -181
  630. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +42 -24
  631. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +4 -0
  632. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
  633. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
  634. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
  635. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
  636. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
  637. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
  638. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
  639. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
  640. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
  641. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
  642. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -0
  643. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -4
  644. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +1 -1
  645. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
  646. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
  647. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +62 -73
  648. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +24 -16
  649. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -35
  650. data/third_party/abseil-cpp/absl/strings/numbers.cc +1 -1
  651. data/third_party/abseil-cpp/absl/strings/numbers.h +34 -0
  652. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  653. data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
  654. data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
  655. data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
  656. data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
  657. data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
  658. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
  659. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
  660. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -1
  661. data/third_party/abseil-cpp/absl/synchronization/mutex.h +3 -3
  662. data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
  663. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
  664. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  665. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
  666. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
  667. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
  668. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +1 -1
  669. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
  670. data/third_party/abseil-cpp/absl/time/time.h +67 -36
  671. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
  672. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
  673. data/third_party/abseil-cpp/absl/types/span.h +3 -3
  674. data/third_party/boringssl-with-bazel/err_data.c +681 -677
  675. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +19 -11
  676. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +41 -30
  677. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
  678. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +59 -47
  679. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
  680. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
  681. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +28 -0
  682. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +48 -272
  683. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
  684. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
  685. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
  686. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +7 -7
  687. data/third_party/boringssl-with-bazel/src/crypto/mem.c +18 -0
  688. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
  689. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -23
  690. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
  691. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +8 -2
  692. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +216 -11
  693. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -1
  694. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +1 -1
  695. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
  696. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -1
  697. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
  698. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +1 -1
  699. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +1 -0
  700. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +0 -1
  701. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +21 -4
  702. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +971 -253
  703. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +3 -3
  704. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -1
  705. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
  706. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +17 -41
  707. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
  708. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +8 -10
  709. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +29 -55
  710. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +3 -9
  711. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
  712. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +24 -28
  713. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +6 -9
  714. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +12 -43
  715. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +4 -3
  716. data/third_party/boringssl-with-bazel/src/ssl/internal.h +3 -3
  717. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +4 -0
  718. data/third_party/upb/upb/decode.c +309 -178
  719. data/third_party/upb/upb/decode_fast.c +1 -1
  720. data/third_party/upb/upb/decode_internal.h +1 -0
  721. data/third_party/upb/upb/def.c +330 -85
  722. data/third_party/upb/upb/def.h +45 -14
  723. data/third_party/upb/upb/def.hpp +17 -4
  724. data/third_party/upb/upb/encode.c +100 -40
  725. data/third_party/upb/upb/msg.c +22 -9
  726. data/third_party/upb/upb/msg_internal.h +90 -8
  727. data/third_party/upb/upb/reflection.c +98 -58
  728. data/third_party/upb/upb/reflection.h +6 -2
  729. data/third_party/upb/upb/text_encode.c +3 -3
  730. data/third_party/upb/upb/upb.c +8 -0
  731. metadata +116 -56
  732. data/src/core/lib/avl/avl.cc +0 -306
  733. data/src/core/lib/gprpp/match.h +0 -73
  734. data/src/core/lib/gprpp/overload.h +0 -59
  735. data/src/core/lib/iomgr/event_engine/iomgr.h +0 -42
  736. data/src/core/lib/iomgr/resource_quota.cc +0 -1106
  737. data/src/core/lib/iomgr/resource_quota.h +0 -226
  738. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
  739. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
@@ -19,9 +19,9 @@
19
19
  #include <grpc/event_engine/event_engine.h>
20
20
 
21
21
  #include "src/core/lib/address_utils/sockaddr_utils.h"
22
+ #include "src/core/lib/event_engine/event_engine_factory.h"
22
23
  #include "src/core/lib/gprpp/sync.h"
23
24
  #include "src/core/lib/iomgr/error.h"
24
- #include "src/core/lib/iomgr/event_engine/iomgr.h"
25
25
  #include "src/core/lib/iomgr/event_engine/promise.h"
26
26
  #include "src/core/lib/iomgr/event_engine/resolved_address_internal.h"
27
27
  #include "src/core/lib/iomgr/resolve_address.h"
@@ -32,6 +32,7 @@
32
32
  namespace {
33
33
  using ::grpc_event_engine::experimental::CreateGRPCResolvedAddress;
34
34
  using ::grpc_event_engine::experimental::EventEngine;
35
+ using ::grpc_event_engine::experimental::GetDefaultEventEngine;
35
36
  using ::grpc_event_engine::experimental::Promise;
36
37
 
37
38
  /// A fire-and-forget class representing an individual DNS request.
@@ -80,7 +81,7 @@ void resolve_address(const char* addr, const char* default_port,
80
81
  grpc_closure* on_done,
81
82
  grpc_resolved_addresses** addresses) {
82
83
  std::unique_ptr<EventEngine::DNSResolver> dns_resolver =
83
- grpc_iomgr_event_engine()->GetDNSResolver();
84
+ GetDefaultEventEngine()->GetDNSResolver();
84
85
  if (dns_resolver == nullptr) {
85
86
  grpc_core::ExecCtx::Run(
86
87
  DEBUG_LOCATION, on_done,
@@ -17,12 +17,12 @@
17
17
  #include <grpc/event_engine/event_engine.h>
18
18
 
19
19
  #include "src/core/lib/address_utils/sockaddr_utils.h"
20
- #include "src/core/lib/event_engine/endpoint_config_internal.h"
20
+ #include "src/core/lib/event_engine/channel_args_endpoint_config.h"
21
+ #include "src/core/lib/event_engine/event_engine_factory.h"
21
22
  #include "src/core/lib/event_engine/sockaddr.h"
22
23
  #include "src/core/lib/gprpp/ref_counted.h"
23
24
  #include "src/core/lib/iomgr/event_engine/closure.h"
24
25
  #include "src/core/lib/iomgr/event_engine/endpoint.h"
25
- #include "src/core/lib/iomgr/event_engine/iomgr.h"
26
26
  #include "src/core/lib/iomgr/event_engine/pollset.h"
27
27
  #include "src/core/lib/iomgr/resolve_address.h"
28
28
  #include "src/core/lib/iomgr/tcp_client.h"
@@ -35,6 +35,7 @@ extern grpc_core::TraceFlag grpc_tcp_trace;
35
35
  namespace {
36
36
  using ::grpc_event_engine::experimental::ChannelArgsEndpointConfig;
37
37
  using ::grpc_event_engine::experimental::EventEngine;
38
+ using ::grpc_event_engine::experimental::GetDefaultEventEngine;
38
39
  using ::grpc_event_engine::experimental::GrpcClosureToStatusCallback;
39
40
  using ::grpc_event_engine::experimental::SliceAllocator;
40
41
  using ::grpc_event_engine::experimental::SliceAllocatorFactory;
@@ -152,7 +153,7 @@ void tcp_connect(grpc_closure* on_connect, grpc_endpoint** endpoint,
152
153
  absl::Time ee_deadline = grpc_core::ToAbslTime(
153
154
  grpc_millis_to_timespec(deadline, GPR_CLOCK_MONOTONIC));
154
155
  ChannelArgsEndpointConfig endpoint_config(channel_args);
155
- absl::Status connected = grpc_iomgr_event_engine()->Connect(
156
+ absl::Status connected = GetDefaultEventEngine()->Connect(
156
157
  ee_on_connect, ra, endpoint_config, std::move(ee_slice_allocator),
157
158
  ee_deadline);
158
159
  if (!connected.ok()) {
@@ -172,7 +173,7 @@ grpc_error_handle tcp_server_create(
172
173
  auto ee_slice_allocator_factory =
173
174
  absl::make_unique<WrappedInternalSliceAllocatorFactory>(
174
175
  slice_allocator_factory);
175
- EventEngine* event_engine = grpc_iomgr_event_engine();
176
+ EventEngine* event_engine = GetDefaultEventEngine();
176
177
  absl::StatusOr<std::unique_ptr<EventEngine::Listener>> listener =
177
178
  event_engine->CreateListener(
178
179
  [server](std::unique_ptr<EventEngine::Endpoint> ee_endpoint,
@@ -285,7 +286,8 @@ grpc_fd* grpc_fd_create(int /* fd */, const char* /* name */,
285
286
 
286
287
  grpc_endpoint* grpc_tcp_client_create_from_fd(
287
288
  grpc_fd* /* fd */, const grpc_channel_args* /* channel_args */,
288
- const char* /* addr_str */, grpc_slice_allocator* slice_allocator) {
289
+ absl::string_view /* addr_str */,
290
+ grpc_slice_allocator* slice_allocator /* slice_allocator */) {
289
291
  grpc_slice_allocator_destroy(slice_allocator);
290
292
  return nullptr;
291
293
  }
@@ -16,9 +16,9 @@
16
16
  #ifdef GRPC_USE_EVENT_ENGINE
17
17
  #include <grpc/event_engine/event_engine.h>
18
18
 
19
+ #include "src/core/lib/event_engine/event_engine_factory.h"
19
20
  #include "src/core/lib/iomgr/error.h"
20
21
  #include "src/core/lib/iomgr/event_engine/closure.h"
21
- #include "src/core/lib/iomgr/event_engine/iomgr.h"
22
22
  #include "src/core/lib/iomgr/exec_ctx.h"
23
23
  #include "src/core/lib/iomgr/timer.h"
24
24
  #include "src/core/lib/surface/init.h"
@@ -26,11 +26,12 @@
26
26
 
27
27
  namespace {
28
28
  using ::grpc_event_engine::experimental::EventEngine;
29
+ using ::grpc_event_engine::experimental::GetDefaultEventEngine;
29
30
  using ::grpc_event_engine::experimental::GrpcClosureToCallback;
30
31
 
31
32
  void timer_init(grpc_timer* timer, grpc_millis deadline,
32
33
  grpc_closure* closure) {
33
- timer->ee_task_handle = grpc_iomgr_event_engine()->RunAt(
34
+ timer->ee_task_handle = GetDefaultEventEngine()->RunAt(
34
35
  grpc_core::ToAbslTime(
35
36
  grpc_millis_to_timespec(deadline, GPR_CLOCK_REALTIME)),
36
37
  GrpcClosureToCallback(closure));
@@ -39,7 +40,7 @@ void timer_init(grpc_timer* timer, grpc_millis deadline,
39
40
 
40
41
  void timer_cancel(grpc_timer* timer) {
41
42
  auto handle = timer->ee_task_handle;
42
- if (!grpc_iomgr_event_engine()->Cancel(handle)) {
43
+ if (!GetDefaultEventEngine()->Cancel(handle)) {
43
44
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, timer->closure,
44
45
  GRPC_ERROR_CANCELLED);
45
46
  }
@@ -73,10 +73,10 @@ class Combiner;
73
73
  * Generally, to create an exec_ctx instance, add the following line at the top
74
74
  * of the public API entry point or at the start of a thread's work function :
75
75
  *
76
- * grpc_core::ExecCtx exec_ctx;
76
+ * ExecCtx exec_ctx;
77
77
  *
78
78
  * Access the created ExecCtx instance using :
79
- * grpc_core::ExecCtx::Get()
79
+ * ExecCtx::Get()
80
80
  *
81
81
  * Specific responsibilities (this may grow in the future):
82
82
  * - track a list of core work that needs to be delayed until the base of the
@@ -90,7 +90,7 @@ class Combiner;
90
90
  * - Instance of this must ALWAYS be constructed on the stack, never
91
91
  * heap allocated.
92
92
  * - Do not pass exec_ctx as a parameter to a function. Always access it using
93
- * grpc_core::ExecCtx::Get().
93
+ * ExecCtx::Get().
94
94
  * - NOTE: In the future, the convention is likely to change to allow only one
95
95
  * ExecCtx on a thread's stack at the same time. The TODO below
96
96
  * discusses this plan in more detail.
@@ -108,14 +108,14 @@ class ExecCtx {
108
108
  /** Default Constructor */
109
109
 
110
110
  ExecCtx() : flags_(GRPC_EXEC_CTX_FLAG_IS_FINISHED) {
111
- grpc_core::Fork::IncExecCtxCount();
111
+ Fork::IncExecCtxCount();
112
112
  Set(this);
113
113
  }
114
114
 
115
115
  /** Parameterised Constructor */
116
116
  explicit ExecCtx(uintptr_t fl) : flags_(fl) {
117
117
  if (!(GRPC_EXEC_CTX_FLAG_IS_INTERNAL_THREAD & flags_)) {
118
- grpc_core::Fork::IncExecCtxCount();
118
+ Fork::IncExecCtxCount();
119
119
  }
120
120
  Set(this);
121
121
  }
@@ -126,7 +126,7 @@ class ExecCtx {
126
126
  Flush();
127
127
  Set(last_exec_ctx_);
128
128
  if (!(GRPC_EXEC_CTX_FLAG_IS_INTERNAL_THREAD & flags_)) {
129
- grpc_core::Fork::DecExecCtxCount();
129
+ Fork::DecExecCtxCount();
130
130
  }
131
131
  }
132
132
 
@@ -276,7 +276,7 @@ class ExecCtx {
276
276
  * stacks of core re-entries. Instead, any application callbacks instead should
277
277
  * not be invoked until other core work is done and other application callbacks
278
278
  * have completed. To accomplish this, any application callback should be
279
- * enqueued using grpc_core::ApplicationCallbackExecCtx::Enqueue .
279
+ * enqueued using ApplicationCallbackExecCtx::Enqueue .
280
280
  *
281
281
  * CONVENTIONS:
282
282
  * - Instances of this must ALWAYS be constructed on the stack, never
@@ -289,8 +289,8 @@ class ExecCtx {
289
289
  * Generally, core entry points that may trigger application-level callbacks
290
290
  * will have the following declarations:
291
291
  *
292
- * grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
293
- * grpc_core::ExecCtx exec_ctx;
292
+ * ApplicationCallbackExecCtx callback_exec_ctx;
293
+ * ExecCtx exec_ctx;
294
294
  *
295
295
  * This ordering is important to make sure that the ApplicationCallbackExecCtx
296
296
  * is destroyed after the ExecCtx (to prevent the re-entry problem described
@@ -320,7 +320,7 @@ class ApplicationCallbackExecCtx {
320
320
  }
321
321
  callback_exec_ctx_ = nullptr;
322
322
  if (!(GRPC_APP_CALLBACK_EXEC_CTX_FLAG_IS_INTERNAL_THREAD & flags_)) {
323
- grpc_core::Fork::DecExecCtxCount();
323
+ Fork::DecExecCtxCount();
324
324
  }
325
325
  } else {
326
326
  GPR_DEBUG_ASSERT(head_ == nullptr);
@@ -335,7 +335,7 @@ class ApplicationCallbackExecCtx {
335
335
  static void Set(ApplicationCallbackExecCtx* exec_ctx, uintptr_t flags) {
336
336
  if (Get() == nullptr) {
337
337
  if (!(GRPC_APP_CALLBACK_EXEC_CTX_FLAG_IS_INTERNAL_THREAD & flags)) {
338
- grpc_core::Fork::IncExecCtxCount();
338
+ Fork::IncExecCtxCount();
339
339
  }
340
340
  callback_exec_ctx_ = exec_ctx;
341
341
  }
@@ -52,7 +52,7 @@
52
52
  namespace grpc_core {
53
53
  namespace {
54
54
 
55
- static GPR_THREAD_LOCAL(ThreadState*) g_this_thread_state;
55
+ GPR_THREAD_LOCAL(ThreadState*) g_this_thread_state;
56
56
 
57
57
  Executor* executors[static_cast<size_t>(ExecutorType::NUM_EXECUTORS)];
58
58
 
@@ -108,7 +108,7 @@ size_t Executor::RunClosures(const char* executor_name,
108
108
  // invoked on its destruction, which will be after completing any closures in
109
109
  // the executor's closure list (which were explicitly scheduled onto the
110
110
  // executor).
111
- grpc_core::ApplicationCallbackExecCtx callback_exec_ctx(
111
+ ApplicationCallbackExecCtx callback_exec_ctx(
112
112
  GRPC_APP_CALLBACK_EXEC_CTX_FLAG_IS_INTERNAL_THREAD);
113
113
 
114
114
  grpc_closure* c = list.head;
@@ -126,7 +126,7 @@ size_t Executor::RunClosures(const char* executor_name,
126
126
  GRPC_ERROR_UNREF(error);
127
127
  c = next;
128
128
  n++;
129
- grpc_core::ExecCtx::Get()->Flush();
129
+ ExecCtx::Get()->Flush();
130
130
  }
131
131
 
132
132
  return n;
@@ -156,12 +156,11 @@ void Executor::SetThreading(bool threading) {
156
156
  gpr_cv_init(&thd_state_[i].cv);
157
157
  thd_state_[i].id = i;
158
158
  thd_state_[i].name = name_;
159
- thd_state_[i].thd = grpc_core::Thread();
159
+ thd_state_[i].thd = Thread();
160
160
  thd_state_[i].elems = GRPC_CLOSURE_LIST_INIT;
161
161
  }
162
162
 
163
- thd_state_[0].thd =
164
- grpc_core::Thread(name_, &Executor::ThreadMain, &thd_state_[0]);
163
+ thd_state_[0].thd = Thread(name_, &Executor::ThreadMain, &thd_state_[0]);
165
164
  thd_state_[0].thd.Start();
166
165
  } else { // !threading
167
166
  if (curr_num_threads == 0) {
@@ -202,7 +201,7 @@ void Executor::SetThreading(bool threading) {
202
201
  // finish. Thus, never call Executor::SetThreading(false) in the middle of
203
202
  // an application.
204
203
  // TODO(guantaol): create another method to finish all the pending closures
205
- // registered in the background poller by grpc_core::Executor.
204
+ // registered in the background poller by Executor.
206
205
  grpc_iomgr_platform_shutdown_background_closure();
207
206
  }
208
207
 
@@ -215,7 +214,7 @@ void Executor::ThreadMain(void* arg) {
215
214
  ThreadState* ts = static_cast<ThreadState*>(arg);
216
215
  g_this_thread_state = ts;
217
216
 
218
- grpc_core::ExecCtx exec_ctx(GRPC_EXEC_CTX_FLAG_IS_INTERNAL_THREAD);
217
+ ExecCtx exec_ctx(GRPC_EXEC_CTX_FLAG_IS_INTERNAL_THREAD);
219
218
 
220
219
  size_t subtract_depth = 0;
221
220
  for (;;) {
@@ -242,7 +241,7 @@ void Executor::ThreadMain(void* arg) {
242
241
 
243
242
  EXECUTOR_TRACE("(%s) [%" PRIdPTR "]: execute", ts->name, ts->id);
244
243
 
245
- grpc_core::ExecCtx::Get()->InvalidateNow();
244
+ ExecCtx::Get()->InvalidateNow();
246
245
  subtract_depth = RunClosures(ts->name, closures);
247
246
  }
248
247
 
@@ -267,8 +266,7 @@ void Executor::Enqueue(grpc_closure* closure, grpc_error_handle error,
267
266
  #else
268
267
  EXECUTOR_TRACE("(%s) schedule %p inline", name_, closure);
269
268
  #endif
270
- grpc_closure_list_append(grpc_core::ExecCtx::Get()->closure_list(),
271
- closure, error);
269
+ grpc_closure_list_append(ExecCtx::Get()->closure_list(), closure, error);
272
270
  return;
273
271
  }
274
272
 
@@ -278,8 +276,7 @@ void Executor::Enqueue(grpc_closure* closure, grpc_error_handle error,
278
276
 
279
277
  ThreadState* ts = g_this_thread_state;
280
278
  if (ts == nullptr) {
281
- ts = &thd_state_[grpc_core::HashPointer(grpc_core::ExecCtx::Get(),
282
- cur_thread_count)];
279
+ ts = &thd_state_[HashPointer(ExecCtx::Get(), cur_thread_count)];
283
280
  }
284
281
 
285
282
  ThreadState* orig_ts = ts;
@@ -356,8 +353,8 @@ void Executor::Enqueue(grpc_closure* closure, grpc_error_handle error,
356
353
  // always increment num_threads under the 'adding_thread_lock')
357
354
  gpr_atm_rel_store(&num_threads_, cur_thread_count + 1);
358
355
 
359
- thd_state_[cur_thread_count].thd = grpc_core::Thread(
360
- name_, &Executor::ThreadMain, &thd_state_[cur_thread_count]);
356
+ thd_state_[cur_thread_count].thd =
357
+ Thread(name_, &Executor::ThreadMain, &thd_state_[cur_thread_count]);
361
358
  thd_state_[cur_thread_count].thd.Start();
362
359
  }
363
360
  gpr_spinlock_unlock(&adding_thread_lock_);
@@ -36,7 +36,7 @@ struct ThreadState {
36
36
  size_t depth; // Number of closures in the closure list
37
37
  bool shutdown;
38
38
  bool queued_long_job;
39
- grpc_core::Thread thd;
39
+ Thread thd;
40
40
  };
41
41
 
42
42
  enum class ExecutorType {
@@ -23,14 +23,12 @@
23
23
  grpc_tcp_client_vtable* grpc_tcp_client_impl;
24
24
 
25
25
  void grpc_tcp_client_connect(grpc_closure* on_connect, grpc_endpoint** endpoint,
26
- grpc_slice_allocator* slice_allocator,
27
26
  grpc_pollset_set* interested_parties,
28
27
  const grpc_channel_args* channel_args,
29
28
  const grpc_resolved_address* addr,
30
29
  grpc_millis deadline) {
31
- grpc_tcp_client_impl->connect(on_connect, endpoint, slice_allocator,
32
- interested_parties, channel_args, addr,
33
- deadline);
30
+ grpc_tcp_client_impl->connect(on_connect, endpoint, interested_parties,
31
+ channel_args, addr, deadline);
34
32
  }
35
33
 
36
34
  void grpc_set_tcp_client_impl(grpc_tcp_client_vtable* impl) {
@@ -27,11 +27,10 @@
27
27
  #include "src/core/lib/iomgr/endpoint.h"
28
28
  #include "src/core/lib/iomgr/pollset_set.h"
29
29
  #include "src/core/lib/iomgr/resolve_address.h"
30
- #include "src/core/lib/iomgr/resource_quota.h"
30
+ #include "src/core/lib/resource_quota/memory_quota.h"
31
31
 
32
32
  typedef struct grpc_tcp_client_vtable {
33
33
  void (*connect)(grpc_closure* on_connect, grpc_endpoint** endpoint,
34
- grpc_slice_allocator* slice_allocator,
35
34
  grpc_pollset_set* interested_parties,
36
35
  const grpc_channel_args* channel_args,
37
36
  const grpc_resolved_address* addr, grpc_millis deadline);
@@ -43,7 +42,6 @@ typedef struct grpc_tcp_client_vtable {
43
42
  interested_parties points to a set of pollsets that would be interested
44
43
  in this connection being established (in order to continue their work) */
45
44
  void grpc_tcp_client_connect(grpc_closure* on_connect, grpc_endpoint** endpoint,
46
- grpc_slice_allocator* slice_allocator,
47
45
  grpc_pollset_set* interested_parties,
48
46
  const grpc_channel_args* channel_args,
49
47
  const grpc_resolved_address* addr,
@@ -64,16 +64,12 @@ struct CFStreamConnect {
64
64
  grpc_endpoint** endpoint;
65
65
  int refs;
66
66
  std::string addr_name;
67
- grpc_slice_allocator* slice_allocator;
68
67
  };
69
68
 
70
69
  static void CFStreamConnectCleanup(CFStreamConnect* connect) {
71
70
  CFSTREAM_HANDLE_UNREF(connect->stream_handle, "async connect clean up");
72
71
  CFRelease(connect->read_stream);
73
72
  CFRelease(connect->write_stream);
74
- if (connect->slice_allocator != nullptr) {
75
- grpc_slice_allocator_destroy(connect->slice_allocator);
76
- }
77
73
  gpr_mu_destroy(&connect->mu);
78
74
  delete connect;
79
75
  }
@@ -132,9 +128,7 @@ static void OnOpen(void* arg, grpc_error_handle error) {
132
128
  if (error == GRPC_ERROR_NONE) {
133
129
  *endpoint = grpc_cfstream_endpoint_create(
134
130
  connect->read_stream, connect->write_stream,
135
- connect->addr_name.c_str(), connect->slice_allocator,
136
- connect->stream_handle);
137
- connect->slice_allocator = nullptr;
131
+ connect->addr_name.c_str(), connect->stream_handle);
138
132
  }
139
133
  } else {
140
134
  (void)GRPC_ERROR_REF(error);
@@ -156,7 +150,6 @@ static void ParseResolvedAddress(const grpc_resolved_address* addr,
156
150
  }
157
151
 
158
152
  static void CFStreamClientConnect(grpc_closure* closure, grpc_endpoint** ep,
159
- grpc_slice_allocator* slice_allocator,
160
153
  grpc_pollset_set* interested_parties,
161
154
  const grpc_channel_args* channel_args,
162
155
  const grpc_resolved_address* resolved_addr,
@@ -173,7 +166,6 @@ static void CFStreamClientConnect(grpc_closure* closure, grpc_endpoint** ep,
173
166
  gpr_log(GPR_DEBUG, "CLIENT_CONNECT: %p, %s: asynchronously connecting",
174
167
  connect, connect->addr_name.c_str());
175
168
  }
176
- connect->slice_allocator = slice_allocator;
177
169
 
178
170
  CFReadStreamRef read_stream;
179
171
  CFWriteStreamRef write_stream;
@@ -42,16 +42,11 @@ struct grpc_custom_tcp_connect {
42
42
  grpc_endpoint** endpoint;
43
43
  int refs;
44
44
  std::string addr_name;
45
- grpc_slice_allocator* slice_allocator;
46
45
  };
47
46
 
48
47
  static void custom_tcp_connect_cleanup(grpc_custom_tcp_connect* connect) {
49
- if (connect->slice_allocator != nullptr) {
50
- grpc_slice_allocator_destroy(connect->slice_allocator);
51
- }
52
48
  grpc_custom_socket* socket = connect->socket;
53
49
  delete connect;
54
- socket->refs--;
55
50
  if (socket->refs == 0) {
56
51
  grpc_custom_socket_vtable->destroy(socket);
57
52
  gpr_free(socket);
@@ -75,6 +70,7 @@ static void on_alarm(void* acp, grpc_error_handle error) {
75
70
  grpc_custom_socket_vtable->close(socket, custom_close_callback);
76
71
  }
77
72
  done = (--connect->refs == 0);
73
+ socket->refs--;
78
74
  if (done) {
79
75
  custom_tcp_connect_cleanup(connect);
80
76
  }
@@ -87,11 +83,11 @@ static void custom_connect_callback_internal(grpc_custom_socket* socket,
87
83
  grpc_closure* closure = connect->closure;
88
84
  grpc_timer_cancel(&connect->alarm);
89
85
  if (error == GRPC_ERROR_NONE) {
90
- *connect->endpoint = custom_tcp_endpoint_create(
91
- socket, connect->slice_allocator, connect->addr_name.c_str());
92
- connect->slice_allocator = nullptr;
86
+ *connect->endpoint =
87
+ custom_tcp_endpoint_create(socket, connect->addr_name.c_str());
93
88
  }
94
89
  done = (--connect->refs == 0);
90
+ socket->refs--;
95
91
  if (done) {
96
92
  grpc_core::ExecCtx::Get()->Flush();
97
93
  custom_tcp_connect_cleanup(connect);
@@ -113,7 +109,6 @@ static void custom_connect_callback(grpc_custom_socket* socket,
113
109
  }
114
110
 
115
111
  static void tcp_connect(grpc_closure* closure, grpc_endpoint** ep,
116
- grpc_slice_allocator* slice_allocator,
117
112
  grpc_pollset_set* interested_parties,
118
113
  const grpc_channel_args* channel_args,
119
114
  const grpc_resolved_address* resolved_addr,
@@ -129,7 +124,6 @@ static void tcp_connect(grpc_closure* closure, grpc_endpoint** ep,
129
124
  connect->closure = closure;
130
125
  connect->endpoint = ep;
131
126
  connect->addr_name = grpc_sockaddr_to_uri(resolved_addr);
132
- connect->slice_allocator = slice_allocator;
133
127
  connect->socket = socket;
134
128
  socket->connector = connect;
135
129
  socket->endpoint = nullptr;
@@ -62,7 +62,6 @@ struct async_connect {
62
62
  grpc_endpoint** ep;
63
63
  grpc_closure* closure;
64
64
  grpc_channel_args* channel_args;
65
- grpc_slice_allocator* slice_allocator;
66
65
  };
67
66
 
68
67
  static grpc_error_handle prepare_socket(const grpc_resolved_address* addr,
@@ -118,18 +117,15 @@ static void tc_on_alarm(void* acp, grpc_error_handle error) {
118
117
  gpr_mu_unlock(&ac->mu);
119
118
  if (done) {
120
119
  gpr_mu_destroy(&ac->mu);
121
- if (ac->slice_allocator != nullptr) {
122
- grpc_slice_allocator_destroy(ac->slice_allocator);
123
- }
124
120
  grpc_channel_args_destroy(ac->channel_args);
125
121
  delete ac;
126
122
  }
127
123
  }
128
124
 
129
125
  grpc_endpoint* grpc_tcp_client_create_from_fd(
130
- grpc_fd* fd, const grpc_channel_args* channel_args, const char* addr_str,
131
- grpc_slice_allocator* slice_allocator) {
132
- return grpc_tcp_create(fd, channel_args, addr_str, slice_allocator);
126
+ grpc_fd* fd, const grpc_channel_args* channel_args,
127
+ absl::string_view addr_str) {
128
+ return grpc_tcp_create(fd, channel_args, addr_str);
133
129
  }
134
130
 
135
131
  static void on_writable(void* acp, grpc_error_handle error) {
@@ -177,9 +173,7 @@ static void on_writable(void* acp, grpc_error_handle error) {
177
173
  switch (so_error) {
178
174
  case 0:
179
175
  grpc_pollset_set_del_fd(ac->interested_parties, fd);
180
- *ep = grpc_tcp_client_create_from_fd(
181
- fd, ac->channel_args, ac->addr_str.c_str(), ac->slice_allocator);
182
- ac->slice_allocator = nullptr;
176
+ *ep = grpc_tcp_client_create_from_fd(fd, ac->channel_args, ac->addr_str);
183
177
  fd = nullptr;
184
178
  break;
185
179
  case ENOBUFS:
@@ -234,10 +228,6 @@ finish:
234
228
  // This is safe even outside the lock, because "done", the sentinel, is
235
229
  // populated *inside* the lock.
236
230
  gpr_mu_destroy(&ac->mu);
237
- if (ac->slice_allocator != nullptr) {
238
- grpc_slice_allocator_destroy(ac->slice_allocator);
239
- ac->slice_allocator = nullptr;
240
- }
241
231
  grpc_channel_args_destroy(ac->channel_args);
242
232
  delete ac;
243
233
  }
@@ -280,8 +270,7 @@ grpc_error_handle grpc_tcp_client_prepare_fd(
280
270
  void grpc_tcp_client_create_from_prepared_fd(
281
271
  grpc_pollset_set* interested_parties, grpc_closure* closure, const int fd,
282
272
  const grpc_channel_args* channel_args, const grpc_resolved_address* addr,
283
- grpc_millis deadline, grpc_endpoint** ep,
284
- grpc_slice_allocator* slice_allocator) {
273
+ grpc_millis deadline, grpc_endpoint** ep) {
285
274
  int err;
286
275
  do {
287
276
  err = connect(fd, reinterpret_cast<const grpc_sockaddr*>(addr->addr),
@@ -293,13 +282,11 @@ void grpc_tcp_client_create_from_prepared_fd(
293
282
 
294
283
  if (err >= 0) {
295
284
  *ep = grpc_tcp_client_create_from_fd(fdobj, channel_args,
296
- grpc_sockaddr_to_uri(addr).c_str(),
297
- slice_allocator);
285
+ grpc_sockaddr_to_uri(addr));
298
286
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, GRPC_ERROR_NONE);
299
287
  return;
300
288
  }
301
289
  if (errno != EWOULDBLOCK && errno != EINPROGRESS) {
302
- grpc_slice_allocator_destroy(slice_allocator);
303
290
  grpc_error_handle error = GRPC_OS_ERROR(errno, "connect");
304
291
  error = grpc_error_set_str(error, GRPC_ERROR_STR_TARGET_ADDRESS,
305
292
  grpc_sockaddr_to_uri(addr));
@@ -318,7 +305,6 @@ void grpc_tcp_client_create_from_prepared_fd(
318
305
  ac->addr_str = grpc_sockaddr_to_uri(addr);
319
306
  gpr_mu_init(&ac->mu);
320
307
  ac->refs = 2;
321
- ac->slice_allocator = slice_allocator;
322
308
  GRPC_CLOSURE_INIT(&ac->write_closure, on_writable, ac,
323
309
  grpc_schedule_on_exec_ctx);
324
310
  ac->channel_args = grpc_channel_args_copy(channel_args);
@@ -336,7 +322,6 @@ void grpc_tcp_client_create_from_prepared_fd(
336
322
  }
337
323
 
338
324
  static void tcp_connect(grpc_closure* closure, grpc_endpoint** ep,
339
- grpc_slice_allocator* slice_allocator,
340
325
  grpc_pollset_set* interested_parties,
341
326
  const grpc_channel_args* channel_args,
342
327
  const grpc_resolved_address* addr,
@@ -347,13 +332,12 @@ static void tcp_connect(grpc_closure* closure, grpc_endpoint** ep,
347
332
  *ep = nullptr;
348
333
  if ((error = grpc_tcp_client_prepare_fd(channel_args, addr, &mapped_addr,
349
334
  &fd)) != GRPC_ERROR_NONE) {
350
- grpc_slice_allocator_destroy(slice_allocator);
351
335
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, error);
352
336
  return;
353
337
  }
354
338
  grpc_tcp_client_create_from_prepared_fd(interested_parties, closure, fd,
355
339
  channel_args, &mapped_addr, deadline,
356
- ep, slice_allocator);
340
+ ep);
357
341
  }
358
342
 
359
343
  grpc_tcp_client_vtable grpc_posix_tcp_client_vtable = {tcp_connect};
@@ -34,8 +34,8 @@
34
34
  Returns: a new endpoint
35
35
  */
36
36
  grpc_endpoint* grpc_tcp_client_create_from_fd(
37
- grpc_fd* fd, const grpc_channel_args* channel_args, const char* addr_str,
38
- grpc_slice_allocator* slice_allocator);
37
+ grpc_fd* fd, const grpc_channel_args* channel_args,
38
+ absl::string_view addr_str);
39
39
 
40
40
  /* Return a configured, unbound, unconnected TCP client fd.
41
41
 
@@ -64,7 +64,6 @@ grpc_error_handle grpc_tcp_client_prepare_fd(
64
64
  void grpc_tcp_client_create_from_prepared_fd(
65
65
  grpc_pollset_set* interested_parties, grpc_closure* closure, const int fd,
66
66
  const grpc_channel_args* channel_args, const grpc_resolved_address* addr,
67
- grpc_millis deadline, grpc_endpoint** ep,
68
- grpc_slice_allocator* slice_allocator);
67
+ grpc_millis deadline, grpc_endpoint** ep);
69
68
 
70
69
  #endif /* GRPC_CORE_LIB_IOMGR_TCP_CLIENT_POSIX_H */
@@ -51,7 +51,6 @@ struct async_connect {
51
51
  grpc_closure on_connect;
52
52
  grpc_endpoint** endpoint;
53
53
  grpc_channel_args* channel_args;
54
- grpc_slice_allocator* slice_allocator;
55
54
  };
56
55
 
57
56
  static void async_connect_unlock_and_cleanup(async_connect* ac,
@@ -61,9 +60,6 @@ static void async_connect_unlock_and_cleanup(async_connect* ac,
61
60
  if (done) {
62
61
  grpc_channel_args_destroy(ac->channel_args);
63
62
  gpr_mu_destroy(&ac->mu);
64
- if (ac->slice_allocator != nullptr) {
65
- grpc_slice_allocator_destroy(ac->slice_allocator);
66
- }
67
63
  delete ac;
68
64
  }
69
65
  if (socket != NULL) grpc_winsocket_destroy(socket);
@@ -109,9 +105,7 @@ static void on_connect(void* acp, grpc_error_handle error) {
109
105
  error = GRPC_WSA_ERROR(WSAGetLastError(), "ConnectEx");
110
106
  closesocket(socket->socket);
111
107
  } else {
112
- *ep = grpc_tcp_create(socket, ac->channel_args, ac->addr_name.c_str(),
113
- ac->slice_allocator);
114
- ac->slice_allocator = nullptr;
108
+ *ep = grpc_tcp_create(socket, ac->channel_args, ac->addr_name);
115
109
  socket = nullptr;
116
110
  }
117
111
  } else {
@@ -128,7 +122,6 @@ static void on_connect(void* acp, grpc_error_handle error) {
128
122
  /* Tries to issue one async connection, then schedules both an IOCP
129
123
  notification request for the connection, and one timeout alert. */
130
124
  static void tcp_connect(grpc_closure* on_done, grpc_endpoint** endpoint,
131
- grpc_slice_allocator* slice_allocator,
132
125
  grpc_pollset_set* interested_parties,
133
126
  const grpc_channel_args* channel_args,
134
127
  const grpc_resolved_address* addr,
@@ -208,7 +201,6 @@ static void tcp_connect(grpc_closure* on_done, grpc_endpoint** endpoint,
208
201
  ac->refs = 2;
209
202
  ac->addr_name = grpc_sockaddr_to_uri(addr);
210
203
  ac->endpoint = endpoint;
211
- ac->slice_allocator = slice_allocator;
212
204
  ac->channel_args = grpc_channel_args_copy(channel_args);
213
205
  GRPC_CLOSURE_INIT(&ac->on_connect, on_connect, ac, grpc_schedule_on_exec_ctx);
214
206
 
@@ -227,7 +219,6 @@ failure:
227
219
  "Failed to connect", &error, 1),
228
220
  GRPC_ERROR_STR_TARGET_ADDRESS, target_uri);
229
221
  GRPC_ERROR_UNREF(error);
230
- grpc_slice_allocator_destroy(slice_allocator);
231
222
  if (socket != NULL) {
232
223
  grpc_winsocket_destroy(socket);
233
224
  } else if (sock != INVALID_SOCKET) {