grpc 1.48.0 → 1.50.0

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 (846) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +114 -150
  3. data/include/grpc/event_engine/endpoint_config.h +11 -5
  4. data/include/grpc/event_engine/event_engine.h +20 -17
  5. data/include/grpc/impl/codegen/atm_gcc_atomic.h +19 -28
  6. data/include/grpc/impl/codegen/atm_gcc_sync.h +0 -2
  7. data/include/grpc/impl/codegen/atm_windows.h +0 -2
  8. data/include/grpc/impl/codegen/grpc_types.h +9 -8
  9. data/include/grpc/impl/codegen/port_platform.h +0 -8
  10. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +6 -6
  11. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +2 -2
  12. data/src/core/ext/filters/client_channel/backup_poller.cc +4 -6
  13. data/src/core/ext/filters/client_channel/client_channel.cc +154 -218
  14. data/src/core/ext/filters/client_channel/client_channel.h +16 -9
  15. data/src/core/ext/filters/client_channel/client_channel_factory.cc +0 -29
  16. data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -10
  17. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +0 -16
  18. data/src/core/ext/filters/client_channel/config_selector.h +12 -4
  19. data/src/core/ext/filters/client_channel/connector.h +4 -5
  20. data/src/core/ext/filters/client_channel/http_proxy.cc +55 -74
  21. data/src/core/ext/filters/client_channel/http_proxy.h +15 -11
  22. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +20 -16
  23. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +11 -10
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +0 -2
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +181 -194
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +12 -3
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +5 -1
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -0
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -2
  30. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +20 -11
  31. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
  32. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +250 -146
  33. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +41 -1
  34. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +35 -32
  35. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +195 -299
  36. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +237 -250
  37. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +12 -7
  38. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +431 -498
  39. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +31 -30
  40. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +27 -27
  41. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +108 -124
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +68 -76
  43. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +131 -227
  44. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +126 -121
  45. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +325 -304
  46. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +4 -8
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +431 -145
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +172 -101
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +20 -7
  50. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -16
  51. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +7 -17
  52. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +11 -0
  53. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +51 -32
  54. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +87 -41
  55. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +16 -6
  56. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -13
  57. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +167 -168
  58. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +40 -32
  59. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +7 -10
  60. data/src/core/ext/filters/client_channel/retry_filter.cc +25 -36
  61. data/src/core/ext/filters/client_channel/retry_service_config.cc +30 -19
  62. data/src/core/ext/filters/client_channel/retry_service_config.h +6 -9
  63. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +6 -7
  64. data/src/core/ext/filters/client_channel/subchannel.cc +86 -121
  65. data/src/core/ext/filters/client_channel/subchannel.h +20 -11
  66. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +1 -1
  67. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +6 -76
  68. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -25
  69. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +4 -6
  70. data/src/core/ext/filters/deadline/deadline_filter.cc +6 -6
  71. data/src/core/ext/filters/deadline/deadline_filter.h +2 -3
  72. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +24 -19
  73. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +9 -1
  74. data/src/core/ext/filters/fault_injection/service_config_parser.cc +17 -12
  75. data/src/core/ext/filters/fault_injection/service_config_parser.h +4 -5
  76. data/src/core/ext/filters/http/client/http_client_filter.cc +3 -5
  77. data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
  78. data/src/core/ext/filters/http/client_authority_filter.cc +1 -2
  79. data/src/core/ext/filters/http/client_authority_filter.h +1 -1
  80. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +2 -4
  81. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -2
  82. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -5
  83. data/src/core/ext/filters/http/server/http_server_filter.h +1 -1
  84. data/src/core/ext/filters/message_size/message_size_filter.cc +13 -7
  85. data/src/core/ext/filters/message_size/message_size_filter.h +3 -6
  86. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +16 -12
  87. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -6
  88. data/src/core/ext/filters/server_config_selector/server_config_selector.h +5 -0
  89. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +3 -5
  90. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +40 -63
  91. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +86 -107
  92. data/src/core/ext/transport/chttp2/server/chttp2_server.h +4 -6
  93. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -1
  94. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +155 -295
  95. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -2
  96. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +287 -0
  97. data/src/core/ext/transport/chttp2/transport/decode_huff.h +1018 -0
  98. data/src/core/ext/transport/chttp2/transport/flow_control.cc +139 -42
  99. data/src/core/ext/transport/chttp2/transport/flow_control.h +12 -6
  100. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +1 -2
  101. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +7 -1
  102. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +27 -28
  103. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -0
  104. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
  105. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +8 -2
  106. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +30 -38
  107. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +1 -10
  108. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +11 -6
  109. data/src/core/ext/transport/chttp2/transport/internal.h +4 -1
  110. data/src/core/ext/transport/chttp2/transport/parsing.cc +44 -0
  111. data/src/core/ext/transport/chttp2/transport/writing.cc +3 -14
  112. data/src/core/ext/transport/inproc/inproc_transport.cc +41 -77
  113. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +5 -5
  114. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +30 -10
  115. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +4 -4
  116. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +24 -8
  117. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +8 -327
  118. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +83 -1723
  119. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
  120. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
  121. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +2 -2
  122. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +12 -4
  123. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +6 -4
  124. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +33 -4
  125. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +1 -1
  126. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +6 -2
  127. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +1 -1
  128. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +6 -2
  129. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +6 -2
  130. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +12 -4
  131. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +1 -1
  132. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +6 -2
  133. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  134. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -3
  135. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +14 -14
  136. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +90 -30
  137. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +21 -19
  138. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +124 -34
  139. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +3 -3
  140. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +18 -6
  141. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +23 -22
  142. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +153 -48
  143. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +1 -1
  144. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +6 -2
  145. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +1 -1
  146. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +6 -2
  147. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +11 -11
  148. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +84 -28
  149. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +7 -7
  150. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +42 -14
  151. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +1 -1
  152. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +6 -2
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -23
  154. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +156 -48
  155. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +7 -7
  156. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +42 -14
  157. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
  158. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +6 -2
  159. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +1 -1
  160. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +6 -2
  161. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +2 -2
  162. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +12 -4
  163. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +12 -12
  164. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +78 -26
  165. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +9 -9
  166. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +54 -18
  167. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +1 -1
  168. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +6 -2
  169. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +21 -20
  170. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +117 -44
  171. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
  172. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +6 -2
  173. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +2 -2
  174. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +12 -4
  175. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +6 -2
  176. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
  177. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +6 -2
  178. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +1 -1
  179. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +6 -2
  180. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +3 -3
  181. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +18 -6
  182. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +5 -5
  183. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +36 -12
  184. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +3 -3
  185. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +30 -10
  186. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +1 -1
  187. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +6 -2
  188. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -13
  189. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +170 -15
  190. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +5 -5
  191. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +42 -14
  192. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +1 -1
  193. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +6 -2
  194. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +7 -4
  195. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +36 -4
  196. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +1 -1
  197. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +6 -2
  198. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +6 -6
  199. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +48 -16
  200. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +8 -8
  201. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +54 -18
  202. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -9
  203. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +100 -14
  204. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -22
  205. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +36 -77
  206. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +121 -76
  207. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +647 -163
  208. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +3 -3
  209. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +18 -6
  210. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +34 -15
  211. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +161 -22
  212. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +1 -1
  213. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -2
  214. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +1 -1
  215. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +6 -2
  216. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +2 -2
  217. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +12 -4
  218. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +1 -1
  219. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +6 -2
  220. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +1 -1
  221. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +6 -2
  222. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
  223. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
  224. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +1 -1
  225. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +6 -2
  226. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +2 -2
  227. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +12 -4
  228. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -0
  229. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -0
  230. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +2 -2
  231. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +12 -4
  232. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +1 -1
  233. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +6 -2
  234. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +1 -1
  235. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +6 -2
  236. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +2 -2
  237. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -10
  238. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +2 -2
  239. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +18 -6
  240. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +11 -4
  241. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +58 -4
  242. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +1 -1
  243. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +6 -2
  244. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +35 -27
  245. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +177 -52
  246. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +6 -2
  247. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +1 -1
  248. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +6 -2
  249. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +10 -8
  250. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +66 -14
  251. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +3 -3
  252. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +18 -6
  253. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +5 -5
  254. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +42 -14
  255. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +2 -2
  256. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +12 -4
  257. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
  258. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +6 -2
  259. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +131 -16
  260. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +632 -12
  261. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +2 -2
  262. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +12 -4
  263. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +5 -5
  264. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +30 -10
  265. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +1 -1
  266. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +6 -2
  267. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -4
  268. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +24 -8
  269. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +4 -4
  270. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +24 -8
  271. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +2 -2
  272. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +12 -4
  273. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +1 -1
  274. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +6 -2
  275. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
  276. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +6 -2
  277. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
  278. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +6 -2
  279. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +3 -3
  280. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +18 -6
  281. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +1 -1
  282. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +12 -4
  283. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +2 -2
  284. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +12 -4
  285. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
  286. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +18 -6
  287. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
  288. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +42 -14
  289. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +5 -5
  290. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +30 -10
  291. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +3 -3
  292. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +18 -6
  293. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +1 -1
  294. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +6 -2
  295. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +12 -4
  296. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +2 -2
  297. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -6
  298. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
  299. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
  300. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
  301. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +6 -2
  302. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +6 -2
  303. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
  304. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +11 -11
  305. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +66 -22
  306. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +9 -9
  307. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +72 -24
  308. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  309. data/src/core/ext/upb-generated/google/api/http.upb.h +18 -6
  310. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +1 -1
  311. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +6 -2
  312. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  313. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -2
  314. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +44 -43
  315. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +177 -55
  316. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  317. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +6 -2
  318. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  319. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +6 -2
  320. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +2 -2
  321. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +18 -6
  322. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  323. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +6 -2
  324. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +6 -6
  325. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +54 -18
  326. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  327. data/src/core/ext/upb-generated/google/rpc/status.upb.h +6 -2
  328. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +2 -2
  329. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +24 -8
  330. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +6 -2
  331. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +7 -7
  332. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +60 -20
  333. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +1 -1
  334. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +12 -4
  335. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  336. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +12 -4
  337. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +6 -6
  338. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +54 -18
  339. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +2 -2
  340. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +12 -4
  341. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +7 -7
  342. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +42 -14
  343. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  344. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +23 -11
  345. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
  346. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -3
  347. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -3
  348. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
  349. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -3
  350. data/src/core/ext/upb-generated/validate/validate.upb.c +22 -22
  351. data/src/core/ext/upb-generated/validate/validate.upb.h +139 -47
  352. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +3 -3
  353. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +23 -11
  354. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +1 -1
  355. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -3
  356. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +3 -3
  357. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +27 -11
  358. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +1 -1
  359. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +7 -3
  360. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
  361. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +6 -2
  362. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +2 -2
  363. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +12 -4
  364. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
  365. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +6 -2
  366. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +1 -1
  367. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +6 -2
  368. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
  369. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +6 -2
  370. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
  371. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +12 -4
  372. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
  373. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +6 -2
  374. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +6 -2
  375. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +1 -1
  376. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +6 -2
  377. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +6 -6
  378. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +54 -18
  379. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +2 -2
  380. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +12 -4
  381. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +1 -1
  382. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +12 -4
  383. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +1 -1
  384. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +6 -2
  385. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +67 -274
  386. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -85
  387. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
  388. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
  389. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +14 -11
  390. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +107 -107
  391. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
  392. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +156 -154
  393. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +186 -183
  394. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +136 -134
  395. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +16 -16
  396. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +162 -139
  397. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
  398. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +39 -31
  399. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +12 -8
  400. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  401. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +72 -75
  402. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -5
  403. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +713 -670
  404. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
  405. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +150 -139
  406. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +5 -0
  407. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
  408. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
  409. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +16 -12
  410. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +46 -25
  411. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +477 -466
  412. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +21 -18
  413. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +153 -84
  414. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +35 -0
  415. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -113
  416. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -28
  417. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
  418. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
  419. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +92 -90
  420. data/src/core/ext/xds/certificate_provider_store.cc +63 -3
  421. data/src/core/ext/xds/certificate_provider_store.h +9 -1
  422. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +5 -5
  423. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +1 -1
  424. data/src/core/ext/xds/upb_utils.h +0 -21
  425. data/src/core/ext/xds/xds_api.cc +73 -102
  426. data/src/core/ext/xds/xds_api.h +26 -28
  427. data/src/core/ext/xds/xds_bootstrap.cc +5 -550
  428. data/src/core/ext/xds/xds_bootstrap.h +39 -91
  429. data/src/core/ext/xds/xds_bootstrap_grpc.cc +370 -0
  430. data/src/core/ext/xds/xds_bootstrap_grpc.h +169 -0
  431. data/src/core/ext/xds/xds_certificate_provider.h +9 -0
  432. data/src/core/ext/xds/xds_channel_stack_modifier.cc +6 -4
  433. data/src/core/ext/xds/xds_channel_stack_modifier.h +8 -0
  434. data/src/core/ext/xds/xds_client.cc +732 -1317
  435. data/src/core/ext/xds/xds_client.h +33 -59
  436. data/src/core/ext/xds/xds_client_grpc.cc +229 -0
  437. data/src/core/ext/xds/xds_client_grpc.h +79 -0
  438. data/src/core/ext/xds/xds_client_stats.cc +4 -4
  439. data/src/core/ext/xds/xds_cluster.cc +162 -165
  440. data/src/core/ext/xds/xds_cluster.h +8 -7
  441. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +12 -14
  442. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -0
  443. data/src/core/ext/xds/xds_common_types.cc +140 -108
  444. data/src/core/ext/xds/xds_common_types.h +6 -7
  445. data/src/core/ext/xds/xds_endpoint.cc +87 -85
  446. data/src/core/ext/xds/xds_endpoint.h +4 -5
  447. data/src/core/ext/xds/xds_http_fault_filter.cc +4 -11
  448. data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
  449. data/src/core/ext/xds/xds_http_filters.h +3 -3
  450. data/src/core/ext/xds/xds_http_rbac_filter.cc +39 -58
  451. data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
  452. data/src/core/ext/xds/xds_lb_policy_registry.cc +21 -22
  453. data/src/core/ext/xds/xds_lb_policy_registry.h +4 -4
  454. data/src/core/ext/xds/xds_listener.cc +348 -313
  455. data/src/core/ext/xds/xds_listener.h +4 -5
  456. data/src/core/ext/xds/xds_resource_type.h +23 -9
  457. data/src/core/ext/xds/xds_route_config.cc +193 -191
  458. data/src/core/ext/xds/xds_route_config.h +31 -17
  459. data/src/core/ext/xds/xds_routing.cc +3 -6
  460. data/src/core/ext/xds/xds_routing.h +7 -9
  461. data/src/core/ext/xds/xds_server_config_fetcher.cc +81 -84
  462. data/src/core/ext/xds/xds_transport.h +86 -0
  463. data/src/core/ext/xds/xds_transport_grpc.cc +357 -0
  464. data/src/core/ext/xds/xds_transport_grpc.h +135 -0
  465. data/src/core/lib/address_utils/parse_address.cc +19 -17
  466. data/src/core/lib/address_utils/parse_address.h +8 -5
  467. data/src/core/lib/avl/avl.h +47 -25
  468. data/src/core/lib/backoff/backoff.cc +2 -4
  469. data/src/core/lib/channel/call_finalization.h +1 -3
  470. data/src/core/lib/channel/call_tracer.h +1 -1
  471. data/src/core/lib/channel/channel_args.cc +88 -19
  472. data/src/core/lib/channel/channel_args.h +218 -67
  473. data/src/core/lib/channel/channel_stack.cc +0 -1
  474. data/src/core/lib/channel/channel_stack_builder.cc +3 -3
  475. data/src/core/lib/channel/channel_stack_builder.h +2 -2
  476. data/src/core/lib/channel/channel_stack_builder_impl.cc +2 -4
  477. data/src/core/lib/channel/channel_trace.cc +3 -4
  478. data/src/core/lib/channel/channelz.cc +27 -37
  479. data/src/core/lib/channel/channelz.h +9 -0
  480. data/src/core/lib/channel/promise_based_filter.cc +18 -19
  481. data/src/core/lib/channel/promise_based_filter.h +0 -1
  482. data/src/core/lib/channel/status_util.cc +27 -0
  483. data/src/core/lib/channel/status_util.h +10 -0
  484. data/src/core/lib/config/core_configuration.cc +5 -1
  485. data/src/core/lib/config/core_configuration.h +81 -35
  486. data/src/core/lib/debug/stats.cc +39 -46
  487. data/src/core/lib/debug/stats.h +11 -13
  488. data/src/core/lib/debug/stats_data.cc +118 -614
  489. data/src/core/lib/debug/stats_data.h +67 -465
  490. data/src/core/lib/debug/trace.cc +0 -2
  491. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +12 -20
  492. data/src/core/lib/event_engine/channel_args_endpoint_config.h +13 -7
  493. data/src/core/lib/event_engine/{event_engine.cc → default_event_engine.cc} +9 -5
  494. data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine.h} +4 -8
  495. data/src/core/lib/event_engine/default_event_engine_factory.cc +20 -3
  496. data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
  497. data/src/core/lib/event_engine/executor/executor.h +38 -0
  498. data/src/core/lib/event_engine/executor/threaded_executor.cc +36 -0
  499. data/src/core/lib/event_engine/executor/threaded_executor.h +44 -0
  500. data/src/core/lib/event_engine/forkable.cc +101 -0
  501. data/src/core/lib/event_engine/forkable.h +61 -0
  502. data/src/core/lib/event_engine/poller.h +56 -0
  503. data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.cc → posix_engine/posix_engine.cc} +30 -47
  504. data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.h → posix_engine/posix_engine.h} +27 -28
  505. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.cc +4 -5
  506. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.h +8 -8
  507. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.cc +4 -4
  508. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.h +5 -5
  509. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.cc +87 -30
  510. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.h +40 -9
  511. data/src/core/lib/event_engine/socket_notifier.h +55 -0
  512. data/src/core/lib/event_engine/thread_pool.cc +195 -0
  513. data/src/core/lib/event_engine/thread_pool.h +114 -0
  514. data/src/core/lib/event_engine/time_util.cc +30 -0
  515. data/src/core/lib/event_engine/time_util.h +32 -0
  516. data/src/core/lib/event_engine/utils.cc +44 -0
  517. data/src/core/lib/event_engine/utils.h +36 -0
  518. data/src/core/lib/event_engine/windows/iocp.cc +155 -0
  519. data/src/core/lib/event_engine/windows/iocp.h +69 -0
  520. data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
  521. data/src/core/lib/event_engine/windows/win_socket.h +120 -0
  522. data/src/core/lib/event_engine/windows/windows_engine.cc +159 -0
  523. data/src/core/lib/event_engine/windows/windows_engine.h +120 -0
  524. data/src/core/lib/experiments/config.cc +146 -0
  525. data/src/core/lib/experiments/config.h +43 -0
  526. data/src/core/lib/experiments/experiments.cc +75 -0
  527. data/src/core/lib/experiments/experiments.h +56 -0
  528. data/src/core/lib/gpr/alloc.cc +1 -9
  529. data/src/core/lib/gpr/log_windows.cc +0 -1
  530. data/src/core/lib/gpr/string_util_windows.cc +3 -30
  531. data/src/core/lib/gpr/sync_abseil.cc +0 -14
  532. data/src/core/lib/gpr/sync_posix.cc +0 -14
  533. data/src/core/lib/gpr/time.cc +11 -9
  534. data/src/core/lib/gpr/time_posix.cc +0 -6
  535. data/src/core/lib/gpr/time_precise.h +1 -1
  536. data/src/core/lib/gpr/tmpfile_windows.cc +5 -7
  537. data/src/core/lib/gpr/useful.h +40 -0
  538. data/src/core/lib/gprpp/bitset.h +3 -13
  539. data/src/core/lib/gprpp/debug_location.h +39 -7
  540. data/src/core/lib/{gpr → gprpp}/env.h +25 -12
  541. data/src/core/lib/{gpr → gprpp}/env_linux.cc +20 -15
  542. data/src/core/lib/{gpr → gprpp}/env_posix.cc +11 -10
  543. data/src/core/lib/gprpp/env_windows.cc +56 -0
  544. data/src/core/lib/gprpp/fork.cc +14 -22
  545. data/src/core/lib/gprpp/fork.h +0 -8
  546. data/src/core/lib/gprpp/global_config_env.cc +7 -6
  547. data/src/core/lib/gprpp/manual_constructor.h +0 -1
  548. data/src/core/lib/gprpp/no_destruct.h +94 -0
  549. data/src/core/lib/gprpp/notification.h +67 -0
  550. data/src/core/lib/gprpp/packed_table.h +40 -0
  551. data/src/core/lib/gprpp/ref_counted_ptr.h +20 -34
  552. data/src/core/lib/gprpp/sorted_pack.h +98 -0
  553. data/src/core/lib/gprpp/status_helper.cc +1 -0
  554. data/src/core/lib/gprpp/status_helper.h +6 -0
  555. data/src/core/lib/gprpp/table.h +9 -2
  556. data/src/core/lib/gprpp/tchar.cc +49 -0
  557. data/src/core/lib/gprpp/tchar.h +33 -0
  558. data/src/core/lib/gprpp/time.cc +21 -0
  559. data/src/core/lib/gprpp/time.h +55 -0
  560. data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.cc +3 -5
  561. data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.h +5 -7
  562. data/src/core/lib/gprpp/validation_errors.cc +61 -0
  563. data/src/core/lib/gprpp/validation_errors.h +110 -0
  564. data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
  565. data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
  566. data/src/core/{ext/filters/client_channel → lib/handshaker}/proxy_mapper.h +16 -17
  567. data/src/core/lib/handshaker/proxy_mapper_registry.cc +71 -0
  568. data/src/core/lib/handshaker/proxy_mapper_registry.h +75 -0
  569. data/src/core/lib/http/httpcli.cc +12 -24
  570. data/src/core/lib/http/httpcli_security_connector.cc +11 -11
  571. data/src/core/lib/iomgr/call_combiner.cc +0 -34
  572. data/src/core/lib/iomgr/closure.h +0 -10
  573. data/src/core/lib/iomgr/combiner.cc +0 -20
  574. data/src/core/lib/iomgr/endpoint_pair_posix.cc +14 -9
  575. data/src/core/lib/iomgr/endpoint_pair_windows.cc +2 -2
  576. data/src/core/lib/iomgr/error.cc +0 -773
  577. data/src/core/lib/iomgr/error.h +0 -145
  578. data/src/core/lib/iomgr/error_cfstream.cc +0 -5
  579. data/src/core/lib/iomgr/ev_epoll1_linux.cc +1 -38
  580. data/src/core/lib/iomgr/ev_poll_posix.cc +19 -26
  581. data/src/core/lib/iomgr/exec_ctx.cc +0 -22
  582. data/src/core/lib/iomgr/exec_ctx.h +7 -31
  583. data/src/core/lib/iomgr/executor.cc +0 -10
  584. data/src/core/lib/iomgr/executor.h +0 -3
  585. data/src/core/lib/iomgr/iocp_windows.cc +1 -2
  586. data/src/core/lib/iomgr/iomgr.cc +6 -8
  587. data/src/core/lib/iomgr/iomgr_fwd.h +1 -0
  588. data/src/core/lib/iomgr/lockfree_event.cc +0 -17
  589. data/src/core/lib/iomgr/pollset.h +1 -1
  590. data/src/core/lib/iomgr/pollset_set.h +0 -1
  591. data/src/core/lib/iomgr/port.h +3 -0
  592. data/src/core/lib/iomgr/resolve_address.h +30 -6
  593. data/src/core/lib/iomgr/resolve_address_impl.h +1 -0
  594. data/src/core/lib/iomgr/resolve_address_posix.cc +43 -8
  595. data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
  596. data/src/core/lib/iomgr/resolve_address_windows.cc +45 -10
  597. data/src/core/lib/iomgr/resolve_address_windows.h +19 -5
  598. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +2 -1
  599. data/src/core/lib/iomgr/socket_utils_common_posix.cc +12 -34
  600. data/src/core/lib/iomgr/socket_utils_posix.cc +83 -1
  601. data/src/core/lib/iomgr/socket_utils_posix.h +98 -6
  602. data/src/core/lib/iomgr/socket_windows.h +0 -2
  603. data/src/core/lib/iomgr/tcp_client.cc +6 -7
  604. data/src/core/lib/iomgr/tcp_client.h +11 -11
  605. data/src/core/lib/iomgr/tcp_client_cfstream.cc +6 -6
  606. data/src/core/lib/iomgr/tcp_client_posix.cc +33 -29
  607. data/src/core/lib/iomgr/tcp_client_posix.h +12 -9
  608. data/src/core/lib/iomgr/tcp_client_windows.cc +6 -6
  609. data/src/core/lib/iomgr/tcp_posix.cc +249 -120
  610. data/src/core/lib/iomgr/tcp_posix.h +3 -1
  611. data/src/core/lib/iomgr/tcp_server.cc +5 -4
  612. data/src/core/lib/iomgr/tcp_server.h +9 -6
  613. data/src/core/lib/iomgr/tcp_server_posix.cc +17 -28
  614. data/src/core/lib/iomgr/tcp_server_utils_posix.h +2 -2
  615. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +3 -3
  616. data/src/core/lib/iomgr/tcp_server_windows.cc +6 -7
  617. data/src/core/lib/iomgr/tcp_windows.cc +0 -1
  618. data/src/core/lib/iomgr/tcp_windows.h +0 -1
  619. data/src/core/lib/iomgr/timer_generic.cc +10 -12
  620. data/src/core/lib/iomgr/timer_manager.cc +1 -2
  621. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +0 -2
  622. data/src/core/lib/json/json.h +19 -22
  623. data/src/core/lib/json/json_args.h +34 -0
  624. data/src/core/lib/json/json_object_loader.cc +202 -0
  625. data/src/core/lib/json/json_object_loader.h +598 -0
  626. data/src/core/lib/json/json_reader.cc +86 -62
  627. data/src/core/lib/json/json_util.cc +9 -36
  628. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.cc +3 -44
  629. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +20 -29
  630. data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
  631. data/src/core/lib/load_balancing/lb_policy_registry.cc +141 -0
  632. data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
  633. data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +6 -6
  634. data/src/core/lib/promise/activity.h +57 -10
  635. data/src/core/lib/promise/arena_promise.h +84 -81
  636. data/src/core/lib/promise/context.h +1 -2
  637. data/src/core/lib/promise/detail/basic_seq.h +43 -23
  638. data/src/core/lib/promise/detail/promise_factory.h +0 -1
  639. data/src/core/lib/promise/map.h +0 -1
  640. data/src/core/lib/promise/seq.h +25 -4
  641. data/src/core/lib/promise/sleep.cc +50 -42
  642. data/src/core/lib/promise/sleep.h +32 -23
  643. data/src/core/lib/promise/try_seq.h +26 -6
  644. data/src/core/lib/resolver/resolver.cc +0 -47
  645. data/src/core/lib/resolver/resolver.h +15 -15
  646. data/src/core/lib/resolver/resolver_factory.h +2 -3
  647. data/src/core/lib/resolver/resolver_registry.cc +1 -1
  648. data/src/core/lib/resolver/resolver_registry.h +2 -3
  649. data/src/core/lib/resolver/server_address.cc +11 -15
  650. data/src/core/lib/resolver/server_address.h +4 -8
  651. data/src/core/lib/resource_quota/api.cc +10 -1
  652. data/src/core/lib/resource_quota/api.h +6 -0
  653. data/src/core/lib/resource_quota/arena.cc +19 -1
  654. data/src/core/lib/resource_quota/arena.h +24 -2
  655. data/src/core/lib/resource_quota/memory_quota.cc +143 -19
  656. data/src/core/lib/resource_quota/memory_quota.h +85 -17
  657. data/src/core/lib/resource_quota/periodic_update.cc +78 -0
  658. data/src/core/lib/resource_quota/periodic_update.h +71 -0
  659. data/src/core/lib/security/authorization/evaluate_args.cc +10 -7
  660. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
  661. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  662. data/src/core/lib/security/authorization/matchers.cc +13 -10
  663. data/src/core/lib/security/authorization/rbac_policy.cc +0 -1
  664. data/src/core/{ext/xds → lib/security/certificate_provider}/certificate_provider_factory.h +3 -3
  665. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +60 -0
  666. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +70 -0
  667. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -3
  668. data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -4
  669. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +1 -0
  670. data/src/core/lib/security/credentials/composite/composite_credentials.cc +3 -7
  671. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -4
  672. data/src/core/lib/security/credentials/credentials.h +16 -12
  673. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +33 -27
  674. data/src/core/lib/security/credentials/external/external_account_credentials.cc +34 -24
  675. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
  676. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -6
  677. data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -12
  678. data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -4
  679. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +5 -8
  680. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +35 -32
  681. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -3
  682. data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
  683. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +3 -3
  684. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -4
  685. data/src/core/lib/security/credentials/jwt/json_token.cc +12 -3
  686. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -8
  687. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +14 -15
  688. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
  689. data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
  690. data/src/core/lib/security/credentials/local/local_credentials.h +3 -4
  691. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -20
  692. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -1
  693. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -21
  694. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +3 -4
  695. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +4 -3
  696. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +10 -2
  697. data/src/core/lib/security/credentials/tls/tls_credentials.cc +13 -25
  698. data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -4
  699. data/src/core/lib/security/credentials/tls/tls_utils.cc +3 -1
  700. data/src/core/lib/security/credentials/xds/xds_credentials.cc +13 -30
  701. data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
  702. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -18
  703. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +26 -38
  704. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
  705. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
  706. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +6 -5
  707. data/src/core/lib/security/security_connector/local/local_security_connector.cc +13 -11
  708. data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
  709. data/src/core/lib/security/security_connector/security_connector.h +5 -3
  710. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +5 -4
  711. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +5 -5
  712. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +5 -5
  713. data/src/core/lib/security/transport/auth_filters.h +1 -1
  714. data/src/core/lib/security/transport/client_auth_filter.cc +15 -5
  715. data/src/core/lib/security/transport/secure_endpoint.cc +0 -4
  716. data/src/core/lib/security/transport/security_handshaker.cc +32 -44
  717. data/src/core/lib/security/transport/security_handshaker.h +2 -1
  718. data/src/core/lib/service_config/service_config.h +11 -0
  719. data/src/core/lib/service_config/service_config_impl.cc +98 -97
  720. data/src/core/lib/service_config/service_config_impl.h +11 -13
  721. data/src/core/lib/service_config/service_config_parser.cc +26 -27
  722. data/src/core/lib/service_config/service_config_parser.h +10 -22
  723. data/src/core/lib/slice/percent_encoding.cc +4 -13
  724. data/src/core/lib/slice/slice.cc +10 -4
  725. data/src/core/lib/surface/call.cc +9 -13
  726. data/src/core/lib/surface/channel.cc +9 -8
  727. data/src/core/lib/surface/channel.h +1 -1
  728. data/src/core/lib/surface/completion_queue.cc +16 -30
  729. data/src/core/lib/surface/completion_queue.h +1 -4
  730. data/src/core/lib/surface/completion_queue_factory.cc +5 -0
  731. data/src/core/lib/surface/init.cc +17 -16
  732. data/src/core/lib/surface/init_internally.cc +24 -0
  733. data/src/core/lib/surface/init_internally.h +28 -0
  734. data/src/core/lib/surface/lame_client.cc +2 -3
  735. data/src/core/lib/surface/lame_client.h +1 -1
  736. data/src/core/lib/surface/server.cc +8 -19
  737. data/src/core/lib/surface/server.h +11 -13
  738. data/src/core/lib/surface/validate_metadata.cc +4 -14
  739. data/src/core/lib/surface/version.cc +2 -2
  740. data/src/core/lib/transport/bdp_estimator.cc +1 -3
  741. data/src/core/lib/transport/connectivity_state.cc +0 -1
  742. data/src/core/lib/transport/connectivity_state.h +1 -1
  743. data/src/core/lib/transport/error_utils.cc +0 -36
  744. data/src/core/lib/transport/handshaker.cc +7 -9
  745. data/src/core/lib/transport/handshaker.h +4 -5
  746. data/src/core/lib/transport/handshaker_factory.h +2 -3
  747. data/src/core/lib/transport/handshaker_registry.cc +2 -1
  748. data/src/core/lib/transport/handshaker_registry.h +2 -4
  749. data/src/core/lib/transport/http_connect_handshaker.cc +16 -16
  750. data/src/core/lib/transport/metadata_batch.cc +7 -3
  751. data/src/core/lib/transport/metadata_batch.h +61 -14
  752. data/src/core/lib/transport/parsed_metadata.h +4 -3
  753. data/src/core/lib/transport/status_conversion.cc +1 -3
  754. data/src/core/lib/transport/tcp_connect_handshaker.cc +20 -22
  755. data/src/core/lib/transport/transport.h +0 -8
  756. data/src/core/lib/transport/transport_impl.h +0 -1
  757. data/src/core/plugin_registry/grpc_plugin_registry.cc +23 -46
  758. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +13 -25
  759. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +40 -21
  760. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -1
  761. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +14 -7
  762. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +1 -1
  763. data/src/core/tsi/fake_transport_security.cc +53 -30
  764. data/src/core/tsi/local_transport_security.cc +9 -5
  765. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +10 -1
  766. data/src/core/tsi/ssl_transport_security.cc +47 -23
  767. data/src/core/tsi/transport_security.cc +18 -6
  768. data/src/core/tsi/transport_security.h +2 -1
  769. data/src/core/tsi/transport_security_interface.h +17 -5
  770. data/src/ruby/ext/grpc/extconf.rb +2 -0
  771. data/src/ruby/ext/grpc/rb_loader.c +6 -2
  772. data/src/ruby/lib/grpc/version.rb +1 -1
  773. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
  774. data/src/ruby/spec/channel_spec.rb +5 -0
  775. data/src/ruby/spec/generic/server_interceptors_spec.rb +1 -1
  776. data/src/ruby/spec/user_agent_spec.rb +1 -1
  777. data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
  778. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
  779. data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
  780. data/third_party/upb/upb/arena.c +277 -0
  781. data/third_party/upb/upb/arena.h +225 -0
  782. data/third_party/upb/upb/array.c +114 -0
  783. data/third_party/upb/upb/array.h +83 -0
  784. data/third_party/upb/upb/collections.h +36 -0
  785. data/third_party/upb/upb/decode.c +161 -65
  786. data/third_party/upb/upb/decode.h +1 -0
  787. data/third_party/upb/upb/decode_fast.c +1 -1
  788. data/third_party/upb/upb/def.c +10 -2
  789. data/third_party/upb/upb/def.h +8 -1
  790. data/third_party/upb/upb/def.hpp +7 -4
  791. data/third_party/upb/upb/encode.c +29 -20
  792. data/third_party/upb/upb/encode.h +16 -6
  793. data/third_party/upb/upb/extension_registry.c +93 -0
  794. data/third_party/upb/upb/extension_registry.h +84 -0
  795. data/third_party/upb/upb/{decode_internal.h → internal/decode.h} +5 -5
  796. data/third_party/upb/upb/internal/table.h +385 -0
  797. data/third_party/upb/upb/{upb_internal.h → internal/upb.h} +3 -3
  798. data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
  799. data/third_party/upb/upb/json_decode.c +1512 -0
  800. data/third_party/upb/upb/json_decode.h +47 -0
  801. data/third_party/upb/upb/json_encode.c +7 -3
  802. data/third_party/upb/upb/json_encode.h +6 -3
  803. data/third_party/upb/upb/map.c +108 -0
  804. data/third_party/upb/upb/map.h +117 -0
  805. data/third_party/upb/upb/message_value.h +66 -0
  806. data/third_party/upb/upb/mini_table.c +1147 -0
  807. data/third_party/upb/upb/mini_table.h +189 -0
  808. data/third_party/upb/upb/mini_table.hpp +112 -0
  809. data/third_party/upb/upb/msg.c +2 -62
  810. data/third_party/upb/upb/msg.h +2 -45
  811. data/third_party/upb/upb/msg_internal.h +28 -22
  812. data/third_party/upb/upb/port_def.inc +2 -1
  813. data/third_party/upb/upb/port_undef.inc +1 -0
  814. data/third_party/upb/upb/reflection.c +2 -159
  815. data/third_party/upb/upb/reflection.h +2 -112
  816. data/third_party/upb/upb/status.c +86 -0
  817. data/third_party/upb/upb/status.h +66 -0
  818. data/third_party/upb/upb/table.c +2 -2
  819. data/third_party/upb/upb/table_internal.h +3 -352
  820. data/third_party/upb/upb/text_encode.c +3 -2
  821. data/third_party/upb/upb/upb.c +4 -290
  822. data/third_party/upb/upb/upb.h +7 -196
  823. metadata +117 -51
  824. data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
  825. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +0 -190
  826. data/src/core/ext/filters/client_channel/lb_policy_registry.h +0 -70
  827. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -90
  828. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +0 -55
  829. data/src/core/ext/xds/certificate_provider_registry.cc +0 -103
  830. data/src/core/ext/xds/certificate_provider_registry.h +0 -59
  831. data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +0 -123
  832. data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +0 -70
  833. data/src/core/lib/event_engine/promise.h +0 -69
  834. data/src/core/lib/gpr/env_windows.cc +0 -74
  835. data/src/core/lib/gpr/string_windows.h +0 -32
  836. data/src/core/lib/iomgr/error_internal.h +0 -66
  837. data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
  838. data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
  839. data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
  840. data/src/core/lib/iomgr/executor/threadpool.h +0 -150
  841. data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
  842. data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
  843. data/src/core/lib/profiling/basic_timers.cc +0 -295
  844. data/src/core/lib/profiling/stap_timers.cc +0 -50
  845. data/src/core/lib/profiling/timers.h +0 -94
  846. data/src/core/lib/promise/detail/switch.h +0 -1455
