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
@@ -268,13 +268,25 @@ class Table {
268
268
  TypeIndex<I>* set(Args&&... args) {
269
269
  auto* p = element_ptr<I>();
270
270
  if (set_present<I>(true)) {
271
- *p = TypeIndex<I>(std::forward<Args>(args)...);
271
+ TypeIndex<I> replacement(std::forward<Args>(args)...);
272
+ *p = std::move(replacement);
272
273
  } else {
273
274
  new (p) TypeIndex<I>(std::forward<Args>(args)...);
274
275
  }
275
276
  return p;
276
277
  }
277
278
 
279
+ template <size_t I>
280
+ TypeIndex<I>* set(TypeIndex<I>&& value) {
281
+ auto* p = element_ptr<I>();
282
+ if (set_present<I>(true)) {
283
+ *p = std::forward<TypeIndex<I>>(value);
284
+ } else {
285
+ new (p) TypeIndex<I>(std::forward<TypeIndex<I>>(value));
286
+ }
287
+ return p;
288
+ }
289
+
278
290
  // Clear the value for type T, leaving it un-set.
279
291
  template <typename T>
280
292
  void clear() {
@@ -27,11 +27,13 @@
27
27
  #include "absl/strings/str_format.h"
28
28
  #include "absl/strings/string_view.h"
29
29
 
30
+ #include <grpc/grpc.h>
30
31
  #include <grpc/support/alloc.h>
31
32
  #include <grpc/support/log.h>
32
33
  #include <grpc/support/string_util.h>
33
34
 
34
35
  #include "src/core/lib/address_utils/sockaddr_utils.h"
36
+ #include "src/core/lib/channel/channel_args.h"
35
37
  #include "src/core/lib/gpr/string.h"
36
38
  #include "src/core/lib/gprpp/memory.h"
37
39
  #include "src/core/lib/http/format_request.h"
@@ -40,6 +42,7 @@
40
42
  #include "src/core/lib/iomgr/iomgr_internal.h"
41
43
  #include "src/core/lib/iomgr/resolve_address.h"
42
44
  #include "src/core/lib/iomgr/tcp_client.h"
45
+ #include "src/core/lib/resource_quota/api.h"
43
46
  #include "src/core/lib/slice/slice_internal.h"
44
47
 
45
48
  namespace grpc_core {
@@ -49,13 +52,13 @@ class InternalRequest {
49
52
  public:
50
53
  InternalRequest(const grpc_slice& request_text,
51
54
  grpc_httpcli_response* response,
52
- grpc_resource_quota* resource_quota, absl::string_view host,
55
+ ResourceQuotaRefPtr resource_quota, absl::string_view host,
53
56
  absl::string_view ssl_host_override, grpc_millis deadline,
54
57
  const grpc_httpcli_handshaker* handshaker,
55
58
  grpc_closure* on_done, grpc_httpcli_context* context,
56
59
  grpc_polling_entity* pollent, const char* name)
57
60
  : request_text_(request_text),
58
- resource_quota_(resource_quota),
61
+ resource_quota_(std::move(resource_quota)),
59
62
  host_(host),
60
63
  ssl_host_override_(ssl_host_override),
61
64
  deadline_(deadline),
@@ -91,13 +94,12 @@ class InternalRequest {
91
94
  grpc_slice_buffer_destroy_internal(&incoming_);
92
95
  grpc_slice_buffer_destroy_internal(&outgoing_);
93
96
  GRPC_ERROR_UNREF(overall_error_);
94
- grpc_resource_quota_unref_internal(resource_quota_);
95
97
  }
96
98
 
97
99
  private:
98
100
  void Finish(grpc_error_handle error) {
99
101
  grpc_polling_entity_del_from_pollset_set(pollent_, context_->pollset_set);
100
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_done_, error);
102
+ ExecCtx::Run(DEBUG_LOCATION, on_done_, error);
101
103
  delete this;
102
104
  }
103
105
 
@@ -203,10 +205,16 @@ class InternalRequest {
203
205
  addr = &addresses_->addrs[next_address_++];
204
206
  GRPC_CLOSURE_INIT(&connected_, OnConnected, this,
205
207
  grpc_schedule_on_exec_ctx);
206
- grpc_tcp_client_connect(&connected_, &ep_,
207
- grpc_slice_allocator_create(
208
- resource_quota_, grpc_sockaddr_to_uri(addr)),
209
- context_->pollset_set, nullptr, addr, deadline_);
208
+ grpc_arg rq_arg = grpc_channel_arg_pointer_create(
209
+ const_cast<char*>(GRPC_ARG_RESOURCE_QUOTA), resource_quota_->c_ptr(),
210
+ grpc_resource_quota_arg_vtable());
211
+ grpc_channel_args channel_args{1, &rq_arg};
212
+ auto* args = CoreConfiguration::Get()
213
+ .channel_args_preconditioning()
214
+ .PreconditionChannelArgs(&channel_args);
215
+ grpc_tcp_client_connect(&connected_, &ep_, context_->pollset_set, args,
216
+ addr, deadline_);
217
+ grpc_channel_args_destroy(args);
210
218
  }
211
219
 
212
220
  static void OnResolved(void* arg, grpc_error_handle error) {
@@ -224,7 +232,7 @@ class InternalRequest {
224
232
  grpc_resolved_addresses* addresses_ = nullptr;
225
233
  size_t next_address_ = 0;
226
234
  grpc_endpoint* ep_ = nullptr;
227
- grpc_resource_quota* resource_quota_;
235
+ ResourceQuotaRefPtr resource_quota_;
228
236
  std::string host_;
229
237
  std::string ssl_host_override_;
230
238
  grpc_millis deadline_;
@@ -266,16 +274,14 @@ void grpc_httpcli_context_destroy(grpc_httpcli_context* context) {
266
274
  grpc_pollset_set_destroy(context->pollset_set);
267
275
  }
268
276
 
269
- static void internal_request_begin(grpc_httpcli_context* context,
270
- grpc_polling_entity* pollent,
271
- grpc_resource_quota* resource_quota,
272
- const grpc_httpcli_request* request,
273
- grpc_millis deadline, grpc_closure* on_done,
274
- grpc_httpcli_response* response,
275
- const char* name,
276
- const grpc_slice& request_text) {
277
+ static void internal_request_begin(
278
+ grpc_httpcli_context* context, grpc_polling_entity* pollent,
279
+ grpc_core::ResourceQuotaRefPtr resource_quota,
280
+ const grpc_httpcli_request* request, grpc_millis deadline,
281
+ grpc_closure* on_done, grpc_httpcli_response* response, const char* name,
282
+ const grpc_slice& request_text) {
277
283
  new grpc_core::InternalRequest(
278
- request_text, response, resource_quota, request->host,
284
+ request_text, response, std::move(resource_quota), request->host,
279
285
  request->ssl_host_override, deadline,
280
286
  request->handshaker ? request->handshaker : &grpc_httpcli_plaintext,
281
287
  on_done, context, pollent, name);
@@ -283,37 +289,35 @@ static void internal_request_begin(grpc_httpcli_context* context,
283
289
 
284
290
  void grpc_httpcli_get(grpc_httpcli_context* context,
285
291
  grpc_polling_entity* pollent,
286
- grpc_resource_quota* resource_quota,
292
+ grpc_core::ResourceQuotaRefPtr resource_quota,
287
293
  const grpc_httpcli_request* request, grpc_millis deadline,
288
294
  grpc_closure* on_done, grpc_httpcli_response* response) {
289
295
  if (g_get_override && g_get_override(request, deadline, on_done, response)) {
290
- grpc_resource_quota_unref_internal(resource_quota);
291
296
  return;
292
297
  }
293
298
  std::string name =
294
299
  absl::StrFormat("HTTP:GET:%s:%s", request->host, request->http.path);
295
- internal_request_begin(context, pollent, resource_quota, request, deadline,
296
- on_done, response, name.c_str(),
300
+ internal_request_begin(context, pollent, std::move(resource_quota), request,
301
+ deadline, on_done, response, name.c_str(),
297
302
  grpc_httpcli_format_get_request(request));
298
303
  }
299
304
 
300
305
  void grpc_httpcli_post(grpc_httpcli_context* context,
301
306
  grpc_polling_entity* pollent,
302
- grpc_resource_quota* resource_quota,
307
+ grpc_core::ResourceQuotaRefPtr resource_quota,
303
308
  const grpc_httpcli_request* request,
304
309
  const char* body_bytes, size_t body_size,
305
310
  grpc_millis deadline, grpc_closure* on_done,
306
311
  grpc_httpcli_response* response) {
307
312
  if (g_post_override && g_post_override(request, body_bytes, body_size,
308
313
  deadline, on_done, response)) {
309
- grpc_resource_quota_unref_internal(resource_quota);
310
314
  return;
311
315
  }
312
316
  std::string name =
313
317
  absl::StrFormat("HTTP:POST:%s:%s", request->host, request->http.path);
314
318
  internal_request_begin(
315
- context, pollent, resource_quota, request, deadline, on_done, response,
316
- name.c_str(),
319
+ context, pollent, std::move(resource_quota), request, deadline, on_done,
320
+ response, name.c_str(),
317
321
  grpc_httpcli_format_post_request(request, body_bytes, body_size));
318
322
  }
319
323
 
@@ -30,7 +30,7 @@
30
30
  #include "src/core/lib/iomgr/iomgr_internal.h"
31
31
  #include "src/core/lib/iomgr/polling_entity.h"
32
32
  #include "src/core/lib/iomgr/pollset_set.h"
33
- #include "src/core/lib/iomgr/resource_quota.h"
33
+ #include "src/core/lib/resource_quota/resource_quota.h"
34
34
 
35
35
  /* User agent this library reports */
36
36
  #define GRPC_HTTPCLI_USER_AGENT "grpc-httpcli/0.0"
@@ -73,26 +73,28 @@ void grpc_httpcli_context_destroy(grpc_httpcli_context* context);
73
73
 
74
74
  /* Asynchronously perform a HTTP GET.
75
75
  'context' specifies the http context under which to do the get
76
- 'pollset' indicates a grpc_pollset that is interested in the result
77
- of the get - work on this pollset may be used to progress the get
76
+ 'pollent' indicates a grpc_polling_entity that is interested in the result
77
+ of the get - work on this entity may be used to progress the get
78
78
  operation
79
- 'resource_quota: this function takes ownership of a ref from the caller
80
- 'request' contains request parameters - these are caller owned and can be
81
- destroyed once the call returns
82
- 'deadline' contains a deadline for the request (or gpr_inf_future)
79
+ 'resource_quota' allows the caller to specify the quota against which to
80
+ allocate
81
+ 'request' contains request parameters - these are caller owned and
82
+ can be destroyed once the call returns 'deadline' contains a deadline for the
83
+ request (or gpr_inf_future)
83
84
  'on_response' is a callback to report results to */
84
85
  void grpc_httpcli_get(grpc_httpcli_context* context,
85
86
  grpc_polling_entity* pollent,
86
- grpc_resource_quota* resource_quota,
87
+ grpc_core::ResourceQuotaRefPtr resource_quota,
87
88
  const grpc_httpcli_request* request, grpc_millis deadline,
88
89
  grpc_closure* on_done, grpc_httpcli_response* response);
89
90
 
90
91
  /* Asynchronously perform a HTTP POST.
91
92
  'context' specifies the http context under which to do the post
92
- 'pollset' indicates a grpc_pollset that is interested in the result
93
- of the post - work on this pollset may be used to progress the post
93
+ 'pollent' indicates a grpc_polling_entity that is interested in the result
94
+ of the post - work on this entity may be used to progress the post
94
95
  operation
95
- 'resource_quota' - this function takes ownership of a ref from the caller.
96
+ 'resource_quota' allows the caller to specify the quota against which to
97
+ allocate
96
98
  'request' contains request parameters - these are caller owned and can be
97
99
  destroyed once the call returns
98
100
  'body_bytes' and 'body_size' specify the payload for the post.
@@ -104,7 +106,7 @@ void grpc_httpcli_get(grpc_httpcli_context* context,
104
106
  Does not support ?var1=val1&var2=val2 in the path. */
105
107
  void grpc_httpcli_post(grpc_httpcli_context* context,
106
108
  grpc_polling_entity* pollent,
107
- grpc_resource_quota* resource_quota,
109
+ grpc_core::ResourceQuotaRefPtr resource_quota,
108
110
  const grpc_httpcli_request* request,
109
111
  const char* body_bytes, size_t body_size,
110
112
  grpc_millis deadline, grpc_closure* on_done,
@@ -40,14 +40,14 @@ void fill_gpr_from_timestamp(gpr_timespec* gts, const struct timespec* ts) {
40
40
  gts->clock_type = GPR_CLOCK_REALTIME;
41
41
  }
42
42
 
43
- void default_timestamps_callback(void* /*arg*/, grpc_core::Timestamps* /*ts*/,
43
+ void default_timestamps_callback(void* /*arg*/, Timestamps* /*ts*/,
44
44
  grpc_error_handle /*shudown_err*/) {
45
45
  gpr_log(GPR_DEBUG, "Timestamps callback has not been registered");
46
46
  }
47
47
 
48
48
  /** The saved callback function that will be invoked when we get all the
49
49
  * timestamps that we are going to get for a TracedBuffer. */
50
- void (*timestamps_callback)(void*, grpc_core::Timestamps*,
50
+ void (*timestamps_callback)(void*, Timestamps*,
51
51
  grpc_error_handle shutdown_err) =
52
52
  default_timestamps_callback;
53
53
 
@@ -62,11 +62,11 @@ T read_unaligned(const void* ptr) {
62
62
 
63
63
  /* Extracts opt stats from the tcp_info struct \a info to \a metrics */
64
64
  void extract_opt_stats_from_tcp_info(ConnectionMetrics* metrics,
65
- const grpc_core::tcp_info* info) {
65
+ const tcp_info* info) {
66
66
  if (info == nullptr) {
67
67
  return;
68
68
  }
69
- if (info->length > offsetof(grpc_core::tcp_info, tcpi_sndbuf_limited)) {
69
+ if (info->length > offsetof(tcp_info, tcpi_sndbuf_limited)) {
70
70
  metrics->recurring_retrans.emplace(info->tcpi_retransmits);
71
71
  metrics->is_delivery_rate_app_limited.emplace(
72
72
  info->tcpi_delivery_rate_app_limited);
@@ -84,7 +84,7 @@ void extract_opt_stats_from_tcp_info(ConnectionMetrics* metrics,
84
84
  metrics->rwnd_limited_usec.emplace(info->tcpi_rwnd_limited);
85
85
  metrics->sndbuf_limited_usec.emplace(info->tcpi_sndbuf_limited);
86
86
  }
87
- if (info->length > offsetof(grpc_core::tcp_info, tcpi_dsack_dups)) {
87
+ if (info->length > offsetof(tcp_info, tcpi_dsack_dups)) {
88
88
  metrics->data_sent.emplace(info->tcpi_bytes_sent);
89
89
  metrics->data_retx.emplace(info->tcpi_bytes_retrans);
90
90
  metrics->packet_spurious_retx.emplace(info->tcpi_dsack_dups);
@@ -189,9 +189,9 @@ void extract_opt_stats_from_cmsg(ConnectionMetrics* metrics,
189
189
  }
190
190
  }
191
191
 
192
- static int get_socket_tcp_info(grpc_core::tcp_info* info, int fd) {
192
+ int get_socket_tcp_info(tcp_info* info, int fd) {
193
193
  memset(info, 0, sizeof(*info));
194
- info->length = offsetof(grpc_core::tcp_info, length);
194
+ info->length = offsetof(tcp_info, length);
195
195
  return getsockopt(fd, IPPROTO_TCP, TCP_INFO, info, &(info->length));
196
196
  }
197
197
  } /* namespace */
@@ -286,7 +286,7 @@ void TracedBuffer::Shutdown(TracedBuffer** head, void* remaining,
286
286
  }
287
287
 
288
288
  void grpc_tcp_set_write_timestamps_callback(
289
- void (*fn)(void*, grpc_core::Timestamps*, grpc_error_handle error)) {
289
+ void (*fn)(void*, Timestamps*, grpc_error_handle error)) {
290
290
  timestamps_callback = fn;
291
291
  }
292
292
  } /* namespace grpc_core */
@@ -295,7 +295,7 @@ void grpc_tcp_set_write_timestamps_callback(
295
295
 
296
296
  namespace grpc_core {
297
297
  void grpc_tcp_set_write_timestamps_callback(
298
- void (*fn)(void*, grpc_core::Timestamps*, grpc_error_handle error)) {
298
+ void (*fn)(void*, Timestamps*, grpc_error_handle error)) {
299
299
  // Cast value of fn to void to avoid unused parameter warning.
300
300
  // Can't comment out the name because some compilers and formatters don't
301
301
  // like the sequence */* , which would arise from */*fn*/.
@@ -96,8 +96,8 @@ struct Timestamps {
96
96
  uint32_t byte_offset; /* byte offset relative to the start of the RPC */
97
97
 
98
98
  #ifdef GRPC_LINUX_ERRQUEUE
99
- grpc_core::tcp_info info; /* tcp_info collected on sendmsg */
100
- #endif /* GRPC_LINUX_ERRQUEUE */
99
+ tcp_info info; /* tcp_info collected on sendmsg */
100
+ #endif /* GRPC_LINUX_ERRQUEUE */
101
101
  };
102
102
 
103
103
  /** TracedBuffer is a class to keep track of timestamps for a specific buffer in
@@ -105,7 +105,7 @@ struct Timestamps {
105
105
  * this class would only be used by Linux platforms. For all other platforms,
106
106
  * TracedBuffer would be an empty class.
107
107
  *
108
- * The timestamps collected are according to grpc_core::Timestamps declared
108
+ * The timestamps collected are according to Timestamps declared
109
109
  * above.
110
110
  *
111
111
  * A TracedBuffer list is kept track of using the head element of the list. If
@@ -120,33 +120,33 @@ class TracedBuffer {
120
120
 
121
121
  /** Add a new entry in the TracedBuffer list pointed to by head. Also saves
122
122
  * sendmsg_time with the current timestamp. */
123
- static void AddNewEntry(grpc_core::TracedBuffer** head, uint32_t seq_no,
124
- int fd, void* arg);
123
+ static void AddNewEntry(TracedBuffer** head, uint32_t seq_no, int fd,
124
+ void* arg);
125
125
 
126
126
  /** Processes a received timestamp based on sock_extended_err and
127
127
  * scm_timestamping structures. It will invoke the timestamps callback if the
128
128
  * timestamp type is SCM_TSTAMP_ACK. */
129
- static void ProcessTimestamp(grpc_core::TracedBuffer** head,
129
+ static void ProcessTimestamp(TracedBuffer** head,
130
130
  struct sock_extended_err* serr,
131
131
  struct cmsghdr* opt_stats,
132
132
  struct scm_timestamping* tss);
133
133
 
134
134
  /** Cleans the list by calling the callback for each traced buffer in the list
135
135
  * with timestamps that it has. */
136
- static void Shutdown(grpc_core::TracedBuffer** head, void* remaining,
136
+ static void Shutdown(TracedBuffer** head, void* remaining,
137
137
  grpc_error_handle shutdown_err);
138
138
 
139
139
  private:
140
- uint32_t seq_no_; /* The sequence number for the last byte in the buffer */
141
- void* arg_; /* The arg to pass to timestamps_callback */
142
- grpc_core::Timestamps ts_; /* The timestamps corresponding to this buffer */
143
- grpc_core::TracedBuffer* next_; /* The next TracedBuffer in the list */
140
+ uint32_t seq_no_; /* The sequence number for the last byte in the buffer */
141
+ void* arg_; /* The arg to pass to timestamps_callback */
142
+ Timestamps ts_; /* The timestamps corresponding to this buffer */
143
+ TracedBuffer* next_; /* The next TracedBuffer in the list */
144
144
  };
145
145
  #else /* GRPC_LINUX_ERRQUEUE */
146
146
  class TracedBuffer {
147
147
  public:
148
148
  /* Phony shutdown function */
149
- static void Shutdown(grpc_core::TracedBuffer** /*head*/, void* /*remaining*/,
149
+ static void Shutdown(TracedBuffer** /*head*/, void* /*remaining*/,
150
150
  grpc_error_handle shutdown_err) {
151
151
  GRPC_ERROR_UNREF(shutdown_err);
152
152
  }
@@ -156,7 +156,7 @@ class TracedBuffer {
156
156
  /** Sets the callback function to call when timestamps for a write are
157
157
  * collected. The callback does not own a reference to error. */
158
158
  void grpc_tcp_set_write_timestamps_callback(
159
- void (*fn)(void*, grpc_core::Timestamps*, grpc_error_handle error));
159
+ void (*fn)(void*, Timestamps*, grpc_error_handle error));
160
160
 
161
161
  } /* namespace grpc_core */
162
162
 
@@ -34,7 +34,7 @@ DebugOnlyTraceFlag grpc_call_combiner_trace(false, "call_combiner");
34
34
  namespace {
35
35
 
36
36
  // grpc_error LSB can be used
37
- constexpr static intptr_t kErrorBit = 1;
37
+ constexpr intptr_t kErrorBit = 1;
38
38
 
39
39
  grpc_error_handle DecodeCancelStateError(gpr_atm cancel_state) {
40
40
  if (cancel_state & kErrorBit) {
@@ -91,8 +91,7 @@ void CallCombiner::TsanClosure(void* arg, grpc_error_handle error) {
91
91
  } else {
92
92
  lock.reset();
93
93
  }
94
- grpc_core::Closure::Run(DEBUG_LOCATION, self->original_closure_,
95
- GRPC_ERROR_REF(error));
94
+ Closure::Run(DEBUG_LOCATION, self->original_closure_, GRPC_ERROR_REF(error));
96
95
  if (lock != nullptr) {
97
96
  TSAN_ANNOTATE_RWLOCK_RELEASED(&lock->taken, true);
98
97
  bool prev = true;
@@ -29,7 +29,6 @@
29
29
 
30
30
  #include "src/core/lib/iomgr/pollset.h"
31
31
  #include "src/core/lib/iomgr/pollset_set.h"
32
- #include "src/core/lib/iomgr/resource_quota.h"
33
32
 
34
33
  /* An endpoint caps a streaming channel between two communicating processes.
35
34
  Examples may be: a tcp socket, <stdin+stdout>, or some shared memory. */
@@ -59,10 +59,8 @@ struct CFStreamEndpoint {
59
59
 
60
60
  std::string peer_string;
61
61
  std::string local_address;
62
- grpc_slice_allocator* slice_allocator;
63
62
  };
64
63
  static void CFStreamFree(CFStreamEndpoint* ep) {
65
- grpc_slice_allocator_destroy(ep->slice_allocator);
66
64
  CFRelease(ep->read_stream);
67
65
  CFRelease(ep->write_stream);
68
66
  CFSTREAM_HANDLE_UNREF(ep->stream_sync, "free");
@@ -238,17 +236,6 @@ static void WriteAction(void* arg, grpc_error_handle error) {
238
236
  grpc_slice_unref_internal(slice);
239
237
  }
240
238
 
241
- static void CFStreamReadAllocationDone(void* arg, grpc_error_handle error) {
242
- CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
243
- if (error == GRPC_ERROR_NONE) {
244
- ep->stream_sync->NotifyOnRead(&ep->read_action);
245
- } else {
246
- grpc_slice_buffer_reset_and_unref_internal(ep->read_slices);
247
- CallReadCb(ep, error);
248
- EP_UNREF(ep, "read");
249
- }
250
- }
251
-
252
239
  static void CFStreamRead(grpc_endpoint* ep, grpc_slice_buffer* slices,
253
240
  grpc_closure* cb, bool urgent) {
254
241
  CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
@@ -260,13 +247,10 @@ static void CFStreamRead(grpc_endpoint* ep, grpc_slice_buffer* slices,
260
247
  ep_impl->read_cb = cb;
261
248
  ep_impl->read_slices = slices;
262
249
  grpc_slice_buffer_reset_and_unref_internal(slices);
250
+ grpc_slice_buffer_add_indexed(
251
+ slices, GRPC_SLICE_MALLOC(GRPC_TCP_DEFAULT_READ_SLICE_SIZE));
263
252
  EP_REF(ep_impl, "read");
264
- if (grpc_slice_allocator_allocate(
265
- ep_impl->slice_allocator, GRPC_TCP_DEFAULT_READ_SLICE_SIZE, 1,
266
- grpc_slice_allocator_intent::kReadBuffer, ep_impl->read_slices,
267
- CFStreamReadAllocationDone, ep_impl)) {
268
- ep_impl->stream_sync->NotifyOnRead(&ep_impl->read_action);
269
- }
253
+ ep_impl->stream_sync->NotifyOnRead(&ep_impl->read_action);
270
254
  }
271
255
 
272
256
  static void CFStreamWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
@@ -337,10 +321,10 @@ static const grpc_endpoint_vtable vtable = {CFStreamRead,
337
321
  CFStreamGetFD,
338
322
  CFStreamCanTrackErr};
339
323
 
340
- grpc_endpoint* grpc_cfstream_endpoint_create(
341
- CFReadStreamRef read_stream, CFWriteStreamRef write_stream,
342
- const char* peer_string, grpc_slice_allocator* slice_allocator,
343
- CFStreamHandle* stream_sync) {
324
+ grpc_endpoint* grpc_cfstream_endpoint_create(CFReadStreamRef read_stream,
325
+ CFWriteStreamRef write_stream,
326
+ const char* peer_string,
327
+ CFStreamHandle* stream_sync) {
344
328
  CFStreamEndpoint* ep_impl = new CFStreamEndpoint;
345
329
  if (grpc_tcp_trace.enabled()) {
346
330
  gpr_log(GPR_DEBUG,
@@ -381,7 +365,6 @@ grpc_endpoint* grpc_cfstream_endpoint_create(
381
365
  static_cast<void*>(ep_impl), grpc_schedule_on_exec_ctx);
382
366
  GRPC_CLOSURE_INIT(&ep_impl->write_action, WriteAction,
383
367
  static_cast<void*>(ep_impl), grpc_schedule_on_exec_ctx);
384
- ep_impl->slice_allocator = slice_allocator;
385
368
 
386
369
  return &ep_impl->base;
387
370
  }
@@ -39,10 +39,10 @@
39
39
  #include "src/core/lib/iomgr/cfstream_handle.h"
40
40
  #include "src/core/lib/iomgr/endpoint.h"
41
41
 
42
- grpc_endpoint* grpc_cfstream_endpoint_create(
43
- CFReadStreamRef read_stream, CFWriteStreamRef write_stream,
44
- const char* peer_string, grpc_slice_allocator* slice_allocator,
45
- CFStreamHandle* stream_sync);
42
+ grpc_endpoint* grpc_cfstream_endpoint_create(CFReadStreamRef read_stream,
43
+ CFWriteStreamRef write_stream,
44
+ const char* peer_string,
45
+ CFStreamHandle* stream_sync);
46
46
 
47
47
  #endif /* GRPC_CFSTREAM */
48
48
 
@@ -40,6 +40,7 @@
40
40
  #include "src/core/lib/iomgr/socket_utils_posix.h"
41
41
  #include "src/core/lib/iomgr/tcp_posix.h"
42
42
  #include "src/core/lib/iomgr/unix_sockets_posix.h"
43
+ #include "src/core/lib/resource_quota/api.h"
43
44
 
44
45
  static void create_sockets(int sv[2]) {
45
46
  int flags;
@@ -59,18 +60,15 @@ grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(const char* name,
59
60
  create_sockets(sv);
60
61
  grpc_core::ExecCtx exec_ctx;
61
62
  std::string final_name = absl::StrCat(name, ":client");
62
- grpc_resource_quota* resource_quota =
63
- grpc_resource_quota_from_channel_args(args, true);
64
- p.client = grpc_tcp_create(
65
- grpc_fd_create(sv[1], final_name.c_str(), false), args,
66
- "socketpair-server",
67
- grpc_slice_allocator_create(resource_quota, "server_endpoint", args));
63
+ const grpc_channel_args* new_args = grpc_core::CoreConfiguration::Get()
64
+ .channel_args_preconditioning()
65
+ .PreconditionChannelArgs(args);
66
+ p.client = grpc_tcp_create(grpc_fd_create(sv[1], final_name.c_str(), false),
67
+ new_args, "socketpair-server");
68
68
  final_name = absl::StrCat(name, ":server");
69
- p.server = grpc_tcp_create(
70
- grpc_fd_create(sv[0], final_name.c_str(), false), args,
71
- "socketpair-client",
72
- grpc_slice_allocator_create(resource_quota, "client_endpoint", args));
73
- grpc_resource_quota_unref_internal(resource_quota);
69
+ p.server = grpc_tcp_create(grpc_fd_create(sv[0], final_name.c_str(), false),
70
+ new_args, "socketpair-client");
71
+ grpc_channel_args_destroy(new_args);
74
72
  return p;
75
73
  }
76
74
 
@@ -71,24 +71,15 @@ static void create_sockets(SOCKET sv[2]) {
71
71
  }
72
72
 
73
73
  grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(
74
- const char* name, grpc_channel_args* channel_args) {
74
+ const char*, grpc_channel_args* channel_args) {
75
75
  SOCKET sv[2];
76
76
  grpc_endpoint_pair p;
77
77
  create_sockets(sv);
78
78
  grpc_core::ExecCtx exec_ctx;
79
- grpc_resource_quota* resource_quota =
80
- grpc_resource_quota_from_channel_args(channel_args, true);
81
- p.client =
82
- grpc_tcp_create(grpc_winsocket_create(sv[1], "endpoint:client"),
83
- channel_args, "endpoint:server",
84
- grpc_slice_allocator_create(
85
- resource_quota, "endpoint:server", channel_args));
86
- p.server =
87
- grpc_tcp_create(grpc_winsocket_create(sv[0], "endpoint:server"),
88
- channel_args, "endpoint:client",
89
- grpc_slice_allocator_create(
90
- resource_quota, "endpoint:client", channel_args));
91
- grpc_resource_quota_unref_internal(resource_quota);
79
+ p.client = grpc_tcp_create(grpc_winsocket_create(sv[1], "endpoint:client"),
80
+ channel_args, "endpoint:server");
81
+ p.server = grpc_tcp_create(grpc_winsocket_create(sv[0], "endpoint:server"),
82
+ channel_args, "endpoint:client");
92
83
  return p;
93
84
  }
94
85
 
@@ -39,7 +39,6 @@ namespace {
39
39
 
40
40
  using ::grpc_event_engine::experimental::EventEngine;
41
41
  using ::grpc_event_engine::experimental::ResolvedAddressToURI;
42
- using ::grpc_event_engine::experimental::SliceAllocator;
43
42
  using ::grpc_event_engine::experimental::SliceBuffer;
44
43
 
45
44
  void endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* slices,
@@ -163,8 +162,8 @@ grpc_event_engine_endpoint* grpc_tcp_server_endpoint_create(
163
162
  return endpoint;
164
163
  }
165
164
 
166
- grpc_endpoint* grpc_tcp_create(const grpc_channel_args* channel_args,
167
- absl::string_view peer_address) {
165
+ grpc_endpoint* grpc_tcp_create(const grpc_channel_args* /* channel_args */,
166
+ absl::string_view /* peer_address */) {
168
167
  auto endpoint = new grpc_event_engine_endpoint;
169
168
  endpoint->base.vtable = &grpc_event_engine_endpoint_vtable;
170
169
  return &endpoint->base;
@@ -18,7 +18,6 @@
18
18
 
19
19
  #include "src/core/lib/debug/trace.h"
20
20
  #include "src/core/lib/iomgr/closure.h"
21
- #include "src/core/lib/iomgr/event_engine/iomgr.h"
22
21
  #include "src/core/lib/iomgr/iomgr_internal.h"
23
22
  #include "src/core/lib/iomgr/tcp_client.h"
24
23
  #include "src/core/lib/iomgr/tcp_server.h"
@@ -38,25 +37,21 @@ grpc_core::DebugOnlyTraceFlag grpc_polling_trace(false, "polling");
38
37
 
39
38
  namespace {
40
39
 
41
- using ::grpc_event_engine::experimental::DefaultEventEngineFactory;
42
40
  using ::grpc_event_engine::experimental::EventEngine;
43
-
44
- EventEngine* g_event_engine = nullptr;
41
+ using ::grpc_event_engine::experimental::GetDefaultEventEngine;
45
42
 
46
43
  // TODO(nnoble): Instantiate the default EventEngine if none have been provided.
47
- void iomgr_platform_init(void) { GPR_ASSERT(g_event_engine != nullptr); }
44
+ void iomgr_platform_init(void) {}
48
45
 
49
46
  void iomgr_platform_flush(void) {}
50
47
 
51
- void iomgr_platform_shutdown(void) {
52
- delete g_event_engine;
53
- g_event_engine = nullptr;
54
- }
48
+ void iomgr_platform_shutdown(void) {}
55
49
 
56
50
  void iomgr_platform_shutdown_background_closure(void) {}
57
51
 
58
52
  bool iomgr_platform_is_any_background_poller_thread(void) {
59
- return g_event_engine->IsWorkerThread();
53
+ return grpc_event_engine::experimental::GetDefaultEventEngine()
54
+ ->IsWorkerThread();
60
55
  }
61
56
 
62
57
  bool iomgr_platform_add_closure_to_background_poller(
@@ -86,19 +81,4 @@ void grpc_set_default_iomgr_platform() {
86
81
 
87
82
  bool grpc_iomgr_run_in_background() { return false; }
88
83
 
89
- grpc_event_engine::experimental::EventEngine* grpc_iomgr_event_engine() {
90
- return g_event_engine;
91
- }
92
-
93
- namespace grpc_core {
94
-
95
- void SetDefaultEventEngine(
96
- std::unique_ptr<grpc_event_engine::experimental::EventEngine>
97
- event_engine) {
98
- GPR_ASSERT(g_event_engine == nullptr);
99
- g_event_engine = event_engine.release();
100
- }
101
-
102
- } // namespace grpc_core
103
-
104
84
  #endif // GRPC_USE_EVENT_ENGINE