grpc 1.40.0 → 1.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (827) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +27 -36
  3. data/include/grpc/byte_buffer.h +1 -1
  4. data/include/grpc/byte_buffer_reader.h +1 -1
  5. data/include/grpc/event_engine/endpoint_config.h +6 -11
  6. data/include/grpc/event_engine/event_engine.h +63 -58
  7. data/include/grpc/event_engine/port.h +1 -3
  8. data/include/grpc/event_engine/slice_allocator.h +6 -1
  9. data/include/grpc/fork.h +1 -1
  10. data/include/grpc/grpc.h +10 -4
  11. data/include/grpc/grpc_posix.h +5 -2
  12. data/include/grpc/impl/codegen/atm.h +5 -3
  13. data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
  14. data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
  15. data/include/grpc/impl/codegen/atm_windows.h +2 -0
  16. data/include/grpc/impl/codegen/byte_buffer.h +2 -0
  17. data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
  18. data/include/grpc/impl/codegen/compression_types.h +2 -0
  19. data/include/grpc/impl/codegen/connectivity_state.h +2 -0
  20. data/include/grpc/impl/codegen/fork.h +2 -0
  21. data/include/grpc/impl/codegen/gpr_slice.h +2 -0
  22. data/include/grpc/impl/codegen/gpr_types.h +2 -0
  23. data/include/grpc/impl/codegen/grpc_types.h +4 -5
  24. data/include/grpc/impl/codegen/log.h +2 -0
  25. data/include/grpc/impl/codegen/port_platform.h +26 -22
  26. data/include/grpc/impl/codegen/propagation_bits.h +2 -0
  27. data/include/grpc/impl/codegen/slice.h +2 -0
  28. data/include/grpc/impl/codegen/status.h +2 -0
  29. data/include/grpc/impl/codegen/sync.h +8 -5
  30. data/include/grpc/impl/codegen/sync_abseil.h +2 -0
  31. data/include/grpc/impl/codegen/sync_custom.h +2 -0
  32. data/include/grpc/impl/codegen/sync_generic.h +3 -0
  33. data/include/grpc/impl/codegen/sync_posix.h +4 -2
  34. data/include/grpc/impl/codegen/sync_windows.h +2 -0
  35. data/include/grpc/slice.h +1 -1
  36. data/include/grpc/status.h +1 -1
  37. data/include/grpc/support/atm.h +1 -1
  38. data/include/grpc/support/atm_gcc_atomic.h +1 -1
  39. data/include/grpc/support/atm_gcc_sync.h +1 -1
  40. data/include/grpc/support/atm_windows.h +1 -1
  41. data/include/grpc/support/log.h +1 -1
  42. data/include/grpc/support/port_platform.h +1 -1
  43. data/include/grpc/support/sync.h +1 -1
  44. data/include/grpc/support/sync_abseil.h +1 -1
  45. data/include/grpc/support/sync_custom.h +1 -1
  46. data/include/grpc/support/sync_generic.h +1 -1
  47. data/include/grpc/support/sync_posix.h +1 -1
  48. data/include/grpc/support/sync_windows.h +1 -1
  49. data/include/grpc/support/time.h +2 -2
  50. data/src/core/ext/filters/census/grpc_context.cc +1 -0
  51. data/src/core/ext/filters/client_channel/backend_metric.cc +0 -1
  52. data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
  53. data/src/core/ext/filters/client_channel/channel_connectivity.cc +1 -2
  54. data/src/core/ext/filters/client_channel/client_channel.cc +24 -52
  55. data/src/core/ext/filters/client_channel/client_channel.h +3 -3
  56. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
  57. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
  58. data/src/core/ext/filters/client_channel/client_channel_factory.cc +1 -0
  59. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +8 -1
  60. data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
  61. data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -6
  62. data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -3
  63. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +8 -7
  64. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
  65. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +2 -2
  66. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +2 -8
  67. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -2
  68. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +2 -2
  69. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
  70. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -1
  71. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -23
  72. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +1 -0
  73. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +2 -2
  74. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +2 -8
  75. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +15 -18
  76. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +10 -7
  77. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -8
  78. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +2 -3
  79. data/src/core/ext/filters/client_channel/lb_policy.h +11 -44
  80. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -7
  81. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +2 -10
  82. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -0
  83. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -3
  84. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +6 -5
  85. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +14 -19
  86. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -0
  87. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +2 -2
  88. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +5 -5
  89. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +5 -8
  90. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +2 -3
  91. data/src/core/ext/filters/client_idle/client_idle_filter.cc +36 -30
  92. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +8 -6
  93. data/src/core/ext/filters/fault_injection/service_config_parser.cc +6 -13
  94. data/src/core/ext/filters/http/client/http_client_filter.cc +3 -2
  95. data/src/core/ext/filters/http/client_authority_filter.cc +2 -1
  96. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +2 -1
  97. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +7 -8
  98. data/src/core/ext/filters/http/server/http_server_filter.cc +5 -3
  99. data/src/core/ext/filters/message_size/message_size_filter.cc +9 -13
  100. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  101. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +29 -12
  102. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -0
  103. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -3
  104. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +10 -6
  105. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +2 -3
  106. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +60 -37
  107. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -1
  108. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -6
  109. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -9
  110. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -1
  111. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
  112. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
  113. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +4 -3
  114. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +2 -2
  115. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +24 -30
  116. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -1
  117. data/src/core/ext/transport/chttp2/transport/context_list.h +1 -2
  118. data/src/core/ext/transport/chttp2/transport/flow_control.cc +39 -23
  119. data/src/core/ext/transport/chttp2/transport/flow_control.h +9 -3
  120. data/src/core/ext/transport/chttp2/transport/frame_data.cc +7 -7
  121. data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -0
  122. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -3
  123. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -0
  124. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -4
  125. data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -0
  126. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +3 -5
  127. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -0
  128. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +36 -5
  129. data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -0
  130. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +12 -7
  131. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -0
  132. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
  133. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +272 -666
  134. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +236 -70
  135. data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +107 -0
  136. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
  137. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +69 -0
  138. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +776 -1037
  139. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +48 -169
  140. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +159 -0
  141. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +130 -0
  142. data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +46 -0
  143. data/src/core/ext/transport/chttp2/transport/hpack_utils.h +30 -0
  144. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  145. data/src/core/ext/transport/chttp2/transport/internal.h +2 -2
  146. data/src/core/ext/transport/chttp2/transport/parsing.cc +20 -30
  147. data/src/core/ext/transport/chttp2/transport/popularity_count.h +60 -0
  148. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
  149. data/src/core/ext/transport/chttp2/transport/varint.cc +7 -3
  150. data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
  151. data/src/core/ext/transport/chttp2/transport/writing.cc +32 -28
  152. data/src/core/ext/transport/inproc/inproc_transport.cc +6 -4
  153. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +96 -96
  154. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +221 -89
  155. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +1 -1
  156. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -1
  157. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +3 -3
  158. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +11 -5
  159. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +48 -48
  160. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +151 -61
  161. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +99 -99
  162. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +171 -69
  163. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +15 -15
  164. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +31 -13
  165. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +126 -127
  166. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +229 -101
  167. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +4 -4
  168. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +11 -5
  169. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +23 -23
  170. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +11 -5
  171. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +28 -28
  172. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +71 -29
  173. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
  174. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +11 -5
  175. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +82 -82
  176. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +201 -81
  177. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +24 -24
  178. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +51 -21
  179. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +3 -3
  180. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +11 -5
  181. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +9 -9
  182. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +21 -9
  183. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +62 -62
  184. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +131 -53
  185. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +51 -51
  186. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +81 -33
  187. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +5 -5
  188. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +11 -5
  189. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +62 -62
  190. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +141 -57
  191. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +3 -3
  192. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +11 -5
  193. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +7 -7
  194. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +21 -9
  195. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +8 -8
  196. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +11 -5
  197. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +8 -8
  198. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +11 -5
  199. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +4 -4
  200. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +11 -5
  201. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +16 -16
  202. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +31 -13
  203. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +57 -22
  204. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +174 -17
  205. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +32 -32
  206. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +51 -21
  207. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +3 -3
  208. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -5
  209. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -37
  210. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +61 -25
  211. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +40 -40
  212. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +71 -29
  213. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +9 -9
  214. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +11 -5
  215. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +5 -5
  216. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +21 -9
  217. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +30 -30
  218. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +81 -33
  219. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +41 -29
  220. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +141 -43
  221. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +46 -43
  222. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +88 -29
  223. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +18 -18
  224. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +31 -13
  225. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +281 -277
  226. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +569 -248
  227. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +10 -10
  228. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +31 -13
  229. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +6 -6
  230. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +21 -9
  231. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +3 -3
  232. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +11 -5
  233. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +13 -13
  234. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +51 -21
  235. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +23 -23
  236. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +31 -13
  237. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +9 -9
  238. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +11 -5
  239. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +115 -116
  240. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +191 -77
  241. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +1 -1
  242. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -1
  243. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +46 -32
  244. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +118 -34
  245. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +12 -12
  246. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +31 -13
  247. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +44 -42
  248. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +108 -55
  249. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +2 -2
  250. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +11 -5
  251. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +2 -2
  252. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +11 -5
  253. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +42 -42
  254. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +61 -25
  255. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +2 -2
  256. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +11 -5
  257. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +2 -2
  258. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +11 -5
  259. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +9 -9
  260. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +21 -9
  261. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +2 -2
  262. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +11 -5
  263. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +2 -2
  264. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +11 -5
  265. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +28 -28
  266. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +51 -21
  267. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +8 -8
  268. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +41 -17
  269. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +9 -8
  270. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -9
  271. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +4 -4
  272. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +11 -5
  273. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +4 -4
  274. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +11 -5
  275. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +3 -3
  276. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +11 -5
  277. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +9 -9
  278. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +31 -13
  279. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +10 -10
  280. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +21 -9
  281. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +6 -6
  282. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +21 -9
  283. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +11 -11
  284. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +31 -13
  285. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +15 -15
  286. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +71 -29
  287. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +19 -19
  288. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +51 -21
  289. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +1 -1
  290. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -1
  291. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +6 -6
  292. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +21 -9
  293. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +10 -10
  294. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +31 -13
  295. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +5 -5
  296. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +11 -5
  297. data/src/core/ext/upb-generated/google/api/annotations.upb.c +1 -1
  298. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
  299. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +58 -58
  300. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +111 -45
  301. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +68 -68
  302. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +121 -49
  303. data/src/core/ext/upb-generated/google/api/http.upb.c +18 -18
  304. data/src/core/ext/upb-generated/google/api/http.upb.h +31 -13
  305. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +4 -4
  306. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +11 -5
  307. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +153 -153
  308. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +271 -109
  309. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +4 -4
  310. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +11 -5
  311. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +2 -2
  312. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +11 -5
  313. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
  314. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +31 -13
  315. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +4 -4
  316. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +11 -5
  317. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +19 -19
  318. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +91 -37
  319. data/src/core/ext/upb-generated/google/rpc/status.upb.c +5 -5
  320. data/src/core/ext/upb-generated/google/rpc/status.upb.h +11 -5
  321. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
  322. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -5
  323. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +60 -60
  324. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +101 -41
  325. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +7 -7
  326. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -9
  327. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +5 -5
  328. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +21 -9
  329. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
  330. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +91 -37
  331. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +8 -8
  332. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +31 -13
  333. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +4 -4
  334. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +11 -5
  335. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +1 -1
  336. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -1
  337. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +4 -4
  338. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +11 -5
  339. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +3 -3
  340. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +11 -5
  341. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +13 -13
  342. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +11 -5
  343. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +4 -4
  344. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +11 -5
  345. data/src/core/ext/upb-generated/validate/validate.upb.c +220 -220
  346. data/src/core/ext/upb-generated/validate/validate.upb.h +231 -93
  347. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +3 -3
  348. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +11 -5
  349. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +8 -8
  350. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +21 -9
  351. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +6 -6
  352. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +11 -5
  353. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +5 -5
  354. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +11 -5
  355. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +11 -11
  356. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +21 -9
  357. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +6 -6
  358. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +11 -5
  359. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +384 -382
  360. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +94 -63
  361. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +10 -0
  362. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +30 -19
  363. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +5 -0
  364. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +791 -780
  365. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +96 -100
  366. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +133 -115
  367. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +5 -0
  368. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +178 -173
  369. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +14 -13
  370. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +103 -103
  371. data/src/core/ext/xds/certificate_provider_registry.cc +2 -2
  372. data/src/core/ext/xds/xds_api.cc +788 -910
  373. data/src/core/ext/xds/xds_api.h +16 -33
  374. data/src/core/ext/xds/xds_bootstrap.cc +27 -52
  375. data/src/core/ext/xds/xds_client.cc +69 -30
  376. data/src/core/ext/xds/xds_client_stats.cc +16 -15
  377. data/src/core/ext/xds/xds_client_stats.h +6 -6
  378. data/src/core/ext/xds/xds_http_fault_filter.cc +4 -3
  379. data/src/core/ext/xds/xds_http_fault_filter.h +3 -2
  380. data/src/core/ext/xds/xds_http_filters.cc +1 -0
  381. data/src/core/ext/xds/xds_server_config_fetcher.cc +10 -10
  382. data/src/core/lib/address_utils/parse_address.cc +4 -8
  383. data/src/core/lib/address_utils/sockaddr_utils.cc +2 -2
  384. data/src/core/lib/channel/channel_args.cc +2 -1
  385. data/src/core/lib/channel/channel_stack.cc +5 -3
  386. data/src/core/lib/channel/channel_stack_builder.cc +1 -11
  387. data/src/core/lib/channel/channel_stack_builder.h +0 -8
  388. data/src/core/lib/channel/channel_trace.cc +4 -3
  389. data/src/core/lib/channel/channel_trace.h +1 -0
  390. data/src/core/lib/channel/channelz.cc +40 -36
  391. data/src/core/lib/channel/channelz.h +27 -27
  392. data/src/core/lib/channel/channelz_registry.cc +7 -6
  393. data/src/core/lib/channel/connected_channel.cc +1 -0
  394. data/src/core/lib/channel/handshaker.cc +2 -1
  395. data/src/core/lib/channel/handshaker.h +1 -2
  396. data/src/core/lib/channel/handshaker_factory.h +10 -2
  397. data/src/core/lib/channel/handshaker_registry.cc +15 -70
  398. data/src/core/lib/channel/handshaker_registry.h +29 -12
  399. data/src/core/lib/channel/status_util.h +2 -2
  400. data/src/core/lib/compression/algorithm_metadata.h +1 -0
  401. data/src/core/lib/compression/compression_args.cc +2 -1
  402. data/src/core/lib/compression/compression_internal.cc +2 -4
  403. data/src/core/lib/compression/message_compress.cc +2 -2
  404. data/src/core/lib/compression/stream_compression.cc +2 -1
  405. data/src/core/lib/compression/stream_compression.h +2 -1
  406. data/src/core/lib/compression/stream_compression_gzip.cc +2 -1
  407. data/src/core/lib/compression/stream_compression_identity.cc +2 -1
  408. data/src/core/lib/config/core_configuration.cc +54 -0
  409. data/src/core/lib/config/core_configuration.h +108 -0
  410. data/src/core/lib/debug/stats.h +1 -0
  411. data/src/core/lib/debug/stats_data.cc +2 -1
  412. data/src/core/lib/debug/stats_data.h +1 -0
  413. data/src/core/lib/debug/trace.cc +1 -0
  414. data/src/core/lib/debug/trace.h +2 -1
  415. data/src/core/lib/event_engine/endpoint_config.cc +0 -1
  416. data/src/core/lib/event_engine/event_engine.cc +3 -3
  417. data/src/core/lib/event_engine/sockaddr.cc +3 -3
  418. data/src/core/lib/gpr/alloc.cc +4 -3
  419. data/src/core/lib/gpr/env_linux.cc +1 -2
  420. data/src/core/lib/gpr/env_posix.cc +2 -3
  421. data/src/core/lib/gpr/log.cc +3 -3
  422. data/src/core/lib/gpr/log_android.cc +3 -2
  423. data/src/core/lib/gpr/log_linux.cc +7 -4
  424. data/src/core/lib/gpr/log_posix.cc +6 -3
  425. data/src/core/lib/gpr/string.h +2 -2
  426. data/src/core/lib/gpr/sync.cc +2 -2
  427. data/src/core/lib/gpr/sync_abseil.cc +7 -6
  428. data/src/core/lib/gpr/sync_posix.cc +3 -3
  429. data/src/core/lib/gpr/time.cc +3 -2
  430. data/src/core/lib/gpr/time_windows.cc +3 -2
  431. data/src/core/lib/gpr/tls.h +120 -41
  432. data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
  433. data/src/core/lib/gprpp/arena.cc +2 -1
  434. data/src/core/lib/gprpp/arena.h +5 -5
  435. data/src/core/lib/gprpp/atomic_utils.h +47 -0
  436. data/src/core/lib/gprpp/bitset.h +166 -0
  437. data/src/core/lib/gprpp/construct_destruct.h +39 -0
  438. data/src/core/lib/gprpp/dual_ref_counted.h +25 -26
  439. data/src/core/lib/gprpp/fork.cc +14 -12
  440. data/src/core/lib/gprpp/fork.h +4 -4
  441. data/src/core/lib/gprpp/global_config.h +1 -2
  442. data/src/core/lib/gprpp/global_config_env.cc +7 -7
  443. data/src/core/lib/gprpp/global_config_generic.h +2 -2
  444. data/src/core/lib/gprpp/manual_constructor.h +8 -5
  445. data/src/core/lib/gprpp/match.h +73 -0
  446. data/src/core/lib/gprpp/memory.h +3 -3
  447. data/src/core/lib/gprpp/mpscq.cc +7 -7
  448. data/src/core/lib/gprpp/mpscq.h +6 -5
  449. data/src/core/lib/gprpp/orphanable.h +3 -3
  450. data/src/core/lib/gprpp/overload.h +59 -0
  451. data/src/core/lib/gprpp/ref_counted.h +18 -18
  452. data/src/core/lib/gprpp/status_helper.cc +4 -4
  453. data/src/core/lib/gprpp/sync.h +3 -1
  454. data/src/core/lib/gprpp/thd_posix.cc +5 -5
  455. data/src/core/lib/gprpp/thd_windows.cc +4 -11
  456. data/src/core/lib/gprpp/time_util.cc +2 -2
  457. data/src/core/lib/gprpp/time_util.h +2 -2
  458. data/src/core/lib/http/format_request.cc +1 -0
  459. data/src/core/lib/http/format_request.h +1 -0
  460. data/src/core/lib/http/httpcli.cc +9 -9
  461. data/src/core/lib/http/httpcli.h +3 -0
  462. data/src/core/lib/http/httpcli_security_connector.cc +5 -8
  463. data/src/core/lib/http/parser.h +1 -0
  464. data/src/core/lib/iomgr/buffer_list.cc +2 -1
  465. data/src/core/lib/iomgr/buffer_list.h +1 -2
  466. data/src/core/lib/iomgr/call_combiner.cc +1 -0
  467. data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
  468. data/src/core/lib/iomgr/combiner.cc +3 -2
  469. data/src/core/lib/iomgr/combiner.h +1 -0
  470. data/src/core/lib/iomgr/dualstack_socket_posix.cc +1 -0
  471. data/src/core/lib/iomgr/endpoint.cc +0 -4
  472. data/src/core/lib/iomgr/endpoint.h +1 -3
  473. data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -20
  474. data/src/core/lib/iomgr/endpoint_cfstream.h +1 -1
  475. data/src/core/lib/iomgr/endpoint_pair.h +1 -0
  476. data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +1 -2
  477. data/src/core/lib/iomgr/endpoint_pair_posix.cc +15 -11
  478. data/src/core/lib/iomgr/endpoint_pair_windows.cc +17 -9
  479. data/src/core/lib/iomgr/error.h +23 -9
  480. data/src/core/lib/iomgr/error_cfstream.cc +2 -2
  481. data/src/core/lib/iomgr/error_internal.h +1 -0
  482. data/src/core/lib/iomgr/ev_epoll1_linux.cc +14 -22
  483. data/src/core/lib/iomgr/ev_epollex_linux.cc +15 -22
  484. data/src/core/lib/iomgr/ev_poll_posix.cc +13 -25
  485. data/src/core/lib/iomgr/ev_posix.cc +1 -2
  486. data/src/core/lib/iomgr/event_engine/endpoint.cc +3 -22
  487. data/src/core/lib/iomgr/event_engine/endpoint.h +1 -2
  488. data/src/core/lib/iomgr/event_engine/iomgr.cc +17 -18
  489. data/src/core/lib/iomgr/event_engine/iomgr.h +20 -2
  490. data/src/core/lib/iomgr/event_engine/resolver.cc +2 -1
  491. data/src/core/lib/iomgr/event_engine/tcp.cc +53 -24
  492. data/src/core/lib/iomgr/exec_ctx.cc +3 -4
  493. data/src/core/lib/iomgr/exec_ctx.h +11 -19
  494. data/src/core/lib/iomgr/executor/mpmcqueue.cc +10 -9
  495. data/src/core/lib/iomgr/executor/mpmcqueue.h +4 -3
  496. data/src/core/lib/iomgr/executor/threadpool.cc +2 -2
  497. data/src/core/lib/iomgr/executor/threadpool.h +2 -1
  498. data/src/core/lib/iomgr/executor.cc +5 -6
  499. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
  500. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
  501. data/src/core/lib/iomgr/internal_errqueue.cc +3 -2
  502. data/src/core/lib/iomgr/iocp_windows.cc +1 -0
  503. data/src/core/lib/iomgr/iomgr.h +2 -2
  504. data/src/core/lib/iomgr/iomgr_custom.cc +2 -2
  505. data/src/core/lib/iomgr/iomgr_custom.h +2 -2
  506. data/src/core/lib/iomgr/iomgr_internal.cc +2 -1
  507. data/src/core/lib/iomgr/iomgr_windows.cc +1 -2
  508. data/src/core/lib/iomgr/is_epollexclusive_available.cc +4 -4
  509. data/src/core/lib/iomgr/polling_entity.cc +2 -2
  510. data/src/core/lib/iomgr/pollset_custom.cc +3 -4
  511. data/src/core/lib/iomgr/pollset_custom.h +2 -2
  512. data/src/core/lib/iomgr/pollset_set_custom.cc +1 -2
  513. data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
  514. data/src/core/lib/iomgr/port.h +0 -5
  515. data/src/core/lib/iomgr/python_util.h +1 -0
  516. data/src/core/lib/iomgr/resolve_address.cc +2 -1
  517. data/src/core/lib/iomgr/resolve_address.h +0 -4
  518. data/src/core/lib/iomgr/resolve_address_custom.cc +4 -4
  519. data/src/core/lib/iomgr/resolve_address_custom.h +0 -1
  520. data/src/core/lib/iomgr/resolve_address_posix.cc +2 -4
  521. data/src/core/lib/iomgr/resolve_address_windows.cc +6 -8
  522. data/src/core/lib/iomgr/resource_quota.cc +127 -42
  523. data/src/core/lib/iomgr/resource_quota.h +66 -17
  524. data/src/core/lib/iomgr/sockaddr.h +1 -1
  525. data/src/core/lib/iomgr/socket_factory_posix.cc +3 -3
  526. data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
  527. data/src/core/lib/iomgr/socket_mutator.h +2 -2
  528. data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -3
  529. data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
  530. data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
  531. data/src/core/lib/iomgr/socket_utils_posix.h +2 -2
  532. data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
  533. data/src/core/lib/iomgr/tcp_client.cc +4 -2
  534. data/src/core/lib/iomgr/tcp_client.h +4 -0
  535. data/src/core/lib/iomgr/tcp_client_cfstream.cc +9 -19
  536. data/src/core/lib/iomgr/tcp_client_custom.cc +9 -17
  537. data/src/core/lib/iomgr/tcp_client_posix.cc +24 -9
  538. data/src/core/lib/iomgr/tcp_client_posix.h +5 -2
  539. data/src/core/lib/iomgr/tcp_client_windows.cc +14 -6
  540. data/src/core/lib/iomgr/tcp_custom.cc +11 -23
  541. data/src/core/lib/iomgr/tcp_custom.h +2 -1
  542. data/src/core/lib/iomgr/tcp_posix.cc +29 -59
  543. data/src/core/lib/iomgr/tcp_posix.h +11 -12
  544. data/src/core/lib/iomgr/tcp_server.cc +6 -4
  545. data/src/core/lib/iomgr/tcp_server.h +12 -9
  546. data/src/core/lib/iomgr/tcp_server_custom.cc +15 -33
  547. data/src/core/lib/iomgr/tcp_server_posix.cc +20 -13
  548. data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -0
  549. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -2
  550. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +3 -4
  551. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  552. data/src/core/lib/iomgr/tcp_server_windows.cc +13 -9
  553. data/src/core/lib/iomgr/tcp_windows.cc +6 -25
  554. data/src/core/lib/iomgr/tcp_windows.h +2 -1
  555. data/src/core/lib/iomgr/timer.cc +1 -0
  556. data/src/core/lib/iomgr/timer.h +1 -2
  557. data/src/core/lib/iomgr/timer_custom.cc +2 -2
  558. data/src/core/lib/iomgr/timer_generic.cc +8 -38
  559. data/src/core/lib/iomgr/timer_generic.h +1 -0
  560. data/src/core/lib/iomgr/timer_heap.cc +1 -2
  561. data/src/core/lib/iomgr/udp_server.cc +1 -2
  562. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -5
  563. data/src/core/lib/iomgr/unix_sockets_posix.h +2 -3
  564. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -0
  565. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -3
  566. data/src/core/lib/iomgr/wakeup_fd_posix.cc +1 -0
  567. data/src/core/lib/iomgr/work_serializer.cc +4 -4
  568. data/src/core/lib/iomgr/work_serializer.h +1 -1
  569. data/src/core/lib/json/json_reader.cc +9 -17
  570. data/src/core/lib/json/json_util.h +18 -26
  571. data/src/core/lib/matchers/matchers.h +0 -1
  572. data/src/core/lib/profiling/basic_timers.cc +8 -6
  573. data/src/core/lib/profiling/stap_timers.cc +2 -2
  574. data/src/core/lib/security/authorization/authorization_policy_provider.h +5 -4
  575. data/src/core/lib/security/authorization/evaluate_args.cc +2 -0
  576. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +159 -0
  577. data/src/core/lib/security/authorization/sdk_server_authz_filter.h +67 -0
  578. data/src/core/lib/security/context/security_context.cc +7 -6
  579. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
  580. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
  581. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
  582. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -3
  583. data/src/core/lib/security/credentials/credentials.cc +6 -6
  584. data/src/core/lib/security/credentials/credentials.h +1 -1
  585. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -3
  586. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +13 -26
  587. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -2
  588. data/src/core/lib/security/credentials/external/aws_request_signer.cc +3 -3
  589. data/src/core/lib/security/credentials/external/external_account_credentials.cc +13 -22
  590. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -4
  591. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -2
  592. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +55 -3
  593. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -1
  594. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
  595. data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
  596. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +31 -14
  597. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
  598. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +0 -2
  599. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -3
  600. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +3 -7
  601. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -0
  602. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -4
  603. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +4 -4
  604. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -1
  605. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +3 -2
  606. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +10 -6
  607. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +2 -1
  608. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -5
  609. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +2 -2
  610. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +4 -6
  611. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
  612. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -3
  613. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -7
  614. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
  615. data/src/core/lib/security/security_connector/ssl_utils.cc +2 -3
  616. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +9 -14
  617. data/src/core/lib/security/transport/auth_filters.h +1 -0
  618. data/src/core/lib/security/transport/client_auth_filter.cc +4 -6
  619. data/src/core/lib/security/transport/secure_endpoint.cc +4 -14
  620. data/src/core/lib/security/transport/secure_endpoint.h +1 -0
  621. data/src/core/lib/security/transport/security_handshaker.cc +5 -4
  622. data/src/core/lib/security/transport/security_handshaker.h +2 -1
  623. data/src/core/lib/security/util/json_util.cc +6 -8
  624. data/src/core/lib/slice/percent_encoding.cc +73 -30
  625. data/src/core/lib/slice/percent_encoding.h +29 -28
  626. data/src/core/lib/slice/slice.cc +2 -3
  627. data/src/core/lib/slice/slice_buffer.cc +1 -2
  628. data/src/core/lib/slice/slice_intern.cc +2 -3
  629. data/src/core/lib/slice/slice_internal.h +2 -2
  630. data/src/core/lib/surface/api_trace.cc +2 -1
  631. data/src/core/lib/surface/api_trace.h +1 -0
  632. data/src/core/lib/surface/byte_buffer_reader.cc +1 -1
  633. data/src/core/lib/surface/call.cc +9 -8
  634. data/src/core/lib/surface/call.h +3 -3
  635. data/src/core/lib/surface/call_details.cc +2 -2
  636. data/src/core/lib/surface/call_log_batch.cc +2 -2
  637. data/src/core/lib/surface/channel.cc +22 -9
  638. data/src/core/lib/surface/channel.h +14 -2
  639. data/src/core/lib/surface/channel_ping.cc +1 -2
  640. data/src/core/lib/surface/channel_stack_type.cc +2 -1
  641. data/src/core/lib/surface/completion_queue.cc +54 -64
  642. data/src/core/lib/surface/completion_queue_factory.cc +2 -1
  643. data/src/core/lib/surface/completion_queue_factory.h +1 -0
  644. data/src/core/lib/surface/event_string.cc +1 -0
  645. data/src/core/lib/surface/init.cc +4 -9
  646. data/src/core/lib/surface/init.h +0 -1
  647. data/src/core/lib/surface/init_secure.cc +23 -4
  648. data/src/core/lib/surface/lame_client.cc +6 -5
  649. data/src/core/lib/surface/metadata_array.cc +2 -2
  650. data/src/core/lib/surface/server.cc +17 -33
  651. data/src/core/lib/surface/server.h +11 -13
  652. data/src/core/lib/surface/validate_metadata.cc +44 -16
  653. data/src/core/lib/surface/version.cc +2 -2
  654. data/src/core/lib/transport/byte_stream.h +1 -0
  655. data/src/core/lib/transport/connectivity_state.cc +8 -5
  656. data/src/core/lib/transport/connectivity_state.h +2 -2
  657. data/src/core/lib/transport/error_utils.cc +1 -0
  658. data/src/core/lib/transport/metadata.cc +10 -10
  659. data/src/core/lib/transport/metadata.h +13 -11
  660. data/src/core/lib/transport/metadata_batch.h +8 -0
  661. data/src/core/lib/transport/transport_op_string.cc +2 -2
  662. data/src/core/plugin_registry/grpc_plugin_registry.cc +14 -0
  663. data/src/core/tsi/alts/crypt/aes_gcm.cc +3 -2
  664. data/src/core/tsi/alts/crypt/gsec.h +2 -3
  665. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +2 -2
  666. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
  667. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
  668. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -3
  669. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
  670. data/src/core/tsi/ssl_transport_security.cc +11 -9
  671. data/src/core/tsi/ssl_transport_security.h +3 -1
  672. data/src/core/tsi/transport_security.cc +3 -3
  673. data/src/core/tsi/transport_security_grpc.h +1 -0
  674. data/src/ruby/ext/grpc/extconf.rb +1 -1
  675. data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
  676. data/src/ruby/ext/grpc/rb_call.c +5 -5
  677. data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
  678. data/src/ruby/ext/grpc/rb_channel.c +10 -8
  679. data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
  680. data/src/ruby/ext/grpc/rb_channel_credentials.c +4 -4
  681. data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -0
  682. data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
  683. data/src/ruby/ext/grpc/rb_compression_options.c +5 -4
  684. data/src/ruby/ext/grpc/rb_event_thread.c +4 -4
  685. data/src/ruby/ext/grpc/rb_grpc.c +5 -4
  686. data/src/ruby/ext/grpc/rb_grpc.h +1 -0
  687. data/src/ruby/ext/grpc/rb_server.c +6 -5
  688. data/src/ruby/ext/grpc/rb_server_credentials.c +3 -3
  689. data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
  690. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +8 -5
  691. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +3 -1
  692. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +6 -5
  693. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +3 -1
  694. data/src/ruby/lib/grpc/version.rb +1 -1
  695. data/third_party/boringssl-with-bazel/err_data.c +294 -292
  696. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +52 -47
  697. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +1 -1
  698. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +1 -1
  699. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -0
  700. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
  701. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
  702. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +1 -1
  703. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
  704. data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_locl.h → internal.h} +20 -1
  705. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +1 -1
  706. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
  707. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
  708. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +1 -1
  709. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +1 -1
  710. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
  711. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
  712. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +5 -3
  713. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +5 -6
  714. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
  715. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +5 -9
  716. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +1 -1
  717. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +4 -6
  718. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +34 -0
  719. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
  720. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
  721. data/third_party/boringssl-with-bazel/src/crypto/internal.h +23 -2
  722. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
  723. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
  724. data/third_party/boringssl-with-bazel/src/crypto/mem.c +2 -0
  725. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +7 -3
  726. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +1 -1
  727. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +1 -0
  728. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
  729. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
  730. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
  731. data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +2 -2
  732. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
  733. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
  734. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
  735. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +45 -2
  736. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +4 -2
  737. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -3
  738. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +6 -23
  739. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +2 -2
  740. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -0
  741. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +25 -22
  742. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +0 -4
  743. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +1 -0
  744. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +1 -3
  745. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +9 -11
  746. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
  747. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +1 -3
  748. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +1 -3
  749. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +1 -0
  750. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +0 -2
  751. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +2 -0
  752. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -11
  753. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -5
  754. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +160 -74
  755. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -1
  756. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
  757. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +3 -0
  758. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +6 -0
  759. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +25 -0
  760. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
  761. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
  762. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +3 -0
  763. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +5 -4
  764. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +58 -6
  765. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +184 -55
  766. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +0 -5
  767. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +9 -16
  768. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +44 -2
  769. data/third_party/boringssl-with-bazel/src/ssl/{t1_lib.cc → extensions.cc} +24 -11
  770. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +9 -0
  771. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +75 -68
  772. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +17 -9
  773. data/third_party/boringssl-with-bazel/src/ssl/internal.h +25 -6
  774. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +1 -2
  775. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +11 -5
  776. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +0 -49
  777. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +121 -65
  778. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +14 -6
  779. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +9 -11
  780. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +2 -2
  781. data/third_party/upb/upb/decode.c +129 -60
  782. data/third_party/upb/upb/decode.h +32 -4
  783. data/third_party/upb/upb/decode_fast.c +513 -500
  784. data/third_party/upb/upb/decode_fast.h +27 -0
  785. data/third_party/upb/upb/{decode.int.h → decode_internal.h} +38 -8
  786. data/third_party/upb/upb/def.c +171 -181
  787. data/third_party/upb/upb/def.h +41 -19
  788. data/third_party/upb/upb/def.hpp +29 -0
  789. data/third_party/upb/upb/encode.c +49 -16
  790. data/third_party/upb/upb/encode.h +29 -2
  791. data/third_party/upb/upb/msg.c +169 -28
  792. data/third_party/upb/upb/msg.h +75 -580
  793. data/third_party/upb/upb/msg_internal.h +687 -0
  794. data/third_party/upb/upb/port_def.inc +85 -24
  795. data/third_party/upb/upb/port_undef.inc +38 -1
  796. data/third_party/upb/upb/reflection.c +29 -37
  797. data/third_party/upb/upb/reflection.h +36 -8
  798. data/third_party/upb/upb/reflection.hpp +37 -0
  799. data/third_party/upb/upb/table.c +211 -86
  800. data/third_party/upb/upb/{table.int.h → table_internal.h} +56 -180
  801. data/third_party/upb/upb/text_encode.c +32 -4
  802. data/third_party/upb/upb/text_encode.h +26 -0
  803. data/third_party/upb/upb/upb.c +59 -8
  804. data/third_party/upb/upb/upb.h +36 -6
  805. data/third_party/upb/upb/upb.hpp +24 -0
  806. data/third_party/upb/upb/upb_internal.h +58 -0
  807. metadata +58 -56
  808. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
  809. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
  810. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -243
  811. data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
  812. data/src/core/lib/gpr/tls_gcc.h +0 -52
  813. data/src/core/lib/gpr/tls_msvc.h +0 -54
  814. data/src/core/lib/gpr/tls_pthread.cc +0 -30
  815. data/src/core/lib/gpr/tls_pthread.h +0 -56
  816. data/src/core/lib/gpr/tls_stdcpp.h +0 -48
  817. data/src/core/lib/gprpp/atomic.h +0 -104
  818. data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
  819. data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
  820. data/src/core/lib/iomgr/pollset_uv.cc +0 -95
  821. data/src/core/lib/iomgr/pollset_uv.h +0 -36
  822. data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
  823. data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
  824. data/src/core/lib/iomgr/tcp_uv.cc +0 -421
  825. data/src/core/lib/iomgr/timer_uv.cc +0 -66
  826. data/third_party/upb/third_party/wyhash/wyhash.h +0 -145
  827. data/third_party/upb/upb/upb.int.h +0 -29