@@ -40,17 +40,8 @@
40
40
  /// See https://github.com/grpc/grpc/blob/master/doc/core/grpc-error.md for a
41
41
  /// full write up of this object.
42
42
 
43
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
44
-
45
43
  typedef absl::Status grpc_error_handle;
46
44
 
47
- #else // GRPC_ERROR_IS_ABSEIL_STATUS
48
-
49
- typedef struct grpc_error grpc_error;
50
- typedef grpc_error* grpc_error_handle;
51
-
52
- #endif // GRPC_ERROR_IS_ABSEIL_STATUS
53
-
54
45
  typedef enum {
55
46
  /// 'errno' from the operating system
56
47
  GRPC_ERROR_INT_ERRNO =
@@ -152,8 +143,6 @@ std::string grpc_error_std_string(grpc_error_handle error);
152
143
  void grpc_disable_error_creation();
153
144
  void grpc_enable_error_creation();
154
145
 
155
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
156
-
157
146
  #define GRPC_ERROR_NONE absl::OkStatus()
158
147
  #define GRPC_ERROR_OOM absl::Status(absl::ResourceExhaustedError(""))
159
148
  #define GRPC_ERROR_CANCELLED absl::CancelledError()
@@ -225,140 +214,6 @@ absl::Status grpc_wsa_error(const grpc_core::DebugLocation& location, int err,
225
214
  #define GRPC_WSA_ERROR(err, call_name) \
226
215
  grpc_wsa_error(DEBUG_LOCATION, err, call_name)
227
216
 
228
- #else // GRPC_ERROR_IS_ABSEIL_STATUS
229
-
230
- /// The following "special" errors can be propagated without allocating memory.
231
- /// They are always even so that other code (particularly combiner locks,
232
- /// polling engines) can safely use the lower bit for themselves.
233
-
234
- #define GRPC_ERROR_NONE ((grpc_error_handle)NULL)
235
- #define GRPC_ERROR_RESERVED_1 ((grpc_error_handle)1)
236
- #define GRPC_ERROR_OOM ((grpc_error_handle)2)
237
- #define GRPC_ERROR_RESERVED_2 ((grpc_error_handle)3)
238
- #define GRPC_ERROR_CANCELLED ((grpc_error_handle)4)
239
- #define GRPC_ERROR_SPECIAL_MAX GRPC_ERROR_CANCELLED
240
-
241
- #define GRPC_ERROR_IS_NONE(err) ((err) == GRPC_ERROR_NONE)
242
-
243
- inline bool grpc_error_is_special(grpc_error_handle err) {
244
- return err <= GRPC_ERROR_SPECIAL_MAX;
245
- }
246
-
247
- #ifndef NDEBUG
248
- grpc_error_handle grpc_error_do_ref(grpc_error_handle err, const char* file,
249
- int line);
250
- void grpc_error_do_unref(grpc_error_handle err, const char* file, int line);
251
- inline grpc_error_handle grpc_error_ref(grpc_error_handle err, const char* file,
252
- int line) {
253
- if (grpc_error_is_special(err)) return err;
254
- return grpc_error_do_ref(err, file, line);
255
- }
256
- inline void grpc_error_unref(grpc_error_handle err, const char* file,
257
- int line) {
258
- if (grpc_error_is_special(err)) return;
259
- grpc_error_do_unref(err, file, line);
260
- }
261
- #define GRPC_ERROR_REF(err) grpc_error_ref(err, __FILE__, __LINE__)
262
- #define GRPC_ERROR_UNREF(err) grpc_error_unref(err, __FILE__, __LINE__)
263
- #else
264
- grpc_error_handle grpc_error_do_ref(grpc_error_handle err);
265
- void grpc_error_do_unref(grpc_error_handle err);
266
- inline grpc_error_handle grpc_error_ref(grpc_error_handle err) {
267
- if (grpc_error_is_special(err)) return err;
268
- return grpc_error_do_ref(err);
269
- }
270
- inline void grpc_error_unref(grpc_error_handle err) {
271
- if (grpc_error_is_special(err)) return;
272
- grpc_error_do_unref(err);
273
- }
274
- #define GRPC_ERROR_REF(err) grpc_error_ref(err)
275
- #define GRPC_ERROR_UNREF(err) grpc_error_unref(err)
276
- #endif
277
-
278
- /// Create an error - but use GRPC_ERROR_CREATE instead
279
- grpc_error_handle grpc_error_create(const char* file, int line,
280
- const grpc_slice& desc,
281
- grpc_error_handle* referencing,
282
- size_t num_referencing);
283
- /// Create an error (this is the preferred way of generating an error that is
284
- /// not due to a system call - for system calls, use GRPC_OS_ERROR or
285
- /// GRPC_WSA_ERROR as appropriate)
286
- /// \a referencing is an array of num_referencing elements indicating one or
287
- /// more errors that are believed to have contributed to this one
288
- /// err = grpc_error_create(x, y, z, r, nr) is equivalent to:
289
- /// err = grpc_error_create(x, y, z, NULL, 0);
290
- /// for (i=0; i<nr; i++) err = grpc_error_add_child(err, r[i]);
291
- #define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc) \
292
- grpc_error_create(__FILE__, __LINE__, grpc_slice_from_static_string(desc), \
293
- NULL, 0)
294
- #define GRPC_ERROR_CREATE_FROM_COPIED_STRING(desc) \
295
- grpc_error_create(__FILE__, __LINE__, grpc_slice_from_copied_string(desc), \
296
- NULL, 0)
297
- #define GRPC_ERROR_CREATE_FROM_CPP_STRING(desc) \
298
- grpc_error_create(__FILE__, __LINE__, grpc_slice_from_cpp_string(desc), \
299
- NULL, 0)
300
- #define GRPC_ERROR_CREATE_FROM_STRING_VIEW(desc) \
301
- grpc_error_create( \
302
- __FILE__, __LINE__, \
303
- grpc_slice_from_copied_buffer((desc).data(), (desc).size()), NULL, 0)
304
-
305
- // Create an error that references some other errors. This function adds a
306
- // reference to each error in errs - it does not consume an existing reference
307
- #define GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(desc, errs, count) \
308
- grpc_error_create(__FILE__, __LINE__, grpc_slice_from_static_string(desc), \
309
- errs, count)
310
- #define GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(desc, errs, count) \
311
- grpc_error_create(__FILE__, __LINE__, grpc_slice_from_copied_string(desc), \
312
- errs, count)
313
-
314
- #define GRPC_ERROR_CREATE_FROM_VECTOR(desc, error_list) \
315
- grpc_error_create_from_vector( \
316
- __FILE__, __LINE__, grpc_slice_from_static_string, desc, error_list)
317
- #define GRPC_ERROR_CREATE_FROM_VECTOR_AND_CPP_STRING(desc, error_list) \
318
- grpc_error_create_from_vector(__FILE__, __LINE__, \
319
- grpc_slice_from_cpp_string, desc, error_list)
320
-
321
- // Consumes all the errors in the vector and forms a referencing error from
322
- // them. If the vector is empty, return GRPC_ERROR_NONE.
323
- template <typename VectorType, typename StringType,
324
- typename SliceFromStringFunction>
325
- static grpc_error_handle grpc_error_create_from_vector(
326
- const char* file, int line,
327
- SliceFromStringFunction slice_from_string_function, StringType desc,
328
- VectorType* error_list) {
329
- grpc_error_handle error = GRPC_ERROR_NONE;
330
- if (error_list->size() != 0) {
331
- error = grpc_error_create(file, line,
332
- slice_from_string_function(std::move(desc)),
333
- error_list->data(), error_list->size());
334
- // Remove refs to all errors in error_list.
335
- for (size_t i = 0; i < error_list->size(); i++) {
336
- GRPC_ERROR_UNREF((*error_list)[i]);
337
- }
338
- error_list->clear();
339
- }
340
- return error;
341
- }
342
-
343
- grpc_error_handle grpc_os_error(const char* file, int line, int err,
344
- const char* call_name) GRPC_MUST_USE_RESULT;
345
-
346
- inline grpc_error_handle grpc_assert_never_ok(grpc_error_handle error) {
347
- GPR_ASSERT(!GRPC_ERROR_IS_NONE(error));
348
- return error;
349
- }
350
-
351
- /// create an error associated with errno!=0 (an 'operating system' error)
352
- #define GRPC_OS_ERROR(err, call_name) \
353
- grpc_assert_never_ok(grpc_os_error(__FILE__, __LINE__, err, call_name))
354
- grpc_error_handle grpc_wsa_error(const char* file, int line, int err,
355
- const char* call_name) GRPC_MUST_USE_RESULT;
356
- /// windows only: create an error associated with WSAGetLastError()!=0
357
- #define GRPC_WSA_ERROR(err, call_name) \
358
- grpc_wsa_error(__FILE__, __LINE__, err, call_name)
359
-
360
- #endif // GRPC_ERROR_IS_ABSEIL_STATUS
361
-
362
217
  grpc_error_handle grpc_error_set_int(grpc_error_handle src,
363
218
  grpc_error_ints which,
364
219
  intptr_t value) GRPC_MUST_USE_RESULT;
@@ -48,12 +48,7 @@ grpc_error_handle grpc_error_create_from_cferror(const char* file, int line,
48
48
  absl::StrFormat("%s (error domain:%s, code:%ld, description:%s)",
49
49
  custom_desc, buf_domain, code, buf_desc);
50
50
  CFRelease(desc);
51
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
52
51
  return StatusCreate(absl::StatusCode::kUnknown, error_msg,
53
52
  grpc_core::DebugLocation(file, line), {});
54
- #else
55
- return grpc_error_create(
56
- file, line, grpc_slice_from_copied_string(error_msg.c_str()), NULL, 0);
57
- #endif
58
53
  }
59
54
  #endif /* GRPC_CFSTREAM */
@@ -57,7 +57,6 @@
57
57
  #include "src/core/lib/iomgr/iomgr_internal.h"
58
58
  #include "src/core/lib/iomgr/lockfree_event.h"
59
59
  #include "src/core/lib/iomgr/wakeup_fd_posix.h"
60
- #include "src/core/lib/profiling/timers.h"
61
60
 
62
61
  static grpc_wakeup_fd global_wakeup_fd;
63
62
 
@@ -586,25 +585,20 @@ static void pollset_destroy(grpc_pollset* pollset) {
586
585
  }
587
586
 
588
587
  static grpc_error_handle pollset_kick_all(grpc_pollset* pollset) {
589
- GPR_TIMER_SCOPE("pollset_kick_all", 0);
590
588
  grpc_error_handle error = GRPC_ERROR_NONE;
591
589
  if (pollset->root_worker != nullptr) {
592
590
  grpc_pollset_worker* worker = pollset->root_worker;
593
591
  do {
594
- GRPC_STATS_INC_POLLSET_KICK();
595
592
  switch (worker->state) {
596
593
  case KICKED:
597
- GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
598
594
  break;
599
595
  case UNKICKED:
600
596
  SET_KICK_STATE(worker, KICKED);
601
597
  if (worker->initialized_cv) {
602
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
603
598
  gpr_cv_signal(&worker->cv);
604
599
  }
605
600
  break;
606
601
  case DESIGNATED_POLLER:
607
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
608
602
  SET_KICK_STATE(worker, KICKED);
609
603
  append_error(&error, grpc_wakeup_fd_wakeup(&global_wakeup_fd),
610
604
  "pollset_kick_all");
@@ -622,7 +616,6 @@ static grpc_error_handle pollset_kick_all(grpc_pollset* pollset) {
622
616
  static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
623
617
  if (pollset->shutdown_closure != nullptr && pollset->root_worker == nullptr &&
624
618
  pollset->begin_refs == 0) {
625
- GPR_TIMER_MARK("pollset_finish_shutdown", 0);
626
619
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, pollset->shutdown_closure,
627
620
  GRPC_ERROR_NONE);
628
621
  pollset->shutdown_closure = nullptr;
@@ -630,7 +623,6 @@ static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
630
623
  }
631
624
 
632
625
  static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
633
- GPR_TIMER_SCOPE("pollset_shutdown", 0);
634
626
  GPR_ASSERT(pollset->shutdown_closure == nullptr);
635
627
  GPR_ASSERT(!pollset->shutting_down);
636
628
  pollset->shutdown_closure = closure;
@@ -641,7 +633,7 @@ static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
641
633
 
642
634
  static int poll_deadline_to_millis_timeout(grpc_core::Timestamp millis) {
643
635
  if (millis == grpc_core::Timestamp::InfFuture()) return -1;
644
- int64_t delta = (millis - grpc_core::ExecCtx::Get()->Now()).millis();
636
+ int64_t delta = (millis - grpc_core::Timestamp::Now()).millis();
645
637
  if (delta > INT_MAX) {
646
638
  return INT_MAX;
647
639
  } else if (delta < 0) {
@@ -660,8 +652,6 @@ static int poll_deadline_to_millis_timeout(grpc_core::Timestamp millis) {
660
652
  called by g_active_poller thread. So there is no need for synchronization
661
653
  when accessing fields in g_epoll_set */
662
654
  static grpc_error_handle process_epoll_events(grpc_pollset* /*pollset*/) {
663
- GPR_TIMER_SCOPE("process_epoll_events", 0);
664
-
665
655
  static const char* err_desc = "process_events";
666
656
  grpc_error_handle error = GRPC_ERROR_NONE;
667
657
  long num_events = gpr_atm_acq_load(&g_epoll_set.num_events);
@@ -713,15 +703,12 @@ static grpc_error_handle process_epoll_events(grpc_pollset* /*pollset*/) {
713
703
  no need for any synchronization when accesing fields in g_epoll_set */
714
704
  static grpc_error_handle do_epoll_wait(grpc_pollset* ps,
715
705
  grpc_core::Timestamp deadline) {
716
- GPR_TIMER_SCOPE("do_epoll_wait", 0);
717
-
718
706
  int r;
719
707
  int timeout = poll_deadline_to_millis_timeout(deadline);
720
708
  if (timeout != 0) {
721
709
  GRPC_SCHEDULING_START_BLOCKING_REGION;
722
710
  }
723
711
  do {
724
- GRPC_STATS_INC_SYSCALL_POLL();
725
712
  r = epoll_wait(g_epoll_set.epfd, g_epoll_set.events, MAX_EPOLL_EVENTS,
726
713
  timeout);
727
714
  } while (r < 0 && errno == EINTR);
@@ -731,8 +718,6 @@ static grpc_error_handle do_epoll_wait(grpc_pollset* ps,
731
718
 
732
719
  if (r < 0) return GRPC_OS_ERROR(errno, "epoll_wait");
733
720
 
734
- GRPC_STATS_INC_POLL_EVENTS_RETURNED(r);
735
-
736
721
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
737
722
  gpr_log(GPR_INFO, "ps: %p poll got %d events", ps, r);
738
723
  }
@@ -746,7 +731,6 @@ static grpc_error_handle do_epoll_wait(grpc_pollset* ps,
746
731
  static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
747
732
  grpc_pollset_worker** worker_hdl,
748
733
  grpc_core::Timestamp deadline) {
749
- GPR_TIMER_SCOPE("begin_worker", 0);
750
734
  if (worker_hdl != nullptr) *worker_hdl = worker;
751
735
  worker->initialized_cv = false;
752
736
  SET_KICK_STATE(worker, UNKICKED);
@@ -869,7 +853,6 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
869
853
 
870
854
  static bool check_neighborhood_for_available_poller(
871
855
  pollset_neighborhood* neighborhood) {
872
- GPR_TIMER_SCOPE("check_neighborhood_for_available_poller", 0);
873
856
  bool found_worker = false;
874
857
  do {
875
858
  grpc_pollset* inspect = neighborhood->active_root;
@@ -892,8 +875,6 @@ static bool check_neighborhood_for_available_poller(
892
875
  }
893
876
  SET_KICK_STATE(inspect_worker, DESIGNATED_POLLER);
894
877
  if (inspect_worker->initialized_cv) {
895
- GPR_TIMER_MARK("signal worker", 0);
896
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
897
878
  gpr_cv_signal(&inspect_worker->cv);
898
879
  }
899
880
  } else {
@@ -934,7 +915,6 @@ static bool check_neighborhood_for_available_poller(
934
915
 
935
916
  static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
936
917
  grpc_pollset_worker** worker_hdl) {
937
- GPR_TIMER_SCOPE("end_worker", 0);
938
918
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
939
919
  gpr_log(GPR_INFO, "PS:%p END_WORKER:%p", pollset, worker);
940
920
  }
@@ -952,7 +932,6 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
952
932
  GPR_ASSERT(worker->next->initialized_cv);
953
933
  gpr_atm_no_barrier_store(&g_active_poller, (gpr_atm)worker->next);
954
934
  SET_KICK_STATE(worker->next, DESIGNATED_POLLER);
955
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
956
935
  gpr_cv_signal(&worker->next->cv);
957
936
  if (grpc_core::ExecCtx::Get()->HasWork()) {
958
937
  gpr_mu_unlock(&pollset->mu);
@@ -1014,7 +993,6 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
1014
993
  static grpc_error_handle pollset_work(grpc_pollset* ps,
1015
994
  grpc_pollset_worker** worker_hdl,
1016
995
  grpc_core::Timestamp deadline) {
1017
- GPR_TIMER_SCOPE("pollset_work", 0);
1018
996
  grpc_pollset_worker worker;
1019
997
  grpc_error_handle error = GRPC_ERROR_NONE;
1020
998
  static const char* err_desc = "pollset_work";
@@ -1064,8 +1042,6 @@ static grpc_error_handle pollset_work(grpc_pollset* ps,
1064
1042
 
1065
1043
  static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1066
1044
  grpc_pollset_worker* specific_worker) {
1067
- GPR_TIMER_SCOPE("pollset_kick", 0);
1068
- GRPC_STATS_INC_POLLSET_KICK();
1069
1045
  grpc_error_handle ret_err = GRPC_ERROR_NONE;
1070
1046
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1071
1047
  std::vector<std::string> log;
@@ -1091,7 +1067,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1091
1067
  if (g_current_thread_pollset != pollset) {
1092
1068
  grpc_pollset_worker* root_worker = pollset->root_worker;
1093
1069
  if (root_worker == nullptr) {
1094
- GRPC_STATS_INC_POLLSET_KICKED_WITHOUT_POLLER();
1095
1070
  pollset->kicked_without_poller = true;
1096
1071
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1097
1072
  gpr_log(GPR_INFO, " .. kicked_without_poller");
@@ -1100,14 +1075,12 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1100
1075
  }
1101
1076
  grpc_pollset_worker* next_worker = root_worker->next;
1102
1077
  if (root_worker->state == KICKED) {
1103
- GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
1104
1078
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1105
1079
  gpr_log(GPR_INFO, " .. already kicked %p", root_worker);
1106
1080
  }
1107
1081
  SET_KICK_STATE(root_worker, KICKED);
1108
1082
  goto done;
1109
1083
  } else if (next_worker->state == KICKED) {
1110
- GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
1111
1084
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1112
1085
  gpr_log(GPR_INFO, " .. already kicked %p", next_worker);
1113
1086
  }
@@ -1118,7 +1091,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1118
1091
  root_worker ==
1119
1092
  reinterpret_cast<grpc_pollset_worker*>(
1120
1093
  gpr_atm_no_barrier_load(&g_active_poller))) {
1121
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
1122
1094
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1123
1095
  gpr_log(GPR_INFO, " .. kicked %p", root_worker);
1124
1096
  }
@@ -1126,7 +1098,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1126
1098
  ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
1127
1099
  goto done;
1128
1100
  } else if (next_worker->state == UNKICKED) {
1129
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
1130
1101
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1131
1102
  gpr_log(GPR_INFO, " .. kicked %p", next_worker);
1132
1103
  }
@@ -1144,12 +1115,10 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1144
1115
  }
1145
1116
  SET_KICK_STATE(root_worker, KICKED);
1146
1117
  if (root_worker->initialized_cv) {
1147
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
1148
1118
  gpr_cv_signal(&root_worker->cv);
1149
1119
  }
1150
1120
  goto done;
1151
1121
  } else {
1152
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
1153
1122
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1154
1123
  gpr_log(GPR_INFO, " .. non-root poller %p (root=%p)", next_worker,
1155
1124
  root_worker);
@@ -1159,13 +1128,11 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1159
1128
  goto done;
1160
1129
  }
1161
1130
  } else {
1162
- GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
1163
1131
  GPR_ASSERT(next_worker->state == KICKED);
1164
1132
  SET_KICK_STATE(next_worker, KICKED);
1165
1133
  goto done;
1166
1134
  }
1167
1135
  } else {
1168
- GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
1169
1136
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1170
1137
  gpr_log(GPR_INFO, " .. kicked while waking up");
1171
1138
  }
@@ -1181,7 +1148,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1181
1148
  }
1182
1149
  goto done;
1183
1150
  } else if (g_current_thread_worker == specific_worker) {
1184
- GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
1185
1151
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1186
1152
  gpr_log(GPR_INFO, " .. mark %p kicked", specific_worker);
1187
1153
  }
@@ -1190,7 +1156,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1190
1156
  } else if (specific_worker ==
1191
1157
  reinterpret_cast<grpc_pollset_worker*>(
1192
1158
  gpr_atm_no_barrier_load(&g_active_poller))) {
1193
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
1194
1159
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1195
1160
  gpr_log(GPR_INFO, " .. kick active poller");
1196
1161
  }
@@ -1198,7 +1163,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1198
1163
  ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
1199
1164
  goto done;
1200
1165
  } else if (specific_worker->initialized_cv) {
1201
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
1202
1166
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1203
1167
  gpr_log(GPR_INFO, " .. kick waiting worker");
1204
1168
  }
@@ -1206,7 +1170,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1206
1170
  gpr_cv_signal(&specific_worker->cv);
1207
1171
  goto done;
1208
1172
  } else {
1209
- GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
1210
1173
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1211
1174
  gpr_log(GPR_INFO, " .. kick non-waiting worker");
1212
1175
  }
@@ -18,6 +18,8 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
+ #include <grpc/support/sync.h>
22
+
21
23
  #include "src/core/lib/iomgr/port.h"
22
24
 
23
25
  #ifdef GRPC_POSIX_SOCKET_EV_POLL
@@ -46,7 +48,6 @@
46
48
  #include "src/core/lib/iomgr/ev_poll_posix.h"
47
49
  #include "src/core/lib/iomgr/iomgr_internal.h"
48
50
  #include "src/core/lib/iomgr/wakeup_fd_posix.h"
49
- #include "src/core/lib/profiling/timers.h"
50
51
 
51
52
  #define GRPC_POLLSET_KICK_BROADCAST ((grpc_pollset_worker*)1)
52
53
 
@@ -360,9 +361,7 @@ static void unref_by(grpc_fd* fd, int n) {
360
361
  if (fd->shutdown) {
361
362
  GRPC_ERROR_UNREF(fd->shutdown_error);
362
363
  }
363
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
364
364
  fd->shutdown_error.~Status();
365
- #endif
366
365
  gpr_free(fd);
367
366
  } else {
368
367
  GPR_ASSERT(old > n);
@@ -377,9 +376,7 @@ static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
377
376
  gpr_mu_init(&r->mu);
378
377
  gpr_atm_rel_store(&r->refst, 1);
379
378
  r->shutdown = 0;
380
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
381
379
  new (&r->shutdown_error) absl::Status();
382
- #endif
383
380
  r->read_closure = CLOSURE_NOT_READY;
384
381
  r->write_closure = CLOSURE_NOT_READY;
385
382
  r->fd = fd;
@@ -619,7 +616,6 @@ static uint32_t fd_begin_poll(grpc_fd* fd, grpc_pollset* pollset,
619
616
 
620
617
  /* if we are shutdown, then don't add to the watcher set */
621
618
  if (fd->shutdown) {
622
- watcher->fd = nullptr;
623
619
  watcher->pollset = nullptr;
624
620
  watcher->worker = nullptr;
625
621
  gpr_mu_unlock(&fd->mu);
@@ -660,12 +656,17 @@ static void fd_end_poll(grpc_fd_watcher* watcher, int got_read, int got_write) {
660
656
  int was_polling = 0;
661
657
  int kick = 0;
662
658
  grpc_fd* fd = watcher->fd;
663
-
664
659
  if (fd == nullptr) {
665
660
  return;
666
661
  }
667
662
 
668
663
  gpr_mu_lock(&fd->mu);
664
+ if (watcher->pollset == nullptr) {
665
+ watcher->fd = nullptr;
666
+ gpr_mu_unlock(&fd->mu);
667
+ GRPC_FD_UNREF(fd, "multipoller_start");
668
+ return;
669
+ }
669
670
 
670
671
  if (watcher == fd->read_watcher) {
671
672
  /* remove read watcher, kick if we still need a read */
@@ -767,14 +768,11 @@ static void kick_append_error(grpc_error_handle* composite,
767
768
  static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
768
769
  grpc_pollset_worker* specific_worker,
769
770
  uint32_t flags) {
770
- GPR_TIMER_SCOPE("pollset_kick_ext", 0);
771
771
  grpc_error_handle error = GRPC_ERROR_NONE;
772
- GRPC_STATS_INC_POLLSET_KICK();
773
772
 
774
773
  /* pollset->mu already held */
775
774
  if (specific_worker != nullptr) {
776
775
  if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
777
- GPR_TIMER_SCOPE("pollset_kick_ext.broadcast", 0);
778
776
  GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
779
777
  for (specific_worker = p->root_worker.next;
780
778
  specific_worker != &p->root_worker;
@@ -784,7 +782,6 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
784
782
  }
785
783
  p->kicked_without_pollers = true;
786
784
  } else if (g_current_thread_worker != specific_worker) {
787
- GPR_TIMER_MARK("different_thread_worker", 0);
788
785
  if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
789
786
  specific_worker->reevaluate_polling_on_wakeup = true;
790
787
  }
@@ -792,7 +789,6 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
792
789
  kick_append_error(&error,
793
790
  grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd));
794
791
  } else if ((flags & GRPC_POLLSET_CAN_KICK_SELF) != 0) {
795
- GPR_TIMER_MARK("kick_yoself", 0);
796
792
  if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
797
793
  specific_worker->reevaluate_polling_on_wakeup = true;
798
794
  }
@@ -802,11 +798,9 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
802
798
  }
803
799
  } else if (g_current_thread_poller != p) {
804
800
  GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
805
- GPR_TIMER_MARK("kick_anonymous", 0);
806
801
  specific_worker = pop_front_worker(p);
807
802
  if (specific_worker != nullptr) {
808
803
  if (g_current_thread_worker == specific_worker) {
809
- GPR_TIMER_MARK("kick_anonymous_not_self", 0);
810
804
  push_back_worker(p, specific_worker);
811
805
  specific_worker = pop_front_worker(p);
812
806
  if ((flags & GRPC_POLLSET_CAN_KICK_SELF) == 0 &&
@@ -816,13 +810,11 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
816
810
  }
817
811
  }
818
812
  if (specific_worker != nullptr) {
819
- GPR_TIMER_MARK("finally_kick", 0);
820
813
  push_back_worker(p, specific_worker);
821
814
  kick_append_error(
822
815
  &error, grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd));
823
816
  }
824
817
  } else {
825
- GPR_TIMER_MARK("kicked_no_pollers", 0);
826
818
  p->kicked_without_pollers = true;
827
819
  }
828
820
  }
@@ -912,7 +904,6 @@ static void work_combine_error(grpc_error_handle* composite,
912
904
  static grpc_error_handle pollset_work(grpc_pollset* pollset,
913
905
  grpc_pollset_worker** worker_hdl,
914
906
  grpc_core::Timestamp deadline) {
915
- GPR_TIMER_SCOPE("pollset_work", 0);
916
907
  grpc_pollset_worker worker;
917
908
  if (worker_hdl) *worker_hdl = &worker;
918
909
  grpc_error_handle error = GRPC_ERROR_NONE;
@@ -946,7 +937,6 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
946
937
  worker.kicked_specifically = 0;
947
938
  /* If we're shutting down then we don't execute any extended work */
948
939
  if (pollset->shutting_down) {
949
- GPR_TIMER_MARK("pollset_work.shutting_down", 0);
950
940
  goto done;
951
941
  }
952
942
  /* Start polling, and keep doing so while we're being asked to
@@ -957,13 +947,12 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
957
947
  while (keep_polling) {
958
948
  keep_polling = 0;
959
949
  if (!pollset->kicked_without_pollers ||
960
- deadline <= grpc_core::ExecCtx::Get()->Now()) {
950
+ deadline <= grpc_core::Timestamp::Now()) {
961
951
  if (!added_worker) {
962
952
  push_front_worker(pollset, &worker);
963
953
  added_worker = 1;
964
954
  g_current_thread_worker = &worker;
965
955
  }
966
- GPR_TIMER_SCOPE("maybe_work_and_unlock", 0);
967
956
  #define POLLOUT_CHECK (POLLOUT | POLLHUP | POLLERR)
968
957
  #define POLLIN_CHECK (POLLIN | POLLHUP | POLLERR)
969
958
 
@@ -1014,13 +1003,14 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1014
1003
  grpc_fd* fd = watchers[i].fd;
1015
1004
  pfds[i].events = static_cast<short>(
1016
1005
  fd_begin_poll(fd, pollset, &worker, POLLIN, POLLOUT, &watchers[i]));
1017
- GRPC_FD_UNREF(fd, "multipoller_start");
1006
+ if (watchers[i].pollset != nullptr) {
1007
+ GRPC_FD_UNREF(fd, "multipoller_start");
1008
+ }
1018
1009
  }
1019
1010
 
1020
1011
  /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
1021
1012
  even going into the blocking annotation if possible */
1022
1013
  GRPC_SCHEDULING_START_BLOCKING_REGION;
1023
- GRPC_STATS_INC_SYSCALL_POLL();
1024
1014
  r = grpc_poll_function(pfds, pfd_count, timeout);
1025
1015
  GRPC_SCHEDULING_END_BLOCKING_REGION;
1026
1016
 
@@ -1034,7 +1024,7 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1034
1024
  }
1035
1025
 
1036
1026
  for (i = 1; i < pfd_count; i++) {
1037
- if (watchers[i].fd == nullptr) {
1027
+ if (watchers[i].pollset == nullptr) {
1038
1028
  fd_end_poll(&watchers[i], 0, 0);
1039
1029
  } else {
1040
1030
  // Wake up all the file descriptors, if we have an invalid one
@@ -1055,7 +1045,11 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1055
1045
  &error, grpc_wakeup_fd_consume_wakeup(&worker.wakeup_fd->fd));
1056
1046
  }
1057
1047
  for (i = 1; i < pfd_count; i++) {
1058
- if (watchers[i].fd == nullptr) {
1048
+ if (watchers[i].pollset == nullptr) {
1049
+ grpc_fd* fd = watchers[i].fd;
1050
+ if (pfds[i].revents & POLLHUP) {
1051
+ gpr_atm_no_barrier_store(&fd->pollhup, 1);
1052
+ }
1059
1053
  fd_end_poll(&watchers[i], 0, 0);
1060
1054
  } else {
1061
1055
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
@@ -1082,7 +1076,6 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1082
1076
 
1083
1077
  locked = 0;
1084
1078
  } else {
1085
- GPR_TIMER_MARK("pollset_work.kicked_without_pollers", 0);
1086
1079
  pollset->kicked_without_pollers = 0;
1087
1080
  }
1088
1081
  /* Finished execution - start cleaning up.
@@ -1152,7 +1145,7 @@ static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
1152
1145
  static int poll_deadline_to_millis_timeout(grpc_core::Timestamp deadline) {
1153
1146
  if (deadline == grpc_core::Timestamp::InfFuture()) return -1;
1154
1147
  if (deadline.is_process_epoch()) return 0;
1155
- int64_t n = (deadline - grpc_core::ExecCtx::Get()->Now()).millis();
1148
+ int64_t n = (deadline - grpc_core::Timestamp::Now()).millis();
1156
1149
  if (n < 0) return 0;
1157
1150
  if (n > INT_MAX) return -1;
1158
1151
  return static_cast<int>(n);
@@ -25,7 +25,6 @@
25
25
 
26
26
  #include "src/core/lib/iomgr/combiner.h"
27
27
  #include "src/core/lib/iomgr/error.h"
28
- #include "src/core/lib/profiling/timers.h"
29
28
 
30
29
  static void exec_ctx_run(grpc_closure* closure) {
31
30
  #ifndef NDEBUG
@@ -37,18 +36,10 @@ static void exec_ctx_run(grpc_closure* closure) {
37
36
  closure->line_initiated);
38
37
  }
39
38
  #endif
40
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
41
39
  grpc_error_handle error =
42
40
  grpc_core::internal::StatusMoveFromHeapPtr(closure->error_data.error);
43
41
  closure->error_data.error = 0;
44
42
  closure->cb(closure->cb_arg, std::move(error));
45
- #else
46
- grpc_error_handle error =
47
- reinterpret_cast<grpc_error_handle>(closure->error_data.error);
48
- closure->error_data.error = 0;
49
- closure->cb(closure->cb_arg, error);
50
- GRPC_ERROR_UNREF(error);
51
- #endif
52
43
  #ifndef NDEBUG
53
44
  if (grpc_trace_closure.enabled()) {
54
45
  gpr_log(GPR_DEBUG, "closure %p finished", closure);
@@ -68,7 +59,6 @@ ApplicationCallbackExecCtx::callback_exec_ctx_;
68
59
 
69
60
  bool ExecCtx::Flush() {
70
61
  bool did_something = false;
71
- GPR_TIMER_SCOPE("grpc_exec_ctx_flush", 0);
72
62
  for (;;) {
73
63
  if (!grpc_closure_list_empty(closure_list_)) {
74
64
  grpc_closure* c = closure_list_.head;
@@ -87,14 +77,6 @@ bool ExecCtx::Flush() {
87
77
  return did_something;
88
78
  }
89
79
 
90
- Timestamp ExecCtx::Now() {
91
- if (!now_is_valid_) {
92
- now_ = Timestamp::FromTimespecRoundDown(gpr_now(GPR_CLOCK_MONOTONIC));
93
- now_is_valid_ = true;
94
- }
95
- return now_;
96
- }
97
-
98
80
  void ExecCtx::Run(const DebugLocation& location, grpc_closure* closure,
99
81
  grpc_error_handle error) {
100
82
  (void)location;
@@ -118,11 +100,7 @@ void ExecCtx::Run(const DebugLocation& location, grpc_closure* closure,
118
100
  closure->run = false;
119
101
  GPR_ASSERT(closure->cb != nullptr);
120
102
  #endif
121
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
122
103
  closure->error_data.error = internal::StatusAllocHeapPtr(error);
123
- #else
124
- closure->error_data.error = reinterpret_cast<intptr_t>(error);
125
- #endif
126
104
  exec_ctx_sched(closure);
127
105
  }
128
106