@@ -14,13 +14,12 @@
14
14
  #include <grpc/support/port_platform.h>
15
15
 
16
16
  #ifdef GRPC_USE_EVENT_ENGINE
17
- #include "src/core/lib/iomgr/port.h"
18
-
19
17
  #include <stdlib.h>
20
18
 
21
19
  #include <grpc/support/log.h>
22
20
 
23
21
  #include "src/core/lib/iomgr/endpoint_pair.h"
22
+ #include "src/core/lib/iomgr/port.h"
24
23
 
25
24
  grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(
26
25
  const char* /* name */, grpc_channel_args* /* args */) {
@@ -22,10 +22,6 @@
22
22
 
23
23
  #ifdef GRPC_POSIX_SOCKET_TCP
24
24
 
25
- #include "src/core/lib/iomgr/endpoint_pair.h"
26
- #include "src/core/lib/iomgr/socket_utils_posix.h"
27
- #include "src/core/lib/iomgr/unix_sockets_posix.h"
28
-
29
25
  #include <errno.h>
30
26
  #include <fcntl.h>
31
27
  #include <string.h>
@@ -38,8 +34,12 @@
38
34
 
39
35
  #include <grpc/support/alloc.h>
40
36
  #include <grpc/support/log.h>
37
+
41
38
  #include "src/core/lib/gpr/string.h"
39
+ #include "src/core/lib/iomgr/endpoint_pair.h"
40
+ #include "src/core/lib/iomgr/socket_utils_posix.h"
42
41
  #include "src/core/lib/iomgr/tcp_posix.h"
42
+ #include "src/core/lib/iomgr/unix_sockets_posix.h"
43
43
 
44
44
  static void create_sockets(int sv[2]) {
45
45
  int flags;
@@ -57,16 +57,20 @@ grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(const char* name,
57
57
  int sv[2];
58
58
  grpc_endpoint_pair p;
59
59
  create_sockets(sv);
60
-
61
60
  grpc_core::ExecCtx exec_ctx;
62
-
63
61
  std::string final_name = absl::StrCat(name, ":client");
64
- p.client = grpc_tcp_create(grpc_fd_create(sv[1], final_name.c_str(), false),
65
- args, "socketpair-server");
62
+ grpc_resource_quota* resource_quota =
63
+ grpc_resource_quota_from_channel_args(args, true);
64
+ p.client = grpc_tcp_create(
65
+ grpc_fd_create(sv[1], final_name.c_str(), false), args,
66
+ "socketpair-server",
67
+ grpc_slice_allocator_create(resource_quota, "server_endpoint", args));
66
68
  final_name = absl::StrCat(name, ":server");
67
- p.server = grpc_tcp_create(grpc_fd_create(sv[0], final_name.c_str(), false),
68
- args, "socketpair-client");
69
-
69
+ p.server = grpc_tcp_create(
70
+ grpc_fd_create(sv[0], final_name.c_str(), false), args,
71
+ "socketpair-client",
72
+ grpc_slice_allocator_create(resource_quota, "client_endpoint", args));
73
+ grpc_resource_quota_unref_internal(resource_quota);
70
74
  return p;
71
75
  }
72
76
 
@@ -21,15 +21,15 @@
21
21
  #include "src/core/lib/iomgr/port.h"
22
22
 
23
23
  #ifdef GRPC_WINSOCK_SOCKET
24
- #include "src/core/lib/address_utils/sockaddr_utils.h"
25
- #include "src/core/lib/iomgr/endpoint_pair.h"
26
- #include "src/core/lib/iomgr/sockaddr.h"
27
-
28
24
  #include <errno.h>
29
25
  #include <fcntl.h>
30
26
  #include <string.h>
31
27
 
32
28
  #include <grpc/support/log.h>
29
+
30
+ #include "src/core/lib/address_utils/sockaddr_utils.h"
31
+ #include "src/core/lib/iomgr/endpoint_pair.h"
32
+ #include "src/core/lib/iomgr/sockaddr.h"
33
33
  #include "src/core/lib/iomgr/socket_windows.h"
34
34
  #include "src/core/lib/iomgr/tcp_windows.h"
35
35
 
@@ -76,11 +76,19 @@ grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(
76
76
  grpc_endpoint_pair p;
77
77
  create_sockets(sv);
78
78
  grpc_core::ExecCtx exec_ctx;
79
- p.client = grpc_tcp_create(grpc_winsocket_create(sv[1], "endpoint:client"),
80
- channel_args, "endpoint:server");
81
- p.server = grpc_tcp_create(grpc_winsocket_create(sv[0], "endpoint:server"),
82
- channel_args, "endpoint:client");
83
-
79
+ grpc_resource_quota* resource_quota =
80
+ grpc_resource_quota_from_channel_args(channel_args, true);
81
+ p.client =
82
+ grpc_tcp_create(grpc_winsocket_create(sv[1], "endpoint:client"),
83
+ channel_args, "endpoint:server",
84
+ grpc_slice_allocator_create(
85
+ resource_quota, "endpoint:server", channel_args));
86
+ p.server =
87
+ grpc_tcp_create(grpc_winsocket_create(sv[0], "endpoint:server"),
88
+ channel_args, "endpoint:client",
89
+ grpc_slice_allocator_create(
90
+ resource_quota, "endpoint:client", channel_args));
91
+ grpc_resource_quota_unref_internal(resource_quota);
84
92
  return p;
85
93
  }
86
94
 
@@ -24,6 +24,8 @@
24
24
  #include <inttypes.h>
25
25
  #include <stdbool.h>
26
26
 
27
+ #include "absl/status/status.h"
28
+
27
29
  #include <grpc/slice.h>
28
30
  #include <grpc/status.h>
29
31
  #include <grpc/support/log.h>
@@ -31,8 +33,7 @@
31
33
 
32
34
  #include "src/core/lib/debug/trace.h"
33
35
  #include "src/core/lib/gprpp/status_helper.h"
34
-
35
- #include "absl/status/status.h"
36
+ #include "src/core/lib/slice/slice_internal.h"
36
37
 
37
38
  /// Opaque representation of an error.
38
39
  /// See https://github.com/grpc/grpc/blob/master/doc/core/grpc-error.md for a
@@ -165,6 +166,8 @@ void grpc_enable_error_creation();
165
166
  StatusCreate(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, {})
166
167
  #define GRPC_ERROR_CREATE_FROM_COPIED_STRING(desc) \
167
168
  StatusCreate(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, {})
169
+ #define GRPC_ERROR_CREATE_FROM_CPP_STRING(desc) \
170
+ StatusCreate(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, {})
168
171
  #define GRPC_ERROR_CREATE_FROM_STRING_VIEW(desc) \
169
172
  StatusCreate(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, {})
170
173
 
@@ -199,6 +202,8 @@ static absl::Status grpc_status_create_from_vector(
199
202
 
200
203
  #define GRPC_ERROR_CREATE_FROM_VECTOR(desc, error_list) \
201
204
  grpc_status_create_from_vector(DEBUG_LOCATION, desc, error_list)
205
+ #define GRPC_ERROR_CREATE_FROM_VECTOR_AND_CPP_STRING(desc, error_list) \
206
+ grpc_status_create_from_vector(DEBUG_LOCATION, desc, error_list)
202
207
 
203
208
  absl::Status grpc_os_error(const grpc_core::DebugLocation& location, int err,
204
209
  const char* call_name) GRPC_MUST_USE_RESULT;
@@ -286,6 +291,9 @@ grpc_error_handle grpc_error_create(const char* file, int line,
286
291
  #define GRPC_ERROR_CREATE_FROM_COPIED_STRING(desc) \
287
292
  grpc_error_create(__FILE__, __LINE__, grpc_slice_from_copied_string(desc), \
288
293
  NULL, 0)
294
+ #define GRPC_ERROR_CREATE_FROM_CPP_STRING(desc) \
295
+ grpc_error_create(__FILE__, __LINE__, grpc_slice_from_cpp_string(desc), \
296
+ NULL, 0)
289
297
  #define GRPC_ERROR_CREATE_FROM_STRING_VIEW(desc) \
290
298
  grpc_error_create( \
291
299
  __FILE__, __LINE__, \
@@ -301,18 +309,24 @@ grpc_error_handle grpc_error_create(const char* file, int line,
301
309
  errs, count)
302
310
 
303
311
  #define GRPC_ERROR_CREATE_FROM_VECTOR(desc, error_list) \
304
- grpc_error_create_from_vector(__FILE__, __LINE__, desc, error_list)
312
+ grpc_error_create_from_vector( \
313
+ __FILE__, __LINE__, grpc_slice_from_static_string, desc, error_list)
314
+ #define GRPC_ERROR_CREATE_FROM_VECTOR_AND_CPP_STRING(desc, error_list) \
315
+ grpc_error_create_from_vector(__FILE__, __LINE__, \
316
+ grpc_slice_from_cpp_string, desc, error_list)
305
317
 
306
318
  // Consumes all the errors in the vector and forms a referencing error from
307
319
  // them. If the vector is empty, return GRPC_ERROR_NONE.
308
- template <typename VectorType>
309
- static grpc_error_handle grpc_error_create_from_vector(const char* file,
310
- int line,
311
- const char* desc,
312
- VectorType* error_list) {
320
+ template <typename VectorType, typename StringType,
321
+ typename SliceFromStringFunction>
322
+ static grpc_error_handle grpc_error_create_from_vector(
323
+ const char* file, int line,
324
+ SliceFromStringFunction slice_from_string_function, StringType desc,
325
+ VectorType* error_list) {
313
326
  grpc_error_handle error = GRPC_ERROR_NONE;
314
327
  if (error_list->size() != 0) {
315
- error = grpc_error_create(file, line, grpc_slice_from_static_string(desc),
328
+ error = grpc_error_create(file, line,
329
+ slice_from_string_function(std::move(desc)),
316
330
  error_list->data(), error_list->size());
317
331
  // Remove refs to all errors in error_list.
318
332
  for (size_t i = 0; i < error_list->size(); i++) {
@@ -19,12 +19,12 @@
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
21
  #ifdef GRPC_CFSTREAM
22
+ #include <CoreFoundation/CoreFoundation.h>
23
+
22
24
  #include <string>
23
25
 
24
26
  #include "absl/strings/str_format.h"
25
27
 
26
- #include <CoreFoundation/CoreFoundation.h>
27
-
28
28
  #include <grpc/support/alloc.h>
29
29
 
30
30
  #include "src/core/lib/iomgr/error.h"
@@ -25,6 +25,7 @@
25
25
  #include <stdbool.h> // TODO(unknown): , do we need this?
26
26
 
27
27
  #include <grpc/support/sync.h>
28
+
28
29
  #include "src/core/lib/iomgr/error.h"
29
30
 
30
31
  #ifndef GRPC_ERROR_IS_ABSEIL_STATUS
@@ -18,15 +18,13 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
- #include "src/core/lib/iomgr/port.h"
22
-
23
21
  #include <grpc/support/log.h>
24
22
 
23
+ #include "src/core/lib/iomgr/port.h"
24
+
25
25
  /* This polling engine is only relevant on linux kernels supporting epoll
26
26
  epoll_create() or epoll_create1() */
27
27
  #ifdef GRPC_LINUX_EPOLL
28
- #include "src/core/lib/iomgr/ev_epoll1_linux.h"
29
-
30
28
  #include <assert.h>
31
29
  #include <errno.h>
32
30
  #include <fcntl.h>
@@ -54,6 +52,7 @@
54
52
  #include "src/core/lib/gpr/useful.h"
55
53
  #include "src/core/lib/gprpp/manual_constructor.h"
56
54
  #include "src/core/lib/iomgr/block_annotate.h"
55
+ #include "src/core/lib/iomgr/ev_epoll1_linux.h"
57
56
  #include "src/core/lib/iomgr/ev_posix.h"
58
57
  #include "src/core/lib/iomgr/iomgr_internal.h"
59
58
  #include "src/core/lib/iomgr/lockfree_event.h"
@@ -464,8 +463,8 @@ static void fd_has_errors(grpc_fd* fd) { fd->error_closure->SetReady(); }
464
463
  * Pollset Definitions
465
464
  */
466
465
 
467
- GPR_TLS_DECL(g_current_thread_pollset);
468
- GPR_TLS_DECL(g_current_thread_worker);
466
+ static GPR_THREAD_LOCAL(grpc_pollset*) g_current_thread_pollset;
467
+ static GPR_THREAD_LOCAL(grpc_pollset_worker*) g_current_thread_worker;
469
468
 
470
469
  /* The designated poller */
471
470
  static gpr_atm g_active_poller;
@@ -515,8 +514,6 @@ static size_t choose_neighborhood(void) {
515
514
  }
516
515
 
517
516
  static grpc_error_handle pollset_global_init(void) {
518
- gpr_tls_init(&g_current_thread_pollset);
519
- gpr_tls_init(&g_current_thread_worker);
520
517
  gpr_atm_no_barrier_store(&g_active_poller, 0);
521
518
  global_wakeup_fd.read_fd = -1;
522
519
  grpc_error_handle err = grpc_wakeup_fd_init(&global_wakeup_fd);
@@ -538,8 +535,6 @@ static grpc_error_handle pollset_global_init(void) {
538
535
  }
539
536
 
540
537
  static void pollset_global_shutdown(void) {
541
- gpr_tls_destroy(&g_current_thread_pollset);
542
- gpr_tls_destroy(&g_current_thread_worker);
543
538
  if (global_wakeup_fd.read_fd != -1) grpc_wakeup_fd_destroy(&global_wakeup_fd);
544
539
  for (size_t i = 0; i < g_num_neighborhoods; i++) {
545
540
  gpr_mu_destroy(&g_neighborhoods[i].mu);
@@ -1027,8 +1022,8 @@ static grpc_error_handle pollset_work(grpc_pollset* ps,
1027
1022
  }
1028
1023
 
1029
1024
  if (begin_worker(ps, &worker, worker_hdl, deadline)) {
1030
- gpr_tls_set(&g_current_thread_pollset, (intptr_t)ps);
1031
- gpr_tls_set(&g_current_thread_worker, (intptr_t)&worker);
1025
+ g_current_thread_pollset = ps;
1026
+ g_current_thread_worker = &worker;
1032
1027
  GPR_ASSERT(!ps->shutting_down);
1033
1028
  GPR_ASSERT(!ps->seen_inactive);
1034
1029
 
@@ -1055,13 +1050,13 @@ static grpc_error_handle pollset_work(grpc_pollset* ps,
1055
1050
 
1056
1051
  gpr_mu_lock(&ps->mu); /* lock */
1057
1052
 
1058
- gpr_tls_set(&g_current_thread_worker, 0);
1053
+ g_current_thread_worker = nullptr;
1059
1054
  } else {
1060
- gpr_tls_set(&g_current_thread_pollset, (intptr_t)ps);
1055
+ g_current_thread_pollset = ps;
1061
1056
  }
1062
1057
  end_worker(ps, &worker, worker_hdl);
1063
1058
 
1064
- gpr_tls_set(&g_current_thread_pollset, 0);
1059
+ g_current_thread_pollset = nullptr;
1065
1060
  return error;
1066
1061
  }
1067
1062
 
@@ -1074,9 +1069,8 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1074
1069
  std::vector<std::string> log;
1075
1070
  log.push_back(absl::StrFormat(
1076
1071
  "PS:%p KICK:%p curps=%p curworker=%p root=%p", pollset, specific_worker,
1077
- reinterpret_cast<void*>(gpr_tls_get(&g_current_thread_pollset)),
1078
- reinterpret_cast<void*>(gpr_tls_get(&g_current_thread_worker)),
1079
- pollset->root_worker));
1072
+ static_cast<void*>(g_current_thread_pollset),
1073
+ static_cast<void*>(g_current_thread_worker), pollset->root_worker));
1080
1074
  if (pollset->root_worker != nullptr) {
1081
1075
  log.push_back(absl::StrFormat(
1082
1076
  " {kick_state=%s next=%p {kick_state=%s}}",
@@ -1092,8 +1086,7 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1092
1086
  }
1093
1087
 
1094
1088
  if (specific_worker == nullptr) {
1095
- if (gpr_tls_get(&g_current_thread_pollset) !=
1096
- reinterpret_cast<intptr_t>(pollset)) {
1089
+ if (g_current_thread_pollset != pollset) {
1097
1090
  grpc_pollset_worker* root_worker = pollset->root_worker;
1098
1091
  if (root_worker == nullptr) {
1099
1092
  GRPC_STATS_INC_POLLSET_KICKED_WITHOUT_POLLER();
@@ -1185,8 +1178,7 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1185
1178
  gpr_log(GPR_INFO, " .. specific worker already kicked");
1186
1179
  }
1187
1180
  goto done;
1188
- } else if (gpr_tls_get(&g_current_thread_worker) ==
1189
- reinterpret_cast<intptr_t>(specific_worker)) {
1181
+ } else if (g_current_thread_worker == specific_worker) {
1190
1182
  GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
1191
1183
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1192
1184
  gpr_log(GPR_INFO, " .. mark %p kicked", specific_worker);
@@ -18,15 +18,13 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
- #include "src/core/lib/iomgr/port.h"
22
-
23
21
  #include <grpc/support/log.h>
24
22
 
23
+ #include "src/core/lib/iomgr/port.h"
24
+
25
25
  /* This polling engine is only relevant on linux kernels supporting epoll() */
26
26
  #ifdef GRPC_LINUX_EPOLL_CREATE1
27
27
 
28
- #include "src/core/lib/iomgr/ev_epollex_linux.h"
29
-
30
28
  #include <assert.h>
31
29
  #include <errno.h>
32
30
  #include <limits.h>
@@ -54,6 +52,7 @@
54
52
  #include "src/core/lib/gprpp/ref_counted.h"
55
53
  #include "src/core/lib/gprpp/sync.h"
56
54
  #include "src/core/lib/iomgr/block_annotate.h"
55
+ #include "src/core/lib/iomgr/ev_epollex_linux.h"
57
56
  #include "src/core/lib/iomgr/iomgr_internal.h"
58
57
  #include "src/core/lib/iomgr/is_epollexclusive_available.h"
59
58
  #include "src/core/lib/iomgr/lockfree_event.h"
@@ -643,20 +642,16 @@ static grpc_error_handle pollable_add_fd(pollable* p, grpc_fd* fd) {
643
642
  * Pollset Definitions
644
643
  */
645
644
 
646
- GPR_TLS_DECL(g_current_thread_pollset);
647
- GPR_TLS_DECL(g_current_thread_worker);
645
+ static GPR_THREAD_LOCAL(grpc_pollset*) g_current_thread_pollset;
646
+ static GPR_THREAD_LOCAL(grpc_pollset_worker*) g_current_thread_worker;
648
647
 
649
648
  /* Global state management */
650
649
  static grpc_error_handle pollset_global_init(void) {
651
- gpr_tls_init(&g_current_thread_pollset);
652
- gpr_tls_init(&g_current_thread_worker);
653
650
  return pollable_create(PO_EMPTY, &g_empty_pollable);
654
651
  }
655
652
 
656
653
  static void pollset_global_shutdown(void) {
657
654
  POLLABLE_UNREF(g_empty_pollable, "g_empty_pollable");
658
- gpr_tls_destroy(&g_current_thread_pollset);
659
- gpr_tls_destroy(&g_current_thread_worker);
660
655
  }
661
656
 
662
657
  /* pollset->mu must be held while calling this function */
@@ -693,8 +688,7 @@ static grpc_error_handle kick_one_worker(grpc_pollset_worker* specific_worker) {
693
688
  GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
694
689
  return GRPC_ERROR_NONE;
695
690
  }
696
- if (gpr_tls_get(&g_current_thread_worker) ==
697
- reinterpret_cast<intptr_t>(specific_worker)) {
691
+ if (g_current_thread_worker == specific_worker) {
698
692
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
699
693
  gpr_log(GPR_INFO, "PS:%p kicked_specific_but_awake", p);
700
694
  }
@@ -731,14 +725,13 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
731
725
  GRPC_STATS_INC_POLLSET_KICK();
732
726
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
733
727
  gpr_log(GPR_INFO,
734
- "PS:%p kick %p tls_pollset=%" PRIxPTR " tls_worker=%" PRIxPTR
735
- " pollset.root_worker=%p",
736
- pollset, specific_worker, gpr_tls_get(&g_current_thread_pollset),
737
- gpr_tls_get(&g_current_thread_worker), pollset->root_worker);
728
+ "PS:%p kick %p tls_pollset=%p tls_worker=%p pollset.root_worker=%p",
729
+ pollset, specific_worker,
730
+ static_cast<void*>(g_current_thread_pollset),
731
+ static_cast<void*>(g_current_thread_worker), pollset->root_worker);
738
732
  }
739
733
  if (specific_worker == nullptr) {
740
- if (gpr_tls_get(&g_current_thread_pollset) !=
741
- reinterpret_cast<intptr_t>(pollset)) {
734
+ if (g_current_thread_pollset != pollset) {
742
735
  if (pollset->root_worker == nullptr) {
743
736
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
744
737
  gpr_log(GPR_INFO, "PS:%p kicked_any_without_poller", pollset);
@@ -1132,8 +1125,8 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1132
1125
  pollset->kicked_without_poller = false;
1133
1126
  } else {
1134
1127
  if (begin_worker(pollset, WORKER_PTR, worker_hdl, deadline)) {
1135
- gpr_tls_set(&g_current_thread_pollset, (intptr_t)pollset);
1136
- gpr_tls_set(&g_current_thread_worker, (intptr_t)WORKER_PTR);
1128
+ g_current_thread_pollset = pollset;
1129
+ g_current_thread_worker = WORKER_PTR;
1137
1130
  if (WORKER_PTR->pollable_obj->event_cursor ==
1138
1131
  WORKER_PTR->pollable_obj->event_count) {
1139
1132
  append_error(&error, pollable_epoll(WORKER_PTR->pollable_obj, deadline),
@@ -1144,8 +1137,8 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1144
1137
  pollable_process_events(pollset, WORKER_PTR->pollable_obj, false),
1145
1138
  err_desc);
1146
1139
  grpc_core::ExecCtx::Get()->Flush();
1147
- gpr_tls_set(&g_current_thread_pollset, 0);
1148
- gpr_tls_set(&g_current_thread_worker, 0);
1140
+ g_current_thread_pollset = nullptr;
1141
+ g_current_thread_worker = nullptr;
1149
1142
  }
1150
1143
  end_worker(pollset, WORKER_PTR, worker_hdl);
1151
1144
  }
@@ -22,8 +22,6 @@
22
22
 
23
23
  #ifdef GRPC_POSIX_SOCKET_EV_POLL
24
24
 
25
- #include "src/core/lib/iomgr/ev_poll_posix.h"
26
-
27
25
  #include <assert.h>
28
26
  #include <errno.h>
29
27
  #include <limits.h>
@@ -45,6 +43,7 @@
45
43
  #include "src/core/lib/gpr/useful.h"
46
44
  #include "src/core/lib/gprpp/thd.h"
47
45
  #include "src/core/lib/iomgr/block_annotate.h"
46
+ #include "src/core/lib/iomgr/ev_poll_posix.h"
48
47
  #include "src/core/lib/iomgr/iomgr_internal.h"
49
48
  #include "src/core/lib/iomgr/wakeup_fd_posix.h"
50
49
  #include "src/core/lib/profiling/timers.h"
@@ -706,8 +705,8 @@ static void fd_end_poll(grpc_fd_watcher* watcher, int got_read, int got_write) {
706
705
  * pollset_posix.c
707
706
  */
708
707
 
709
- GPR_TLS_DECL(g_current_thread_poller);
710
- GPR_TLS_DECL(g_current_thread_worker);
708
+ static GPR_THREAD_LOCAL(grpc_pollset*) g_current_thread_poller;
709
+ static GPR_THREAD_LOCAL(grpc_pollset_worker*) g_current_thread_worker;
711
710
 
712
711
  static void remove_worker(grpc_pollset* /*p*/, grpc_pollset_worker* worker) {
713
712
  worker->prev->next = worker->next;
@@ -776,8 +775,7 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
776
775
  &error, grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd));
777
776
  }
778
777
  p->kicked_without_pollers = true;
779
- } else if (gpr_tls_get(&g_current_thread_worker) !=
780
- reinterpret_cast<intptr_t>(specific_worker)) {
778
+ } else if (g_current_thread_worker != specific_worker) {
781
779
  GPR_TIMER_MARK("different_thread_worker", 0);
782
780
  if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
783
781
  specific_worker->reevaluate_polling_on_wakeup = true;
@@ -794,20 +792,17 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
794
792
  kick_append_error(&error,
795
793
  grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd));
796
794
  }
797
- } else if (gpr_tls_get(&g_current_thread_poller) !=
798
- reinterpret_cast<intptr_t>(p)) {
795
+ } else if (g_current_thread_poller != p) {
799
796
  GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
800
797
  GPR_TIMER_MARK("kick_anonymous", 0);
801
798
  specific_worker = pop_front_worker(p);
802
799
  if (specific_worker != nullptr) {
803
- if (gpr_tls_get(&g_current_thread_worker) ==
804
- reinterpret_cast<intptr_t>(specific_worker)) {
800
+ if (g_current_thread_worker == specific_worker) {
805
801
  GPR_TIMER_MARK("kick_anonymous_not_self", 0);
806
802
  push_back_worker(p, specific_worker);
807
803
  specific_worker = pop_front_worker(p);
808
804
  if ((flags & GRPC_POLLSET_CAN_KICK_SELF) == 0 &&
809
- gpr_tls_get(&g_current_thread_worker) ==
810
- reinterpret_cast<intptr_t>(specific_worker)) {
805
+ g_current_thread_worker == specific_worker) {
811
806
  push_back_worker(p, specific_worker);
812
807
  specific_worker = nullptr;
813
808
  }
@@ -835,16 +830,9 @@ static grpc_error_handle pollset_kick(grpc_pollset* p,
835
830
 
836
831
  /* global state management */
837
832
 
838
- static grpc_error_handle pollset_global_init(void) {
839
- gpr_tls_init(&g_current_thread_poller);
840
- gpr_tls_init(&g_current_thread_worker);
841
- return GRPC_ERROR_NONE;
842
- }
833
+ static grpc_error_handle pollset_global_init(void) { return GRPC_ERROR_NONE; }
843
834
 
844
- static void pollset_global_shutdown(void) {
845
- gpr_tls_destroy(&g_current_thread_poller);
846
- gpr_tls_destroy(&g_current_thread_worker);
847
- }
835
+ static void pollset_global_shutdown(void) {}
848
836
 
849
837
  /* main interface */
850
838
 
@@ -959,7 +947,7 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
959
947
  re-evaluate our pollers (this allows poll() based pollers to
960
948
  ensure they don't miss wakeups) */
961
949
  keep_polling = 1;
962
- gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
950
+ g_current_thread_poller = pollset;
963
951
  while (keep_polling) {
964
952
  keep_polling = 0;
965
953
  if (!pollset->kicked_without_pollers ||
@@ -967,7 +955,7 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
967
955
  if (!added_worker) {
968
956
  push_front_worker(pollset, &worker);
969
957
  added_worker = 1;
970
- gpr_tls_set(&g_current_thread_worker, (intptr_t)&worker);
958
+ g_current_thread_worker = &worker;
971
959
  }
972
960
  GPR_TIMER_SCOPE("maybe_work_and_unlock", 0);
973
961
  #define POLLOUT_CHECK (POLLOUT | POLLHUP | POLLERR)
@@ -1115,10 +1103,10 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1115
1103
  keep_polling = 1;
1116
1104
  }
1117
1105
  }
1118
- gpr_tls_set(&g_current_thread_poller, 0);
1106
+ g_current_thread_poller = nullptr;
1119
1107
  if (added_worker) {
1120
1108
  remove_worker(pollset, &worker);
1121
- gpr_tls_set(&g_current_thread_worker, 0);
1109
+ g_current_thread_worker = nullptr;
1122
1110
  }
1123
1111
  /* release wakeup fd to the local pool */
1124
1112
  worker.wakeup_fd->next = pollset->local_wakeup_cache;
@@ -22,8 +22,6 @@
22
22
 
23
23
  #ifdef GRPC_POSIX_SOCKET_EV
24
24
 
25
- #include "src/core/lib/iomgr/ev_posix.h"
26
-
27
25
  #include <string.h>
28
26
 
29
27
  #include <grpc/support/alloc.h>
@@ -36,6 +34,7 @@
36
34
  #include "src/core/lib/iomgr/ev_epoll1_linux.h"
37
35
  #include "src/core/lib/iomgr/ev_epollex_linux.h"
38
36
  #include "src/core/lib/iomgr/ev_poll_posix.h"
37
+ #include "src/core/lib/iomgr/ev_posix.h"
39
38
  #include "src/core/lib/iomgr/internal_errqueue.h"
40
39
 
41
40
  GPR_GLOBAL_CONFIG_DEFINE_STRING(
@@ -14,19 +14,19 @@
14
14
  #include <grpc/support/port_platform.h>
15
15
 
16
16
  #ifdef GRPC_USE_EVENT_ENGINE
17
- #include "src/core/lib/iomgr/event_engine/endpoint.h"
17
+ #include "absl/strings/string_view.h"
18
18
 
19
19
  #include <grpc/event_engine/event_engine.h>
20
20
  #include <grpc/slice.h>
21
21
  #include <grpc/slice_buffer.h>
22
22
  #include <grpc/support/time.h>
23
- #include "absl/strings/string_view.h"
24
23
 
25
24
  #include "src/core/lib/address_utils/sockaddr_utils.h"
26
25
  #include "src/core/lib/channel/channel_args.h"
27
26
  #include "src/core/lib/iomgr/endpoint.h"
28
27
  #include "src/core/lib/iomgr/error.h"
29
28
  #include "src/core/lib/iomgr/event_engine/closure.h"
29
+ #include "src/core/lib/iomgr/event_engine/endpoint.h"
30
30
  #include "src/core/lib/iomgr/event_engine/pollset.h"
31
31
  #include "src/core/lib/iomgr/pollset.h"
32
32
  #include "src/core/lib/iomgr/pollset_set.h"
@@ -39,6 +39,7 @@ namespace {
39
39
 
40
40
  using ::grpc_event_engine::experimental::EventEngine;
41
41
  using ::grpc_event_engine::experimental::ResolvedAddressToURI;
42
+ using ::grpc_event_engine::experimental::SliceAllocator;
42
43
  using ::grpc_event_engine::experimental::SliceBuffer;
43
44
 
44
45
  void endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* slices,
@@ -102,21 +103,14 @@ void endpoint_shutdown(grpc_endpoint* ep, grpc_error* why) {
102
103
  gpr_log(GPR_INFO, "TCP Endpoint %p shutdown why=%s", eeep->endpoint.get(),
103
104
  str);
104
105
  }
105
- grpc_resource_user_shutdown(eeep->ru);
106
106
  eeep->endpoint.reset();
107
107
  }
108
108
 
109
109
  void endpoint_destroy(grpc_endpoint* ep) {
110
110
  auto* eeep = reinterpret_cast<grpc_event_engine_endpoint*>(ep);
111
- grpc_resource_user_unref(eeep->ru);
112
111
  delete eeep;
113
112
  }
114
113
 
115
- grpc_resource_user* endpoint_get_resource_user(grpc_endpoint* ep) {
116
- auto* eeep = reinterpret_cast<grpc_event_engine_endpoint*>(ep);
117
- return eeep->ru;
118
- }
119
-
120
114
  absl::string_view endpoint_get_peer(grpc_endpoint* ep) {
121
115
  auto* eeep = reinterpret_cast<grpc_event_engine_endpoint*>(ep);
122
116
  if (eeep->endpoint == nullptr) {
@@ -154,7 +148,6 @@ grpc_endpoint_vtable grpc_event_engine_endpoint_vtable = {
154
148
  endpoint_delete_from_pollset_set,
155
149
  endpoint_shutdown,
156
150
  endpoint_destroy,
157
- endpoint_get_resource_user,
158
151
  endpoint_get_peer,
159
152
  endpoint_get_local_address,
160
153
  endpoint_get_fd,
@@ -166,7 +159,6 @@ grpc_event_engine_endpoint* grpc_tcp_server_endpoint_create(
166
159
  std::unique_ptr<EventEngine::Endpoint> ee_endpoint) {
167
160
  auto endpoint = new grpc_event_engine_endpoint;
168
161
  endpoint->base.vtable = &grpc_event_engine_endpoint_vtable;
169
- // TODO(hork): populate endpoint->ru from the uvEngine's subclass
170
162
  endpoint->endpoint = std::move(ee_endpoint);
171
163
  return endpoint;
172
164
  }
@@ -175,17 +167,6 @@ grpc_endpoint* grpc_tcp_create(const grpc_channel_args* channel_args,
175
167
  absl::string_view peer_address) {
176
168
  auto endpoint = new grpc_event_engine_endpoint;
177
169
  endpoint->base.vtable = &grpc_event_engine_endpoint_vtable;
178
- grpc_resource_quota* resource_quota =
179
- grpc_channel_args_find_pointer<grpc_resource_quota>(
180
- channel_args, GRPC_ARG_RESOURCE_QUOTA);
181
- if (resource_quota != nullptr) {
182
- grpc_resource_quota_ref_internal(resource_quota);
183
- } else {
184
- resource_quota = grpc_resource_quota_create(nullptr);
185
- }
186
- endpoint->ru = grpc_resource_user_create(resource_quota,
187
- std::string(peer_address).c_str());
188
- grpc_resource_quota_unref_internal(resource_quota);
189
170
  return &endpoint->base;
190
171
  }
191
172
 
@@ -28,7 +28,6 @@ struct grpc_event_engine_endpoint {
28
28
  endpoint;
29
29
  std::string peer_address;
30
30
  std::string local_address;
31
- grpc_resource_user* ru = nullptr;
32
31
  std::aligned_storage<
33
32
  sizeof(grpc_event_engine::experimental::SliceBuffer),
34
33
  alignof(grpc_event_engine::experimental::SliceBuffer)>::type read_buffer;
@@ -45,7 +44,7 @@ grpc_event_engine_endpoint* grpc_tcp_server_endpoint_create(
45
44
 
46
45
  /// Creates a new internal grpc_endpoint struct, when no EventEngine Endpoint
47
46
  /// has yet been created. This is used in client code before connections are
48
- /// established.
47
+ /// established. Takes ownership of the slice_allocator.
49
48
  grpc_endpoint* grpc_tcp_create(const grpc_channel_args* channel_args,
50
49
  absl::string_view peer_address);
51
50