grpc 1.63.0 → 1.65.2

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.
Files changed (1196) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +105 -103
  3. data/include/grpc/credentials.h +1222 -0
  4. data/include/grpc/event_engine/event_engine.h +13 -6
  5. data/include/grpc/grpc.h +7 -0
  6. data/include/grpc/grpc_crl_provider.h +1 -0
  7. data/include/grpc/grpc_security.h +0 -1171
  8. data/include/grpc/impl/channel_arg_names.h +7 -6
  9. data/include/grpc/module.modulemap +2 -0
  10. data/include/grpc/passive_listener.h +62 -0
  11. data/include/grpc/support/log.h +7 -17
  12. data/include/grpc/support/port_platform.h +3 -0
  13. data/src/core/{lib/channel → channelz}/channel_trace.cc +57 -63
  14. data/src/core/{lib/channel → channelz}/channel_trace.h +22 -20
  15. data/src/core/{lib/channel → channelz}/channelz.cc +71 -9
  16. data/src/core/{lib/channel → channelz}/channelz.h +52 -13
  17. data/src/core/{lib/channel → channelz}/channelz_registry.cc +11 -9
  18. data/src/core/{lib/channel → channelz}/channelz_registry.h +6 -6
  19. data/src/core/client_channel/backup_poller.cc +4 -5
  20. data/src/core/client_channel/client_channel.cc +1324 -0
  21. data/src/core/client_channel/client_channel.h +243 -0
  22. data/src/core/client_channel/client_channel_filter.cc +312 -759
  23. data/src/core/client_channel/client_channel_filter.h +13 -68
  24. data/src/core/client_channel/client_channel_internal.h +19 -7
  25. data/src/core/client_channel/client_channel_plugin.cc +1 -14
  26. data/src/core/client_channel/client_channel_service_config.h +4 -4
  27. data/src/core/client_channel/config_selector.cc +1 -1
  28. data/src/core/client_channel/config_selector.h +5 -4
  29. data/src/core/client_channel/connector.h +1 -1
  30. data/src/core/client_channel/dynamic_filters.cc +6 -5
  31. data/src/core/client_channel/dynamic_filters.h +1 -3
  32. data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
  33. data/src/core/client_channel/load_balanced_call_destination.h +49 -0
  34. data/src/core/client_channel/local_subchannel_pool.cc +5 -3
  35. data/src/core/client_channel/retry_filter.cc +3 -10
  36. data/src/core/client_channel/retry_filter.h +5 -9
  37. data/src/core/client_channel/retry_filter_legacy_call_data.cc +70 -76
  38. data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
  39. data/src/core/client_channel/retry_service_config.cc +4 -5
  40. data/src/core/client_channel/retry_service_config.h +3 -3
  41. data/src/core/client_channel/subchannel.cc +241 -129
  42. data/src/core/client_channel/subchannel.h +31 -19
  43. data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
  44. data/src/core/client_channel/subchannel_pool_interface.h +2 -4
  45. data/src/core/client_channel/subchannel_stream_client.cc +41 -52
  46. data/src/core/client_channel/subchannel_stream_client.h +2 -4
  47. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +11 -13
  48. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +3 -2
  49. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
  50. data/src/core/ext/filters/census/grpc_context.cc +2 -4
  51. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +16 -15
  52. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +12 -11
  53. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +11 -16
  54. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +5 -4
  55. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
  56. data/src/core/ext/filters/http/client/http_client_filter.cc +6 -4
  57. data/src/core/ext/filters/http/client/http_client_filter.h +6 -5
  58. data/src/core/ext/filters/http/client_authority_filter.cc +5 -3
  59. data/src/core/ext/filters/http/client_authority_filter.h +6 -4
  60. data/src/core/ext/filters/http/message_compress/compression_filter.cc +19 -23
  61. data/src/core/ext/filters/http/message_compress/compression_filter.h +10 -8
  62. data/src/core/ext/filters/http/server/http_server_filter.cc +4 -4
  63. data/src/core/ext/filters/http/server/http_server_filter.h +6 -5
  64. data/src/core/ext/filters/message_size/message_size_filter.cc +16 -28
  65. data/src/core/ext/filters/message_size/message_size_filter.h +14 -12
  66. data/src/core/ext/filters/rbac/rbac_filter.cc +13 -11
  67. data/src/core/ext/filters/rbac/rbac_filter.h +6 -5
  68. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
  69. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
  70. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +14 -18
  71. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +4 -2
  72. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
  73. data/src/core/ext/transport/chttp2/alpn/alpn.cc +5 -4
  74. data/src/core/ext/transport/chttp2/alpn/alpn.h +2 -2
  75. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +23 -38
  76. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -8
  77. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +233 -158
  78. data/src/core/ext/transport/chttp2/server/chttp2_server.h +36 -3
  79. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +6 -6
  80. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +1 -2
  81. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +8 -7
  82. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -2
  83. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +190 -165
  84. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +10 -11
  85. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +3 -3
  86. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +2 -2
  87. data/src/core/ext/transport/chttp2/transport/decode_huff.h +2 -2
  88. data/src/core/ext/transport/chttp2/transport/flow_control.cc +6 -8
  89. data/src/core/ext/transport/chttp2/transport/flow_control.h +4 -6
  90. data/src/core/ext/transport/chttp2/transport/frame.cc +4 -4
  91. data/src/core/ext/transport/chttp2/transport/frame.h +2 -2
  92. data/src/core/ext/transport/chttp2/transport/frame_data.cc +3 -3
  93. data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -2
  94. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +5 -5
  95. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -2
  96. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -9
  97. data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -2
  98. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +4 -5
  99. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -2
  100. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +10 -7
  101. data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -2
  102. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -4
  103. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -2
  104. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +2 -2
  105. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +9 -7
  106. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +10 -4
  107. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +10 -9
  108. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -2
  109. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +4 -3
  110. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +3 -3
  111. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +29 -31
  112. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
  113. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +8 -13
  114. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -2
  115. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +3 -3
  116. data/src/core/ext/transport/chttp2/transport/http2_settings.h +3 -3
  117. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +2 -2
  118. data/src/core/ext/transport/chttp2/transport/internal.h +31 -23
  119. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +4 -3
  120. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +2 -2
  121. data/src/core/ext/transport/chttp2/transport/parsing.cc +29 -39
  122. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +1 -2
  123. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +2 -2
  124. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +3 -5
  125. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +1 -4
  126. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +30 -15
  127. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +7 -6
  128. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +10 -11
  129. data/src/core/ext/transport/chttp2/transport/varint.cc +2 -2
  130. data/src/core/ext/transport/chttp2/transport/varint.h +4 -3
  131. data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +4 -3
  132. data/src/core/ext/transport/chttp2/transport/write_size_policy.h +2 -2
  133. data/src/core/ext/transport/chttp2/transport/writing.cc +59 -47
  134. data/src/core/ext/transport/inproc/inproc_transport.cc +65 -41
  135. data/src/core/ext/transport/inproc/inproc_transport.h +2 -5
  136. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +20 -23
  137. data/src/core/ext/transport/inproc/legacy_inproc_transport.h +1 -4
  138. data/src/core/{lib/transport → handshaker/endpoint_info}/endpoint_info_handshaker.cc +6 -6
  139. data/src/core/{lib/transport → handshaker/endpoint_info}/endpoint_info_handshaker.h +3 -3
  140. data/src/core/{lib/transport → handshaker}/handshaker.cc +14 -20
  141. data/src/core/{lib/transport → handshaker}/handshaker.h +4 -5
  142. data/src/core/{lib/transport → handshaker}/handshaker_factory.h +19 -3
  143. data/src/core/{lib/transport → handshaker}/handshaker_registry.cc +3 -3
  144. data/src/core/{lib/transport → handshaker}/handshaker_registry.h +6 -6
  145. data/src/core/{lib/transport → handshaker/http_connect}/http_connect_handshaker.cc +16 -25
  146. data/src/core/{lib/transport → handshaker/http_connect}/http_connect_handshaker.h +3 -3
  147. data/src/core/{client_channel → handshaker/http_connect}/http_proxy_mapper.cc +16 -18
  148. data/src/core/{client_channel → handshaker/http_connect}/http_proxy_mapper.h +6 -6
  149. data/src/core/{lib/handshaker → handshaker}/proxy_mapper.h +5 -5
  150. data/src/core/{lib/handshaker → handshaker}/proxy_mapper_registry.cc +3 -3
  151. data/src/core/{lib/handshaker → handshaker}/proxy_mapper_registry.h +6 -6
  152. data/src/core/{lib/security/transport → handshaker/security}/secure_endpoint.cc +42 -36
  153. data/src/core/{lib/security/transport → handshaker/security}/secure_endpoint.h +4 -7
  154. data/src/core/{lib/security/transport → handshaker/security}/security_handshaker.cc +35 -47
  155. data/src/core/{lib/security/transport → handshaker/security}/security_handshaker.h +5 -6
  156. data/src/core/{lib/transport → handshaker/tcp_connect}/tcp_connect_handshaker.cc +10 -9
  157. data/src/core/{lib/transport → handshaker/tcp_connect}/tcp_connect_handshaker.h +3 -3
  158. data/src/core/lib/address_utils/parse_address.cc +30 -40
  159. data/src/core/lib/address_utils/parse_address.h +2 -2
  160. data/src/core/lib/address_utils/sockaddr_utils.cc +20 -15
  161. data/src/core/lib/address_utils/sockaddr_utils.h +2 -2
  162. data/src/core/lib/avl/avl.h +3 -3
  163. data/src/core/lib/backoff/backoff.cc +2 -2
  164. data/src/core/lib/backoff/backoff.h +2 -2
  165. data/src/core/lib/backoff/random_early_detection.cc +2 -2
  166. data/src/core/lib/backoff/random_early_detection.h +2 -2
  167. data/src/core/lib/channel/call_finalization.h +2 -2
  168. data/src/core/lib/channel/channel_args.cc +17 -21
  169. data/src/core/lib/channel/channel_args.h +20 -10
  170. data/src/core/lib/channel/channel_args_preconditioning.cc +2 -2
  171. data/src/core/lib/channel/channel_args_preconditioning.h +1 -2
  172. data/src/core/lib/channel/channel_stack.cc +13 -70
  173. data/src/core/lib/channel/channel_stack.h +14 -39
  174. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  175. data/src/core/lib/channel/channel_stack_builder.h +2 -7
  176. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -150
  177. data/src/core/lib/channel/channel_stack_builder_impl.h +2 -4
  178. data/src/core/lib/channel/connected_channel.cc +40 -694
  179. data/src/core/lib/channel/promise_based_filter.cc +111 -122
  180. data/src/core/lib/channel/promise_based_filter.h +219 -531
  181. data/src/core/lib/channel/status_util.cc +3 -3
  182. data/src/core/lib/channel/status_util.h +1 -2
  183. data/src/core/lib/compression/compression.cc +2 -3
  184. data/src/core/lib/compression/compression_internal.cc +3 -3
  185. data/src/core/lib/compression/compression_internal.h +1 -2
  186. data/src/core/lib/compression/message_compress.cc +15 -14
  187. data/src/core/lib/compression/message_compress.h +1 -2
  188. data/src/core/lib/config/config_vars.cc +5 -10
  189. data/src/core/lib/config/config_vars.h +3 -7
  190. data/src/core/lib/config/config_vars_non_generated.cc +2 -2
  191. data/src/core/lib/config/core_configuration.cc +9 -8
  192. data/src/core/lib/config/core_configuration.h +8 -8
  193. data/src/core/lib/config/load_config.cc +4 -4
  194. data/src/core/lib/config/load_config.h +2 -2
  195. data/src/core/lib/debug/event_log.cc +3 -3
  196. data/src/core/lib/debug/event_log.h +3 -3
  197. data/src/core/lib/debug/trace.cc +44 -61
  198. data/src/core/lib/debug/trace.h +2 -97
  199. data/src/core/lib/debug/trace_flags.cc +255 -0
  200. data/src/core/lib/debug/trace_flags.h +133 -0
  201. data/src/core/lib/debug/trace_impl.h +115 -0
  202. data/src/core/lib/event_engine/ares_resolver.cc +23 -26
  203. data/src/core/lib/event_engine/ares_resolver.h +3 -5
  204. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +4 -2
  205. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +3 -3
  206. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +19 -23
  207. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +2 -1
  208. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +1 -2
  209. data/src/core/lib/event_engine/channel_args_endpoint_config.h +1 -2
  210. data/src/core/lib/event_engine/common_closures.h +1 -2
  211. data/src/core/lib/event_engine/default_event_engine.cc +1 -2
  212. data/src/core/lib/event_engine/default_event_engine.h +1 -2
  213. data/src/core/lib/event_engine/default_event_engine_factory.cc +1 -2
  214. data/src/core/lib/event_engine/default_event_engine_factory.h +1 -2
  215. data/src/core/lib/event_engine/event_engine.cc +29 -5
  216. data/src/core/lib/event_engine/event_engine_context.h +1 -2
  217. data/src/core/lib/event_engine/extensions/can_track_errors.h +2 -2
  218. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +2 -2
  219. data/src/core/lib/event_engine/extensions/supports_fd.h +8 -2
  220. data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
  221. data/src/core/lib/event_engine/forkable.cc +11 -11
  222. data/src/core/lib/event_engine/forkable.h +1 -13
  223. data/src/core/lib/event_engine/grpc_polled_fd.h +1 -2
  224. data/src/core/lib/event_engine/handle_containers.h +1 -2
  225. data/src/core/lib/event_engine/memory_allocator_factory.h +1 -2
  226. data/src/core/lib/event_engine/poller.h +1 -2
  227. data/src/core/lib/event_engine/posix.h +1 -2
  228. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +19 -19
  229. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +1 -2
  230. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +11 -11
  231. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +1 -2
  232. data/src/core/lib/event_engine/posix_engine/event_poller.h +1 -2
  233. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +2 -2
  234. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +2 -2
  235. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +1 -2
  236. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +5 -5
  237. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +2 -2
  238. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +3 -3
  239. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +2 -2
  240. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
  241. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +2 -2
  242. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +43 -58
  243. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +14 -13
  244. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +34 -17
  245. data/src/core/lib/event_engine/posix_engine/posix_engine.h +3 -2
  246. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +1 -2
  247. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +17 -18
  248. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +1 -2
  249. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +24 -28
  250. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +1 -2
  251. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +22 -20
  252. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -3
  253. data/src/core/lib/event_engine/posix_engine/timer.cc +2 -3
  254. data/src/core/lib/event_engine/posix_engine/timer.h +1 -2
  255. data/src/core/lib/event_engine/posix_engine/timer_heap.cc +2 -2
  256. data/src/core/lib/event_engine/posix_engine/timer_heap.h +2 -2
  257. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +9 -11
  258. data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -2
  259. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +3 -3
  260. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +1 -2
  261. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +2 -2
  262. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -2
  263. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +2 -2
  264. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -2
  265. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +2 -2
  266. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +2 -2
  267. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +2 -2
  268. data/src/core/lib/event_engine/query_extensions.h +3 -2
  269. data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +1 -2
  270. data/src/core/lib/event_engine/resolved_address.cc +5 -4
  271. data/src/core/lib/event_engine/resolved_address_internal.h +1 -2
  272. data/src/core/lib/event_engine/shim.cc +3 -3
  273. data/src/core/lib/event_engine/slice.cc +4 -3
  274. data/src/core/lib/event_engine/slice_buffer.cc +1 -2
  275. data/src/core/lib/event_engine/tcp_socket_utils.cc +18 -16
  276. data/src/core/lib/event_engine/tcp_socket_utils.h +1 -2
  277. data/src/core/lib/event_engine/thread_local.cc +2 -2
  278. data/src/core/lib/event_engine/thread_local.h +1 -1
  279. data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -2
  280. data/src/core/lib/event_engine/thread_pool/thread_count.h +2 -3
  281. data/src/core/lib/event_engine/thread_pool/thread_pool.h +1 -2
  282. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +2 -2
  283. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +27 -28
  284. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +4 -8
  285. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +16 -15
  286. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +5 -5
  287. data/src/core/lib/event_engine/time_util.cc +1 -2
  288. data/src/core/lib/event_engine/time_util.h +1 -2
  289. data/src/core/lib/event_engine/trace.h +7 -19
  290. data/src/core/lib/event_engine/utils.cc +1 -2
  291. data/src/core/lib/event_engine/utils.h +1 -2
  292. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +31 -30
  293. data/src/core/lib/event_engine/windows/iocp.cc +10 -8
  294. data/src/core/lib/event_engine/windows/iocp.h +1 -1
  295. data/src/core/lib/event_engine/windows/win_socket.cc +32 -22
  296. data/src/core/lib/event_engine/windows/win_socket.h +4 -5
  297. data/src/core/lib/event_engine/windows/windows_endpoint.cc +24 -25
  298. data/src/core/lib/event_engine/windows/windows_engine.cc +205 -90
  299. data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
  300. data/src/core/lib/event_engine/windows/windows_listener.cc +19 -29
  301. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +2 -2
  302. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +1 -2
  303. data/src/core/lib/event_engine/work_queue/work_queue.h +1 -2
  304. data/src/core/lib/experiments/config.cc +16 -14
  305. data/src/core/lib/experiments/config.h +2 -2
  306. data/src/core/lib/experiments/experiments.cc +57 -158
  307. data/src/core/lib/experiments/experiments.h +35 -52
  308. data/src/core/lib/gprpp/atomic_utils.h +2 -2
  309. data/src/core/lib/gprpp/bitset.h +3 -3
  310. data/src/core/lib/gprpp/chunked_vector.h +6 -5
  311. data/src/core/lib/gprpp/construct_destruct.h +2 -2
  312. data/src/core/lib/gprpp/crash.cc +3 -5
  313. data/src/core/lib/gprpp/crash.h +2 -2
  314. data/src/core/lib/gprpp/debug_location.h +2 -2
  315. data/src/core/lib/gprpp/directory_reader.h +2 -2
  316. data/src/core/lib/gprpp/down_cast.h +3 -3
  317. data/src/core/lib/gprpp/dual_ref_counted.h +54 -41
  318. data/src/core/lib/gprpp/dump_args.cc +54 -0
  319. data/src/core/lib/gprpp/dump_args.h +69 -0
  320. data/src/core/lib/gprpp/env.h +2 -2
  321. data/src/core/lib/gprpp/examine_stack.cc +2 -2
  322. data/src/core/lib/gprpp/examine_stack.h +2 -2
  323. data/src/core/lib/gprpp/fork.cc +1 -2
  324. data/src/core/lib/gprpp/fork.h +2 -2
  325. data/src/core/lib/gprpp/glob.cc +70 -0
  326. data/src/core/lib/gprpp/glob.h +29 -0
  327. data/src/core/lib/gprpp/host_port.cc +6 -4
  328. data/src/core/lib/gprpp/host_port.h +2 -2
  329. data/src/core/lib/gprpp/linux/env.cc +2 -2
  330. data/src/core/lib/gprpp/load_file.cc +1 -2
  331. data/src/core/lib/gprpp/load_file.h +2 -2
  332. data/src/core/lib/gprpp/manual_constructor.h +2 -2
  333. data/src/core/lib/gprpp/match.h +2 -2
  334. data/src/core/lib/gprpp/memory.h +1 -2
  335. data/src/core/lib/gprpp/mpscq.cc +2 -2
  336. data/src/core/lib/gprpp/mpscq.h +5 -4
  337. data/src/core/lib/gprpp/no_destruct.h +2 -2
  338. data/src/core/lib/gprpp/notification.h +2 -2
  339. data/src/core/lib/gprpp/orphanable.h +2 -2
  340. data/src/core/lib/gprpp/overload.h +2 -2
  341. data/src/core/lib/gprpp/per_cpu.cc +2 -3
  342. data/src/core/lib/gprpp/per_cpu.h +1 -2
  343. data/src/core/lib/gprpp/posix/directory_reader.cc +2 -2
  344. data/src/core/lib/gprpp/posix/stat.cc +8 -7
  345. data/src/core/lib/gprpp/posix/thd.cc +18 -19
  346. data/src/core/lib/gprpp/ref_counted.h +35 -26
  347. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -2
  348. data/src/core/lib/gprpp/ref_counted_string.cc +1 -2
  349. data/src/core/lib/gprpp/ref_counted_string.h +2 -2
  350. data/src/core/lib/gprpp/single_set_ptr.h +9 -6
  351. data/src/core/lib/gprpp/sorted_pack.h +2 -2
  352. data/src/core/lib/gprpp/stat.h +2 -2
  353. data/src/core/lib/gprpp/status_helper.cc +14 -33
  354. data/src/core/lib/gprpp/status_helper.h +5 -33
  355. data/src/core/lib/gprpp/strerror.cc +2 -2
  356. data/src/core/lib/gprpp/strerror.h +2 -2
  357. data/src/core/lib/gprpp/sync.h +5 -5
  358. data/src/core/lib/gprpp/table.h +2 -2
  359. data/src/core/lib/gprpp/tchar.cc +2 -2
  360. data/src/core/lib/gprpp/thd.h +7 -7
  361. data/src/core/lib/gprpp/time.cc +9 -10
  362. data/src/core/lib/gprpp/time.h +4 -4
  363. data/src/core/lib/gprpp/time_averaged_stats.cc +2 -2
  364. data/src/core/lib/gprpp/time_util.cc +5 -4
  365. data/src/core/lib/gprpp/time_util.h +1 -2
  366. data/src/core/lib/gprpp/unique_type_name.h +3 -3
  367. data/src/core/lib/gprpp/uuid_v4.cc +2 -2
  368. data/src/core/lib/gprpp/uuid_v4.h +2 -2
  369. data/src/core/lib/gprpp/validation_errors.cc +12 -3
  370. data/src/core/lib/gprpp/validation_errors.h +13 -2
  371. data/src/core/lib/gprpp/windows/stat.cc +6 -5
  372. data/src/core/lib/gprpp/windows/thd.cc +7 -4
  373. data/src/core/lib/gprpp/work_serializer.cc +53 -62
  374. data/src/core/lib/gprpp/work_serializer.h +1 -2
  375. data/src/core/lib/iomgr/buffer_list.cc +5 -4
  376. data/src/core/lib/iomgr/buffer_list.h +1 -2
  377. data/src/core/lib/iomgr/call_combiner.cc +23 -31
  378. data/src/core/lib/iomgr/call_combiner.h +2 -5
  379. data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
  380. data/src/core/lib/iomgr/closure.cc +2 -2
  381. data/src/core/lib/iomgr/closure.h +6 -7
  382. data/src/core/lib/iomgr/combiner.cc +13 -14
  383. data/src/core/lib/iomgr/combiner.h +1 -4
  384. data/src/core/lib/iomgr/endpoint.cc +1 -7
  385. data/src/core/lib/iomgr/endpoint.h +1 -4
  386. data/src/core/lib/iomgr/endpoint_cfstream.cc +26 -46
  387. data/src/core/lib/iomgr/endpoint_pair_posix.cc +6 -5
  388. data/src/core/lib/iomgr/endpoint_pair_windows.cc +15 -15
  389. data/src/core/lib/iomgr/error.cc +16 -24
  390. data/src/core/lib/iomgr/error.h +4 -4
  391. data/src/core/lib/iomgr/ev_apple.cc +3 -5
  392. data/src/core/lib/iomgr/ev_epoll1_linux.cc +58 -56
  393. data/src/core/lib/iomgr/ev_poll_posix.cc +47 -38
  394. data/src/core/lib/iomgr/ev_posix.cc +9 -11
  395. data/src/core/lib/iomgr/ev_posix.h +11 -8
  396. data/src/core/lib/iomgr/event_engine_shims/closure.cc +3 -4
  397. data/src/core/lib/iomgr/event_engine_shims/closure.h +1 -2
  398. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +17 -31
  399. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -2
  400. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +1 -2
  401. data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +1 -2
  402. data/src/core/lib/iomgr/exec_ctx.cc +7 -7
  403. data/src/core/lib/iomgr/exec_ctx.h +7 -5
  404. data/src/core/lib/iomgr/executor.cc +13 -23
  405. data/src/core/lib/iomgr/executor.h +1 -1
  406. data/src/core/lib/iomgr/fork_posix.cc +8 -10
  407. data/src/core/lib/iomgr/fork_windows.cc +3 -1
  408. data/src/core/lib/iomgr/grpc_if_nametoindex.h +2 -2
  409. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
  410. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
  411. data/src/core/lib/iomgr/internal_errqueue.cc +5 -4
  412. data/src/core/lib/iomgr/iocp_windows.cc +13 -9
  413. data/src/core/lib/iomgr/iocp_windows.h +0 -1
  414. data/src/core/lib/iomgr/iomgr.cc +14 -19
  415. data/src/core/lib/iomgr/iomgr.h +2 -2
  416. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  417. data/src/core/lib/iomgr/iomgr_internal.h +2 -2
  418. data/src/core/lib/iomgr/iomgr_windows.cc +4 -2
  419. data/src/core/lib/iomgr/lockfree_event.cc +7 -8
  420. data/src/core/lib/iomgr/lockfree_event.h +1 -2
  421. data/src/core/lib/iomgr/polling_entity.cc +5 -5
  422. data/src/core/lib/iomgr/pollset.cc +2 -2
  423. data/src/core/lib/iomgr/pollset.h +0 -3
  424. data/src/core/lib/iomgr/pollset_set.cc +2 -2
  425. data/src/core/lib/iomgr/pollset_set_windows.cc +2 -2
  426. data/src/core/lib/iomgr/pollset_windows.cc +0 -2
  427. data/src/core/lib/iomgr/pollset_windows.h +0 -1
  428. data/src/core/lib/iomgr/python_util.h +1 -2
  429. data/src/core/lib/iomgr/resolve_address.cc +1 -2
  430. data/src/core/lib/iomgr/resolve_address.h +1 -2
  431. data/src/core/lib/iomgr/resolve_address_impl.h +2 -2
  432. data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
  433. data/src/core/lib/iomgr/resolve_address_posix.h +2 -2
  434. data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
  435. data/src/core/lib/iomgr/resolve_address_windows.h +2 -2
  436. data/src/core/lib/iomgr/resolved_address.h +2 -2
  437. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +3 -1
  438. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  439. data/src/core/lib/iomgr/socket_factory_posix.h +1 -2
  440. data/src/core/lib/iomgr/socket_mutator.cc +2 -3
  441. data/src/core/lib/iomgr/socket_mutator.h +1 -2
  442. data/src/core/lib/iomgr/socket_utils.h +2 -2
  443. data/src/core/lib/iomgr/socket_utils_common_posix.cc +28 -33
  444. data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
  445. data/src/core/lib/iomgr/socket_utils_posix.h +1 -2
  446. data/src/core/lib/iomgr/socket_windows.cc +8 -9
  447. data/src/core/lib/iomgr/tcp_client.cc +2 -2
  448. data/src/core/lib/iomgr/tcp_client.h +1 -2
  449. data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
  450. data/src/core/lib/iomgr/tcp_client_posix.cc +14 -19
  451. data/src/core/lib/iomgr/tcp_client_windows.cc +9 -9
  452. data/src/core/lib/iomgr/tcp_posix.cc +99 -125
  453. data/src/core/lib/iomgr/tcp_posix.h +0 -2
  454. data/src/core/lib/iomgr/tcp_server.cc +2 -2
  455. data/src/core/lib/iomgr/tcp_server.h +1 -2
  456. data/src/core/lib/iomgr/tcp_server_posix.cc +35 -38
  457. data/src/core/lib/iomgr/tcp_server_utils_posix.h +2 -2
  458. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +10 -12
  459. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -8
  460. data/src/core/lib/iomgr/tcp_server_windows.cc +25 -30
  461. data/src/core/lib/iomgr/tcp_windows.cc +33 -47
  462. data/src/core/lib/iomgr/timer.cc +2 -2
  463. data/src/core/lib/iomgr/timer.h +1 -2
  464. data/src/core/lib/iomgr/timer_generic.cc +20 -23
  465. data/src/core/lib/iomgr/timer_generic.h +0 -1
  466. data/src/core/lib/iomgr/timer_heap.cc +2 -3
  467. data/src/core/lib/iomgr/timer_manager.cc +21 -33
  468. data/src/core/lib/iomgr/timer_manager.h +2 -2
  469. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -2
  470. data/src/core/lib/iomgr/unix_sockets_posix.h +1 -2
  471. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +3 -1
  472. data/src/core/lib/iomgr/vsock.cc +3 -3
  473. data/src/core/lib/iomgr/vsock.h +1 -2
  474. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
  475. data/src/core/lib/matchers/matchers.cc +2 -2
  476. data/src/core/lib/matchers/matchers.h +2 -2
  477. data/src/core/lib/promise/activity.cc +4 -3
  478. data/src/core/lib/promise/activity.h +34 -11
  479. data/src/core/lib/promise/all_ok.h +2 -2
  480. data/src/core/lib/promise/arena_promise.h +2 -2
  481. data/src/core/lib/promise/cancel_callback.h +24 -0
  482. data/src/core/lib/promise/context.h +14 -3
  483. data/src/core/lib/promise/detail/basic_seq.h +1 -2
  484. data/src/core/lib/promise/detail/join_state.h +365 -408
  485. data/src/core/lib/promise/detail/promise_factory.h +2 -2
  486. data/src/core/lib/promise/detail/promise_like.h +15 -8
  487. data/src/core/lib/promise/detail/seq_state.h +1192 -1192
  488. data/src/core/lib/promise/detail/status.h +4 -3
  489. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +2 -2
  490. data/src/core/lib/promise/for_each.h +91 -30
  491. data/src/core/lib/promise/if.h +2 -2
  492. data/src/core/lib/promise/interceptor_list.h +9 -10
  493. data/src/core/lib/promise/latch.h +17 -17
  494. data/src/core/lib/promise/loop.h +2 -2
  495. data/src/core/lib/promise/map.h +19 -2
  496. data/src/core/lib/promise/observable.h +182 -0
  497. data/src/core/lib/promise/party.cc +22 -23
  498. data/src/core/lib/promise/party.h +19 -17
  499. data/src/core/lib/promise/pipe.h +31 -50
  500. data/src/core/lib/promise/poll.h +6 -5
  501. data/src/core/lib/promise/prioritized_race.h +2 -2
  502. data/src/core/lib/promise/promise.h +3 -2
  503. data/src/core/lib/promise/race.h +2 -2
  504. data/src/core/lib/promise/seq.h +2 -2
  505. data/src/core/lib/promise/sleep.cc +1 -2
  506. data/src/core/lib/promise/sleep.h +1 -2
  507. data/src/core/lib/promise/status_flag.h +10 -8
  508. data/src/core/lib/promise/try_join.h +4 -3
  509. data/src/core/lib/promise/try_seq.h +4 -3
  510. data/src/core/lib/resource_quota/api.cc +1 -2
  511. data/src/core/lib/resource_quota/api.h +1 -2
  512. data/src/core/lib/resource_quota/arena.cc +57 -81
  513. data/src/core/lib/resource_quota/arena.h +119 -211
  514. data/src/core/lib/resource_quota/connection_quota.cc +8 -9
  515. data/src/core/lib/resource_quota/connection_quota.h +2 -2
  516. data/src/core/lib/resource_quota/memory_quota.cc +20 -21
  517. data/src/core/lib/resource_quota/memory_quota.h +6 -7
  518. data/src/core/lib/resource_quota/periodic_update.cc +3 -3
  519. data/src/core/lib/resource_quota/periodic_update.h +2 -2
  520. data/src/core/lib/resource_quota/resource_quota.cc +2 -2
  521. data/src/core/lib/resource_quota/resource_quota.h +2 -3
  522. data/src/core/lib/resource_quota/thread_quota.cc +4 -3
  523. data/src/core/lib/resource_quota/thread_quota.h +2 -2
  524. data/src/core/lib/security/authorization/audit_logging.cc +6 -6
  525. data/src/core/lib/security/authorization/audit_logging.h +1 -2
  526. data/src/core/lib/security/authorization/authorization_engine.h +2 -2
  527. data/src/core/lib/security/authorization/authorization_policy_provider.h +2 -3
  528. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +2 -3
  529. data/src/core/lib/security/authorization/evaluate_args.cc +8 -11
  530. data/src/core/lib/security/authorization/evaluate_args.h +1 -2
  531. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +4 -3
  532. data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -2
  533. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +9 -11
  534. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +8 -8
  535. data/src/core/lib/security/authorization/matchers.cc +4 -5
  536. data/src/core/lib/security/authorization/matchers.h +2 -2
  537. data/src/core/lib/security/authorization/rbac_policy.cc +2 -2
  538. data/src/core/lib/security/authorization/rbac_policy.h +1 -2
  539. data/src/core/lib/security/authorization/stdout_logger.cc +4 -3
  540. data/src/core/lib/security/authorization/stdout_logger.h +1 -2
  541. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +4 -4
  542. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +6 -6
  543. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +2 -2
  544. data/src/core/lib/security/context/security_context.cc +17 -16
  545. data/src/core/lib/security/context/security_context.h +33 -10
  546. data/src/core/lib/security/credentials/alts/alts_credentials.cc +1 -2
  547. data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -3
  548. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +4 -3
  549. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
  550. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -6
  551. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +4 -5
  552. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +2 -2
  553. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -2
  554. data/src/core/lib/security/credentials/call_creds_util.cc +3 -3
  555. data/src/core/lib/security/credentials/call_creds_util.h +2 -2
  556. data/src/core/lib/security/credentials/channel_creds_registry.h +4 -4
  557. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +7 -5
  558. data/src/core/lib/security/credentials/composite/composite_credentials.cc +9 -8
  559. data/src/core/lib/security/credentials/composite/composite_credentials.h +3 -3
  560. data/src/core/lib/security/credentials/credentials.cc +10 -9
  561. data/src/core/lib/security/credentials/credentials.h +5 -4
  562. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +9 -8
  563. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +4 -4
  564. data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -2
  565. data/src/core/lib/security/credentials/external/aws_request_signer.h +2 -2
  566. data/src/core/lib/security/credentials/external/external_account_credentials.cc +16 -17
  567. data/src/core/lib/security/credentials/external/external_account_credentials.h +5 -5
  568. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +3 -4
  569. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +2 -2
  570. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -7
  571. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +3 -3
  572. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
  573. data/src/core/lib/security/credentials/fake/fake_credentials.h +3 -3
  574. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +4 -5
  575. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +19 -18
  576. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +3 -3
  577. data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -5
  578. data/src/core/lib/security/credentials/iam/iam_credentials.h +3 -3
  579. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +2 -2
  580. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +2 -2
  581. data/src/core/lib/security/credentials/jwt/json_token.cc +19 -19
  582. data/src/core/lib/security/credentials/jwt/json_token.h +2 -3
  583. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +10 -8
  584. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +3 -3
  585. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +65 -69
  586. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
  587. data/src/core/lib/security/credentials/local/local_credentials.cc +1 -2
  588. data/src/core/lib/security/credentials/local/local_credentials.h +3 -3
  589. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
  590. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +6 -6
  591. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +9 -10
  592. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +3 -5
  593. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +28 -34
  594. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +6 -4
  595. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +26 -25
  596. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +2 -2
  597. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +2 -2
  598. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +28 -36
  599. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +4 -4
  600. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +3 -3
  601. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +5 -4
  602. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -22
  603. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +1 -0
  604. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +5 -7
  605. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +1 -2
  606. data/src/core/lib/security/credentials/tls/tls_credentials.cc +15 -18
  607. data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
  608. data/src/core/lib/security/credentials/tls/tls_utils.cc +5 -6
  609. data/src/core/lib/security/credentials/tls/tls_utils.h +1 -2
  610. data/src/core/lib/security/credentials/xds/xds_credentials.cc +8 -8
  611. data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
  612. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +27 -30
  613. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +2 -2
  614. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +20 -17
  615. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
  616. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +6 -5
  617. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +3 -3
  618. data/src/core/lib/security/security_connector/load_system_roots.h +1 -2
  619. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +8 -8
  620. data/src/core/lib/security/security_connector/load_system_roots_supported.h +1 -2
  621. data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
  622. data/src/core/lib/security/security_connector/local/local_security_connector.cc +19 -23
  623. data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
  624. data/src/core/lib/security/security_connector/security_connector.cc +8 -10
  625. data/src/core/lib/security/security_connector/security_connector.h +4 -6
  626. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +23 -25
  627. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +2 -2
  628. data/src/core/lib/security/security_connector/ssl_utils.cc +29 -30
  629. data/src/core/lib/security/security_connector/ssl_utils.h +1 -2
  630. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +42 -53
  631. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +3 -3
  632. data/src/core/lib/security/transport/auth_filters.h +14 -13
  633. data/src/core/lib/security/transport/client_auth_filter.cc +13 -18
  634. data/src/core/lib/security/transport/server_auth_filter.cc +10 -13
  635. data/src/core/lib/security/util/json_util.cc +1 -2
  636. data/src/core/lib/security/util/json_util.h +1 -1
  637. data/src/core/lib/slice/percent_encoding.cc +4 -3
  638. data/src/core/lib/slice/slice.cc +11 -10
  639. data/src/core/lib/slice/slice.h +5 -5
  640. data/src/core/lib/slice/slice_buffer.cc +15 -14
  641. data/src/core/lib/slice/slice_buffer.h +1 -2
  642. data/src/core/lib/slice/slice_internal.h +3 -3
  643. data/src/core/lib/slice/slice_refcount.h +3 -6
  644. data/src/core/lib/slice/slice_string_helpers.cc +3 -3
  645. data/src/core/lib/slice/slice_string_helpers.h +1 -2
  646. data/src/core/lib/surface/api_trace.h +2 -5
  647. data/src/core/lib/surface/byte_buffer.cc +1 -2
  648. data/src/core/lib/surface/byte_buffer_reader.cc +4 -3
  649. data/src/core/lib/surface/call.cc +102 -3899
  650. data/src/core/lib/surface/call.h +158 -90
  651. data/src/core/lib/surface/call_details.cc +1 -2
  652. data/src/core/lib/surface/call_log_batch.cc +2 -3
  653. data/src/core/lib/surface/call_test_only.h +1 -2
  654. data/src/core/lib/surface/call_utils.cc +276 -0
  655. data/src/core/lib/surface/call_utils.h +449 -0
  656. data/src/core/lib/surface/channel.cc +17 -11
  657. data/src/core/lib/surface/channel.h +12 -10
  658. data/src/core/lib/surface/channel_create.cc +18 -9
  659. data/src/core/lib/surface/channel_create.h +5 -4
  660. data/src/core/lib/surface/channel_init.cc +27 -83
  661. data/src/core/lib/surface/channel_init.h +27 -100
  662. data/src/core/lib/surface/channel_stack_type.cc +2 -2
  663. data/src/core/lib/surface/client_call.cc +419 -0
  664. data/src/core/lib/surface/client_call.h +180 -0
  665. data/src/core/lib/surface/completion_queue.cc +45 -51
  666. data/src/core/lib/surface/completion_queue.h +1 -10
  667. data/src/core/lib/surface/completion_queue_factory.cc +9 -8
  668. data/src/core/lib/surface/completion_queue_factory.h +1 -2
  669. data/src/core/lib/surface/event_string.cc +2 -2
  670. data/src/core/lib/surface/event_string.h +1 -2
  671. data/src/core/lib/surface/filter_stack_call.cc +1157 -0
  672. data/src/core/lib/surface/filter_stack_call.h +369 -0
  673. data/src/core/lib/surface/init.cc +8 -8
  674. data/src/core/lib/surface/init_internally.cc +2 -2
  675. data/src/core/lib/surface/lame_client.cc +10 -13
  676. data/src/core/lib/surface/lame_client.h +6 -11
  677. data/src/core/lib/surface/legacy_channel.cc +52 -39
  678. data/src/core/lib/surface/legacy_channel.h +11 -21
  679. data/src/core/lib/surface/metadata_array.cc +1 -2
  680. data/src/core/lib/surface/server_call.cc +222 -0
  681. data/src/core/lib/surface/server_call.h +167 -0
  682. data/src/core/lib/surface/validate_metadata.cc +1 -2
  683. data/src/core/lib/surface/validate_metadata.h +3 -3
  684. data/src/core/lib/surface/version.cc +3 -4
  685. data/src/core/lib/transport/bdp_estimator.cc +7 -7
  686. data/src/core/lib/transport/bdp_estimator.h +6 -8
  687. data/src/core/lib/transport/{call_size_estimator.cc → call_arena_allocator.cc} +3 -3
  688. data/src/core/lib/transport/{call_size_estimator.h → call_arena_allocator.h} +29 -6
  689. data/src/core/lib/transport/call_destination.h +76 -0
  690. data/src/core/lib/transport/call_filters.cc +54 -21
  691. data/src/core/lib/transport/call_filters.h +240 -84
  692. data/src/core/lib/transport/call_final_info.cc +2 -2
  693. data/src/core/lib/transport/call_final_info.h +1 -2
  694. data/src/core/lib/transport/call_spine.cc +17 -19
  695. data/src/core/lib/transport/call_spine.h +238 -215
  696. data/src/core/lib/transport/connectivity_state.cc +9 -12
  697. data/src/core/lib/transport/connectivity_state.h +1 -4
  698. data/src/core/lib/transport/error_utils.cc +1 -2
  699. data/src/core/lib/transport/error_utils.h +1 -2
  700. data/src/core/lib/transport/interception_chain.cc +155 -0
  701. data/src/core/lib/transport/interception_chain.h +236 -0
  702. data/src/core/lib/transport/message.cc +1 -2
  703. data/src/core/lib/transport/metadata.cc +2 -2
  704. data/src/core/lib/transport/metadata_batch.cc +2 -2
  705. data/src/core/lib/transport/metadata_batch.h +43 -5
  706. data/src/core/lib/transport/metadata_compression_traits.h +2 -2
  707. data/src/core/lib/transport/metadata_info.cc +2 -2
  708. data/src/core/lib/transport/metadata_info.h +1 -1
  709. data/src/core/lib/transport/parsed_metadata.cc +2 -2
  710. data/src/core/lib/transport/parsed_metadata.h +1 -2
  711. data/src/core/lib/transport/simple_slice_based_metadata.h +2 -2
  712. data/src/core/lib/transport/status_conversion.cc +2 -2
  713. data/src/core/lib/transport/status_conversion.h +1 -2
  714. data/src/core/lib/transport/timeout_encoding.cc +5 -5
  715. data/src/core/lib/transport/timeout_encoding.h +2 -2
  716. data/src/core/lib/transport/transport.cc +4 -8
  717. data/src/core/lib/transport/transport.h +80 -74
  718. data/src/core/lib/transport/transport_op_string.cc +1 -2
  719. data/src/core/lib/uri/uri_parser.cc +3 -3
  720. data/src/core/lib/uri/uri_parser.h +2 -2
  721. data/src/core/load_balancing/address_filtering.cc +2 -2
  722. data/src/core/load_balancing/address_filtering.h +2 -2
  723. data/src/core/load_balancing/backend_metric_data.h +2 -2
  724. data/src/core/load_balancing/backend_metric_parser.cc +2 -2
  725. data/src/core/load_balancing/backend_metric_parser.h +2 -2
  726. data/src/core/load_balancing/child_policy_handler.cc +14 -14
  727. data/src/core/load_balancing/child_policy_handler.h +2 -2
  728. data/src/core/load_balancing/delegating_helper.h +2 -3
  729. data/src/core/load_balancing/endpoint_list.cc +11 -13
  730. data/src/core/load_balancing/endpoint_list.h +16 -10
  731. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +29 -30
  732. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +20 -8
  733. data/src/core/load_balancing/grpclb/grpclb.cc +65 -70
  734. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +3 -3
  735. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.h +1 -2
  736. data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +1 -2
  737. data/src/core/load_balancing/grpclb/grpclb_client_stats.h +1 -2
  738. data/src/core/load_balancing/grpclb/load_balancer_api.cc +4 -6
  739. data/src/core/load_balancing/grpclb/load_balancer_api.h +2 -3
  740. data/src/core/load_balancing/health_check_client.cc +14 -18
  741. data/src/core/load_balancing/health_check_client.h +2 -2
  742. data/src/core/load_balancing/health_check_client_internal.h +1 -2
  743. data/src/core/load_balancing/lb_policy.cc +7 -10
  744. data/src/core/load_balancing/lb_policy.h +20 -5
  745. data/src/core/load_balancing/lb_policy_factory.h +3 -3
  746. data/src/core/load_balancing/lb_policy_registry.cc +5 -6
  747. data/src/core/load_balancing/lb_policy_registry.h +3 -3
  748. data/src/core/load_balancing/oob_backend_metric.cc +6 -9
  749. data/src/core/load_balancing/oob_backend_metric.h +2 -2
  750. data/src/core/load_balancing/oob_backend_metric_internal.h +1 -2
  751. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +36 -38
  752. data/src/core/load_balancing/outlier_detection/outlier_detection.h +5 -5
  753. data/src/core/load_balancing/pick_first/pick_first.cc +1141 -156
  754. data/src/core/load_balancing/priority/priority.cc +41 -38
  755. data/src/core/load_balancing/ring_hash/ring_hash.cc +45 -30
  756. data/src/core/load_balancing/ring_hash/ring_hash.h +5 -5
  757. data/src/core/load_balancing/rls/rls.cc +106 -99
  758. data/src/core/load_balancing/round_robin/round_robin.cc +43 -35
  759. data/src/core/load_balancing/subchannel_interface.h +1 -2
  760. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +4 -4
  761. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h +2 -2
  762. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +79 -58
  763. data/src/core/load_balancing/weighted_target/weighted_target.cc +29 -32
  764. data/src/core/load_balancing/weighted_target/weighted_target.h +1 -1
  765. data/src/core/load_balancing/xds/cds.cc +25 -28
  766. data/src/core/load_balancing/xds/xds_cluster_impl.cc +28 -28
  767. data/src/core/load_balancing/xds/xds_cluster_manager.cc +17 -20
  768. data/src/core/load_balancing/xds/xds_override_host.cc +46 -47
  769. data/src/core/load_balancing/xds/xds_override_host.h +5 -5
  770. data/src/core/load_balancing/xds/xds_wrr_locality.cc +12 -15
  771. data/src/core/plugin_registry/grpc_plugin_registry.cc +11 -10
  772. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +1 -2
  773. data/src/core/resolver/binder/binder_resolver.cc +7 -6
  774. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +8 -8
  775. data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +2 -2
  776. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -3
  777. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -3
  778. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +36 -35
  779. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +20 -27
  780. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +2 -7
  781. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +1 -1
  782. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -2
  783. data/src/core/resolver/dns/dns_resolver_plugin.cc +10 -10
  784. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +9 -14
  785. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h +3 -3
  786. data/src/core/resolver/dns/event_engine/service_config_helper.cc +7 -7
  787. data/src/core/resolver/dns/event_engine/service_config_helper.h +2 -2
  788. data/src/core/resolver/dns/native/dns_resolver.cc +11 -13
  789. data/src/core/resolver/endpoint_addresses.cc +5 -5
  790. data/src/core/resolver/endpoint_addresses.h +2 -2
  791. data/src/core/resolver/fake/fake_resolver.cc +5 -5
  792. data/src/core/resolver/fake/fake_resolver.h +2 -3
  793. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +22 -23
  794. data/src/core/resolver/polling_resolver.cc +35 -40
  795. data/src/core/resolver/polling_resolver.h +1 -2
  796. data/src/core/resolver/resolver.cc +3 -7
  797. data/src/core/resolver/resolver.h +2 -4
  798. data/src/core/resolver/resolver_factory.h +3 -3
  799. data/src/core/resolver/resolver_registry.cc +11 -13
  800. data/src/core/resolver/resolver_registry.h +3 -3
  801. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +5 -6
  802. data/src/core/resolver/xds/xds_dependency_manager.cc +27 -27
  803. data/src/core/resolver/xds/xds_dependency_manager.h +7 -7
  804. data/src/core/resolver/xds/xds_resolver.cc +32 -39
  805. data/src/core/resolver/xds/xds_resolver_attributes.h +2 -2
  806. data/src/core/{lib/surface → server}/server.cc +306 -424
  807. data/src/core/{lib/surface → server}/server.h +43 -26
  808. data/src/core/{lib/channel → server}/server_call_tracer_filter.cc +16 -20
  809. data/src/core/{lib/channel → server}/server_call_tracer_filter.h +3 -3
  810. data/src/core/{ext/filters/server_config_selector → server}/server_config_selector.h +6 -6
  811. data/src/core/{ext/filters/server_config_selector → server}/server_config_selector_filter.cc +39 -40
  812. data/src/core/{ext/filters/server_config_selector → server}/server_config_selector_filter.h +3 -3
  813. data/src/core/{lib/surface → server}/server_interface.h +6 -4
  814. data/src/core/{ext/xds → server}/xds_channel_stack_modifier.cc +4 -4
  815. data/src/core/{ext/xds → server}/xds_channel_stack_modifier.h +5 -6
  816. data/src/core/{ext/xds → server}/xds_server_config_fetcher.cc +24 -26
  817. data/src/core/service_config/service_config.h +2 -3
  818. data/src/core/service_config/service_config_call_data.h +15 -13
  819. data/src/core/service_config/service_config_channel_arg_filter.cc +12 -11
  820. data/src/core/service_config/service_config_impl.cc +7 -7
  821. data/src/core/service_config/service_config_impl.h +4 -4
  822. data/src/core/service_config/service_config_parser.cc +4 -8
  823. data/src/core/service_config/service_config_parser.h +3 -3
  824. data/src/core/{lib/channel → telemetry}/call_tracer.cc +25 -35
  825. data/src/core/{lib/channel → telemetry}/call_tracer.h +33 -11
  826. data/src/core/{lib/debug → telemetry}/histogram_view.cc +2 -2
  827. data/src/core/{lib/debug → telemetry}/histogram_view.h +5 -5
  828. data/src/core/telemetry/metrics.cc +178 -0
  829. data/src/core/telemetry/metrics.h +562 -0
  830. data/src/core/{lib/debug → telemetry}/stats.cc +3 -3
  831. data/src/core/{lib/debug → telemetry}/stats.h +7 -7
  832. data/src/core/{lib/debug → telemetry}/stats_data.cc +3 -3
  833. data/src/core/{lib/debug → telemetry}/stats_data.h +6 -6
  834. data/src/core/{lib/channel → telemetry}/tcp_tracer.h +5 -5
  835. data/src/core/tsi/alts/crypt/aes_gcm.cc +1 -2
  836. data/src/core/tsi/alts/crypt/gsec.cc +1 -2
  837. data/src/core/tsi/alts/crypt/gsec.h +1 -2
  838. data/src/core/tsi/alts/frame_protector/alts_counter.cc +1 -2
  839. data/src/core/tsi/alts/frame_protector/alts_counter.h +1 -2
  840. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +1 -2
  841. data/src/core/tsi/alts/frame_protector/alts_crypter.h +1 -2
  842. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -15
  843. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +2 -2
  844. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +1 -2
  845. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +1 -2
  846. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +1 -2
  847. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -2
  848. data/src/core/tsi/alts/frame_protector/frame_handler.cc +1 -2
  849. data/src/core/tsi/alts/frame_protector/frame_handler.h +2 -2
  850. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +63 -64
  851. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -2
  852. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +5 -4
  853. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +1 -2
  854. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +54 -53
  855. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -2
  856. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +7 -5
  857. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -2
  858. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +4 -3
  859. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -2
  860. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +10 -8
  861. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +2 -2
  862. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +6 -5
  863. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +2 -2
  864. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +1 -2
  865. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +10 -6
  866. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +1 -2
  867. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +2 -2
  868. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +9 -7
  869. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +2 -2
  870. data/src/core/tsi/fake_transport_security.cc +20 -21
  871. data/src/core/tsi/local_transport_security.cc +7 -7
  872. data/src/core/tsi/local_transport_security.h +1 -2
  873. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +6 -5
  874. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +1 -2
  875. data/src/core/tsi/ssl/session_cache/ssl_session.h +1 -2
  876. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +15 -14
  877. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +1 -2
  878. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +3 -4
  879. data/src/core/tsi/ssl_transport_security.cc +96 -100
  880. data/src/core/tsi/ssl_transport_security.h +1 -2
  881. data/src/core/tsi/ssl_transport_security_utils.cc +85 -28
  882. data/src/core/tsi/ssl_transport_security_utils.h +12 -2
  883. data/src/core/tsi/ssl_types.h +2 -2
  884. data/src/core/tsi/transport_security.cc +1 -6
  885. data/src/core/tsi/transport_security.h +2 -4
  886. data/src/core/tsi/transport_security_grpc.cc +2 -2
  887. data/src/core/tsi/transport_security_grpc.h +1 -2
  888. data/src/core/tsi/transport_security_interface.h +2 -6
  889. data/src/core/{lib/gpr → util}/alloc.cc +3 -1
  890. data/src/core/{lib/gpr → util}/alloc.h +3 -3
  891. data/src/core/{lib/gpr → util}/android/log.cc +0 -19
  892. data/src/core/{lib/gpr → util}/atm.cc +1 -1
  893. data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +26 -26
  894. data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +9 -9
  895. data/src/core/{lib/http → util/http_client}/format_request.cc +2 -2
  896. data/src/core/{lib/http → util/http_client}/format_request.h +4 -4
  897. data/src/core/{lib/http → util/http_client}/httpcli.cc +12 -13
  898. data/src/core/{lib/http → util/http_client}/httpcli.h +5 -5
  899. data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +10 -10
  900. data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +3 -3
  901. data/src/core/{lib/http → util/http_client}/parser.cc +6 -7
  902. data/src/core/{lib/http → util/http_client}/parser.h +3 -5
  903. data/src/core/{lib → util}/json/json.h +3 -3
  904. data/src/core/{lib → util}/json/json_args.h +3 -3
  905. data/src/core/{lib → util}/json/json_channel_args.h +4 -4
  906. data/src/core/{lib → util}/json/json_object_loader.cc +1 -1
  907. data/src/core/{lib → util}/json/json_object_loader.h +5 -5
  908. data/src/core/{lib → util}/json/json_reader.cc +4 -3
  909. data/src/core/{lib → util}/json/json_reader.h +4 -4
  910. data/src/core/{lib → util}/json/json_util.cc +3 -3
  911. data/src/core/{lib → util}/json/json_util.h +4 -4
  912. data/src/core/{lib → util}/json/json_writer.cc +1 -1
  913. data/src/core/{lib → util}/json/json_writer.h +4 -4
  914. data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
  915. data/src/core/util/log.cc +167 -0
  916. data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
  917. data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
  918. data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
  919. data/src/core/{lib/gpr → util}/posix/sync.cc +25 -23
  920. data/src/core/{lib/gpr → util}/posix/time.cc +10 -7
  921. data/src/core/{lib/gpr → util}/posix/tmpfile.cc +5 -3
  922. data/src/core/{lib/gpr → util}/spinlock.h +3 -3
  923. data/src/core/{lib/gpr → util}/string.cc +2 -2
  924. data/src/core/{lib/gpr → util}/string.h +3 -3
  925. data/src/core/{lib/gpr → util}/sync.cc +5 -3
  926. data/src/core/{lib/gpr → util}/time.cc +10 -8
  927. data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
  928. data/src/core/{lib/gpr → util}/time_precise.h +3 -3
  929. data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
  930. data/src/core/{lib/gpr → util}/useful.h +3 -3
  931. data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
  932. data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
  933. data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
  934. data/src/core/{lib/gpr → util}/windows/sync.cc +3 -1
  935. data/src/core/{lib/gpr → util}/windows/time.cc +5 -2
  936. data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
  937. data/src/core/{ext/xds → xds/grpc}/certificate_provider_store.cc +5 -6
  938. data/src/core/{ext/xds → xds/grpc}/certificate_provider_store.h +8 -9
  939. data/src/core/{ext/xds → xds/grpc}/file_watcher_certificate_provider_factory.cc +5 -6
  940. data/src/core/{ext/xds → xds/grpc}/file_watcher_certificate_provider_factory.h +7 -8
  941. data/src/core/{ext/xds → xds/grpc}/upb_utils.h +5 -5
  942. data/src/core/{ext/xds → xds/grpc}/xds_audit_logger_registry.cc +4 -4
  943. data/src/core/{ext/xds → xds/grpc}/xds_audit_logger_registry.h +7 -7
  944. data/src/core/{ext/xds → xds/grpc}/xds_bootstrap_grpc.cc +7 -8
  945. data/src/core/{ext/xds → xds/grpc}/xds_bootstrap_grpc.h +14 -14
  946. data/src/core/{ext/xds → xds/grpc}/xds_certificate_provider.cc +5 -5
  947. data/src/core/{ext/xds → xds/grpc}/xds_certificate_provider.h +5 -6
  948. data/src/core/{ext/xds → xds/grpc}/xds_client_grpc.cc +51 -34
  949. data/src/core/{ext/xds → xds/grpc}/xds_client_grpc.h +10 -11
  950. data/src/core/{ext/xds → xds/grpc}/xds_cluster.cc +22 -14
  951. data/src/core/{ext/xds → xds/grpc}/xds_cluster.h +12 -13
  952. data/src/core/{ext/xds → xds/grpc}/xds_cluster_specifier_plugin.cc +6 -6
  953. data/src/core/{ext/xds → xds/grpc}/xds_cluster_specifier_plugin.h +7 -7
  954. data/src/core/{ext/xds → xds/grpc}/xds_common_types.cc +6 -7
  955. data/src/core/{ext/xds → xds/grpc}/xds_common_types.h +7 -7
  956. data/src/core/{ext/xds → xds/grpc}/xds_endpoint.cc +11 -12
  957. data/src/core/{ext/xds → xds/grpc}/xds_endpoint.h +9 -9
  958. data/src/core/{ext/xds → xds/grpc}/xds_health_status.cc +3 -3
  959. data/src/core/{ext/xds → xds/grpc}/xds_health_status.h +5 -5
  960. data/src/core/{ext/xds → xds/grpc}/xds_http_fault_filter.cc +6 -7
  961. data/src/core/{ext/xds → xds/grpc}/xds_http_fault_filter.h +8 -8
  962. data/src/core/{ext/xds → xds/grpc}/xds_http_filters.cc +8 -9
  963. data/src/core/{ext/xds → xds/grpc}/xds_http_filters.h +9 -9
  964. data/src/core/{ext/xds → xds/grpc}/xds_http_rbac_filter.cc +9 -10
  965. data/src/core/{ext/xds → xds/grpc}/xds_http_rbac_filter.h +8 -8
  966. data/src/core/{ext/xds → xds/grpc}/xds_http_stateful_session_filter.cc +7 -8
  967. data/src/core/{ext/xds → xds/grpc}/xds_http_stateful_session_filter.h +8 -8
  968. data/src/core/{ext/xds → xds/grpc}/xds_lb_policy_registry.cc +3 -4
  969. data/src/core/{ext/xds → xds/grpc}/xds_lb_policy_registry.h +7 -7
  970. data/src/core/{ext/xds → xds/grpc}/xds_listener.cc +12 -14
  971. data/src/core/{ext/xds → xds/grpc}/xds_listener.h +12 -12
  972. data/src/core/{ext/xds → xds/grpc}/xds_route_config.cc +23 -24
  973. data/src/core/{ext/xds → xds/grpc}/xds_route_config.h +11 -11
  974. data/src/core/{ext/xds → xds/grpc}/xds_routing.cc +6 -6
  975. data/src/core/{ext/xds → xds/grpc}/xds_routing.h +8 -8
  976. data/src/core/{ext/xds → xds/grpc}/xds_transport_grpc.cc +16 -16
  977. data/src/core/{ext/xds → xds/grpc}/xds_transport_grpc.h +7 -8
  978. data/src/core/{ext/xds → xds/xds_client}/xds_api.cc +9 -14
  979. data/src/core/{ext/xds → xds/xds_client}/xds_api.h +7 -7
  980. data/src/core/{ext/xds → xds/xds_client}/xds_bootstrap.cc +4 -4
  981. data/src/core/{ext/xds → xds/xds_client}/xds_bootstrap.h +6 -6
  982. data/src/core/{ext/xds → xds/xds_client}/xds_channel_args.h +3 -3
  983. data/src/core/{ext/xds → xds/xds_client}/xds_client.cc +60 -62
  984. data/src/core/{ext/xds → xds/xds_client}/xds_client.h +10 -14
  985. data/src/core/{ext/xds → xds/xds_client}/xds_client_stats.cc +23 -22
  986. data/src/core/{ext/xds → xds/xds_client}/xds_client_stats.h +8 -8
  987. data/src/core/{ext/xds → xds/xds_client}/xds_metrics.h +7 -5
  988. data/src/core/{ext/xds → xds/xds_client}/xds_resource_type.h +6 -6
  989. data/src/core/{ext/xds → xds/xds_client}/xds_resource_type_impl.h +7 -7
  990. data/src/core/{ext/xds → xds/xds_client}/xds_transport.h +6 -6
  991. data/src/ruby/bin/math_pb.rb +1 -22
  992. data/src/ruby/ext/grpc/rb_call.c +8 -1
  993. data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
  994. data/src/ruby/ext/grpc/rb_call_credentials.h +1 -0
  995. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  996. data/src/ruby/ext/grpc/rb_channel_credentials.c +1 -0
  997. data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
  998. data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
  999. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +130 -130
  1000. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +198 -197
  1001. data/src/ruby/ext/grpc/rb_server.c +40 -22
  1002. data/src/ruby/ext/grpc/rb_server_credentials.c +1 -0
  1003. data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
  1004. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +1 -0
  1005. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +1 -0
  1006. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +1 -0
  1007. data/src/ruby/lib/grpc/version.rb +1 -1
  1008. data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
  1009. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
  1010. data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
  1011. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
  1012. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
  1013. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
  1014. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
  1015. data/third_party/abseil-cpp/absl/log/check.h +209 -0
  1016. data/third_party/abseil-cpp/absl/log/internal/check_impl.h +150 -0
  1017. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +118 -0
  1018. data/third_party/abseil-cpp/absl/log/internal/check_op.h +420 -0
  1019. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
  1020. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +13 -18
  1021. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +25 -10
  1022. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +3 -18
  1023. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c +3 -2
  1024. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +1 -1
  1025. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +19 -15
  1026. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +7 -0
  1027. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_des.c +48 -66
  1028. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +7 -3
  1029. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +20 -28
  1030. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +9 -4
  1031. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +2 -2
  1032. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
  1033. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +4 -1
  1034. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +0 -15
  1035. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +7 -61
  1036. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +7 -7
  1037. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +1 -0
  1038. data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1539 -0
  1039. data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
  1040. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +36 -20
  1041. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +3 -4
  1042. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
  1043. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +81 -60
  1044. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +41 -120
  1045. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +13 -13
  1046. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +7 -0
  1047. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c +137 -0
  1048. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c +120 -0
  1049. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +30 -0
  1050. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +3 -4
  1051. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +30 -0
  1052. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +1 -4
  1053. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +30 -0
  1054. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +1 -4
  1055. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +6 -7
  1056. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +21 -0
  1057. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +31 -7
  1058. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -2
  1059. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +1 -1
  1060. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +3 -3
  1061. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
  1062. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +46 -2
  1063. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +8 -5
  1064. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
  1065. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +1 -1
  1066. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +2 -2
  1067. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +14 -7
  1068. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +2 -1
  1069. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +0 -3
  1070. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +11 -7
  1071. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +5 -0
  1072. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +5 -1
  1073. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
  1074. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +2 -1
  1075. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +11 -11
  1076. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +22 -8
  1077. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +6 -4
  1078. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +3 -6
  1079. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +78 -29
  1080. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +4 -4
  1081. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +3 -3
  1082. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +10 -4
  1083. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +7 -0
  1084. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +2 -0
  1085. data/third_party/boringssl-with-bazel/src/crypto/internal.h +62 -27
  1086. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +1 -1
  1087. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +2 -1
  1088. data/third_party/boringssl-with-bazel/src/crypto/mem.c +18 -9
  1089. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -17
  1090. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +44 -41
  1091. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +13 -12
  1092. data/third_party/boringssl-with-bazel/src/crypto/spx/spx.c +7 -6
  1093. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +26 -33
  1094. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +1 -1
  1095. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +4 -5
  1096. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
  1097. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.c +9 -4
  1098. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.c +2 -2
  1099. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.c +1 -1
  1100. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.c +2 -0
  1101. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
  1102. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
  1103. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +21 -25
  1104. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +8 -25
  1105. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +2 -2
  1106. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +1 -6
  1107. data/third_party/boringssl-with-bazel/{err_data.c → src/gen/crypto/err_data.c} +487 -485
  1108. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -1
  1109. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +85 -42
  1110. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +12 -4
  1111. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +10 -11
  1112. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +17 -1
  1113. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +10 -3
  1114. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +13 -0
  1115. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +25 -14
  1116. data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +1 -0
  1117. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +15 -3
  1118. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +131 -0
  1119. data/third_party/boringssl-with-bazel/src/include/openssl/{kyber.h → experimental/kyber.h} +10 -0
  1120. data/third_party/boringssl-with-bazel/src/{crypto/spx/internal.h → include/openssl/experimental/spx.h} +24 -13
  1121. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +2 -2
  1122. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +63 -53
  1123. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +19 -10
  1124. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +26 -12
  1125. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +358 -102
  1126. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +10 -3
  1127. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +13 -10
  1128. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +2 -2
  1129. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2931 -2453
  1130. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -8
  1131. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +4 -4
  1132. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
  1133. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +19 -18
  1134. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +3 -9
  1135. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +64 -58
  1136. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +1 -1
  1137. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +17 -7
  1138. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +69 -16
  1139. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +145 -114
  1140. data/third_party/boringssl-with-bazel/src/ssl/internal.h +243 -189
  1141. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +1 -1
  1142. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
  1143. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +59 -385
  1144. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +21 -19
  1145. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +423 -0
  1146. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +2 -2
  1147. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +2 -1
  1148. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +108 -81
  1149. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +116 -93
  1150. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +6 -14
  1151. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +1 -1
  1152. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +48 -116
  1153. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +21 -27
  1154. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +36 -3
  1155. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +53 -18
  1156. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +1 -1
  1157. metadata +207 -196
  1158. data/src/core/client_channel/client_channel_channelz.cc +0 -93
  1159. data/src/core/client_channel/client_channel_channelz.h +0 -85
  1160. data/src/core/ext/filters/deadline/deadline_filter.cc +0 -407
  1161. data/src/core/ext/filters/deadline/deadline_filter.h +0 -85
  1162. data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
  1163. data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
  1164. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
  1165. data/src/core/lib/channel/channel_stack_trace.cc +0 -19
  1166. data/src/core/lib/channel/channel_stack_trace.h +0 -24
  1167. data/src/core/lib/channel/context.h +0 -77
  1168. data/src/core/lib/channel/metrics.cc +0 -396
  1169. data/src/core/lib/channel/metrics.h +0 -406
  1170. data/src/core/lib/event_engine/trace.cc +0 -25
  1171. data/src/core/lib/gpr/log.cc +0 -166
  1172. data/src/core/lib/gpr/log_internal.h +0 -55
  1173. data/src/core/lib/iomgr/ev_windows.cc +0 -30
  1174. data/src/core/lib/promise/trace.cc +0 -20
  1175. data/src/core/lib/promise/trace.h +0 -24
  1176. data/src/core/lib/resource_quota/trace.cc +0 -19
  1177. data/src/core/lib/resource_quota/trace.h +0 -24
  1178. data/src/core/lib/security/transport/tsi_error.cc +0 -31
  1179. data/src/core/lib/security/transport/tsi_error.h +0 -30
  1180. data/src/core/lib/slice/slice_refcount.cc +0 -20
  1181. data/src/core/lib/surface/api_trace.cc +0 -25
  1182. data/src/core/lib/surface/call_trace.h +0 -24
  1183. data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
  1184. data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
  1185. data/src/core/lib/transport/batch_builder.cc +0 -170
  1186. data/src/core/lib/transport/batch_builder.h +0 -476
  1187. data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
  1188. data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
  1189. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
  1190. data/third_party/boringssl-with-bazel/src/include/openssl/pki/certificate.h +0 -83
  1191. data/third_party/boringssl-with-bazel/src/include/openssl/pki/signature_verify_cache.h +0 -41
  1192. /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
  1193. /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
  1194. /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
  1195. /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
  1196. /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
@@ -15,8 +15,6 @@
15
15
  #ifndef GRPC_SRC_CORE_LIB_GPRPP_VALIDATION_ERRORS_H
16
16
  #define GRPC_SRC_CORE_LIB_GPRPP_VALIDATION_ERRORS_H
17
17
 
18
- #include <grpc/support/port_platform.h>
19
-
20
18
  #include <stddef.h>
21
19
 
22
20
  #include <map>
@@ -27,6 +25,8 @@
27
25
  #include "absl/status/status.h"
28
26
  #include "absl/strings/string_view.h"
29
27
 
28
+ #include <grpc/support/port_platform.h>
29
+
30
30
  namespace grpc_core {
31
31
 
32
32
  // Tracks errors that occur during validation of a data structure (e.g.,
@@ -63,6 +63,9 @@ namespace grpc_core {
63
63
  // }
64
64
  class ValidationErrors {
65
65
  public:
66
+ // Default maximum number of errors to track per scope.
67
+ static constexpr size_t kMaxErrorCount = 20;
68
+
66
69
  // Pushes a field name onto the stack at construction and pops it off
67
70
  // of the stack at destruction.
68
71
  class ScopedField {
@@ -93,6 +96,12 @@ class ValidationErrors {
93
96
  ValidationErrors* errors_;
94
97
  };
95
98
 
99
+ ValidationErrors() : ValidationErrors(kMaxErrorCount) {}
100
+
101
+ // Creates a tracker that collects at most `max_error_count` errors per field.
102
+ explicit ValidationErrors(size_t max_error_count)
103
+ : max_error_count_(max_error_count) {}
104
+
96
105
  // Records that we've encountered an error associated with the current
97
106
  // field.
98
107
  void AddError(absl::string_view error) GPR_ATTRIBUTE_NOINLINE;
@@ -127,6 +136,8 @@ class ValidationErrors {
127
136
  // Stack of field names indicating the field that we are currently
128
137
  // validating.
129
138
  std::vector<std::string> fields_;
139
+
140
+ size_t max_error_count_;
130
141
  };
131
142
 
132
143
  } // namespace grpc_core
@@ -22,7 +22,8 @@
22
22
  #include <sys/stat.h>
23
23
  #include <sys/types.h>
24
24
 
25
- #include <grpc/support/log.h>
25
+ #include "absl/log/check.h"
26
+ #include "absl/log/log.h"
26
27
 
27
28
  #include "src/core/lib/gprpp/crash.h"
28
29
  #include "src/core/lib/gprpp/stat.h"
@@ -31,13 +32,13 @@
31
32
  namespace grpc_core {
32
33
 
33
34
  absl::Status GetFileModificationTime(const char* filename, time_t* timestamp) {
34
- GPR_ASSERT(filename != nullptr);
35
- GPR_ASSERT(timestamp != nullptr);
35
+ CHECK_NE(filename, nullptr);
36
+ CHECK_NE(timestamp, nullptr);
36
37
  struct _stat buf;
37
38
  if (_stat(filename, &buf) != 0) {
38
39
  std::string error_msg = StrError(errno);
39
- gpr_log(GPR_ERROR, "_stat failed for filename %s with error %s.", filename,
40
- error_msg.c_str());
40
+ LOG(ERROR) << "_stat failed for filename " << filename << " with error "
41
+ << error_msg;
41
42
  return absl::Status(absl::StatusCode::kInternal, error_msg);
42
43
  }
43
44
  // Last file/directory modification time.
@@ -23,6 +23,9 @@
23
23
 
24
24
  #include <string.h>
25
25
 
26
+ #include "absl/log/check.h"
27
+ #include "absl/log/log.h"
28
+
26
29
  #include <grpc/support/alloc.h>
27
30
  #include <grpc/support/log.h>
28
31
  #include <grpc/support/sync.h>
@@ -101,7 +104,7 @@ class ThreadInternalsWindows
101
104
 
102
105
  void Join() override {
103
106
  DWORD ret = WaitForSingleObject(info_->join_event, INFINITE);
104
- GPR_ASSERT(ret == WAIT_OBJECT_0);
107
+ CHECK(ret == WAIT_OBJECT_0);
105
108
  destroy_thread();
106
109
  }
107
110
 
@@ -121,7 +124,7 @@ class ThreadInternalsWindows
121
124
  g_thd_info->body(g_thd_info->arg);
122
125
  if (g_thd_info->joinable) {
123
126
  BOOL ret = SetEvent(g_thd_info->join_event);
124
- GPR_ASSERT(ret);
127
+ CHECK(ret);
125
128
  } else {
126
129
  gpr_free(g_thd_info);
127
130
  }
@@ -147,12 +150,12 @@ namespace grpc_core {
147
150
 
148
151
  void Thread::Signal(gpr_thd_id /* tid */, int /* sig */) {
149
152
  // TODO(hork): Implement
150
- gpr_log(GPR_DEBUG, "Thread signals are not supported on Windows.");
153
+ VLOG(2) << "Thread signals are not supported on Windows.";
151
154
  }
152
155
 
153
156
  void Thread::Kill(gpr_thd_id /* tid */) {
154
157
  // TODO(hork): Implement
155
- gpr_log(GPR_DEBUG, "Thread::Kill is not supported on Windows.");
158
+ VLOG(2) << "Thread::Kill is not supported on Windows.";
156
159
  }
157
160
 
158
161
  Thread::Thread(const char* /* thd_name */, void (*thd_body)(void* arg),
@@ -14,8 +14,6 @@
14
14
  // limitations under the License.
15
15
  //
16
16
 
17
- #include <grpc/support/port_platform.h>
18
-
19
17
  #include "src/core/lib/gprpp/work_serializer.h"
20
18
 
21
19
  #include <stdint.h>
@@ -29,12 +27,13 @@
29
27
  #include <utility>
30
28
 
31
29
  #include "absl/container/inlined_vector.h"
30
+ #include "absl/log/check.h"
31
+ #include "absl/log/log.h"
32
32
 
33
33
  #include <grpc/event_engine/event_engine.h>
34
34
  #include <grpc/support/log.h>
35
+ #include <grpc/support/port_platform.h>
35
36
 
36
- #include "src/core/lib/debug/stats.h"
37
- #include "src/core/lib/debug/stats_data.h"
38
37
  #include "src/core/lib/debug/trace.h"
39
38
  #include "src/core/lib/experiments/experiments.h"
40
39
  #include "src/core/lib/gprpp/debug_location.h"
@@ -42,11 +41,11 @@
42
41
  #include "src/core/lib/gprpp/orphanable.h"
43
42
  #include "src/core/lib/gprpp/sync.h"
44
43
  #include "src/core/lib/iomgr/exec_ctx.h"
44
+ #include "src/core/telemetry/stats.h"
45
+ #include "src/core/telemetry/stats_data.h"
45
46
 
46
47
  namespace grpc_core {
47
48
 
48
- DebugOnlyTraceFlag grpc_work_serializer_trace(false, "work_serializer");
49
-
50
49
  //
51
50
  // WorkSerializer::WorkSerializerImpl
52
51
  //
@@ -108,7 +107,7 @@ class WorkSerializer::LegacyWorkSerializer final : public WorkSerializerImpl {
108
107
  // First 16 bits indicate ownership of the WorkSerializer, next 48 bits are
109
108
  // queue size (i.e., refs).
110
109
  static uint64_t MakeRefPair(uint16_t owners, uint64_t size) {
111
- GPR_ASSERT(size >> 48 == 0);
110
+ CHECK_EQ(size >> 48, 0u);
112
111
  return (static_cast<uint64_t>(owners) << 48) + static_cast<int64_t>(size);
113
112
  }
114
113
  static uint32_t GetOwners(uint64_t ref_pair) {
@@ -137,7 +136,7 @@ class WorkSerializer::LegacyWorkSerializer final : public WorkSerializerImpl {
137
136
 
138
137
  void WorkSerializer::LegacyWorkSerializer::Run(std::function<void()> callback,
139
138
  const DebugLocation& location) {
140
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
139
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
141
140
  gpr_log(GPR_INFO, "WorkSerializer::Run() %p Scheduling callback [%s:%d]",
142
141
  this, location.file(), location.line());
143
142
  }
@@ -146,13 +145,11 @@ void WorkSerializer::LegacyWorkSerializer::Run(std::function<void()> callback,
146
145
  const uint64_t prev_ref_pair =
147
146
  refs_.fetch_add(MakeRefPair(1, 1), std::memory_order_acq_rel);
148
147
  // The work serializer should not have been orphaned.
149
- GPR_DEBUG_ASSERT(GetSize(prev_ref_pair) > 0);
148
+ DCHECK_GT(GetSize(prev_ref_pair), 0u);
150
149
  if (GetOwners(prev_ref_pair) == 0) {
151
150
  // We took ownership of the WorkSerializer. Invoke callback and drain queue.
152
151
  SetCurrentThread();
153
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
154
- gpr_log(GPR_INFO, " Executing immediately");
155
- }
152
+ GRPC_TRACE_LOG(work_serializer, INFO) << " Executing immediately";
156
153
  callback();
157
154
  // Delete the callback while still holding the WorkSerializer, so
158
155
  // that any refs being held by the callback via lambda captures will
@@ -160,12 +157,12 @@ void WorkSerializer::LegacyWorkSerializer::Run(std::function<void()> callback,
160
157
  callback = nullptr;
161
158
  DrainQueueOwned();
162
159
  } else {
163
- // Another thread is holding the WorkSerializer, so decrement the ownership
164
- // count we just added and queue the callback.
160
+ // Another thread is holding the WorkSerializer, so decrement the
161
+ // ownership count we just added and queue the callback.
165
162
  refs_.fetch_sub(MakeRefPair(1, 0), std::memory_order_acq_rel);
166
163
  CallbackWrapper* cb_wrapper =
167
164
  new CallbackWrapper(std::move(callback), location);
168
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
165
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
169
166
  gpr_log(GPR_INFO, " Scheduling on queue : item %p", cb_wrapper);
170
167
  }
171
168
  queue_.Push(&cb_wrapper->mpscq_node);
@@ -176,7 +173,7 @@ void WorkSerializer::LegacyWorkSerializer::Schedule(
176
173
  std::function<void()> callback, const DebugLocation& location) {
177
174
  CallbackWrapper* cb_wrapper =
178
175
  new CallbackWrapper(std::move(callback), location);
179
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
176
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
180
177
  gpr_log(GPR_INFO,
181
178
  "WorkSerializer::Schedule() %p Scheduling callback %p [%s:%d]",
182
179
  this, cb_wrapper, location.file(), location.line());
@@ -186,15 +183,13 @@ void WorkSerializer::LegacyWorkSerializer::Schedule(
186
183
  }
187
184
 
188
185
  void WorkSerializer::LegacyWorkSerializer::Orphan() {
189
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
186
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
190
187
  gpr_log(GPR_INFO, "WorkSerializer::Orphan() %p", this);
191
188
  }
192
189
  const uint64_t prev_ref_pair =
193
190
  refs_.fetch_sub(MakeRefPair(0, 1), std::memory_order_acq_rel);
194
191
  if (GetOwners(prev_ref_pair) == 0 && GetSize(prev_ref_pair) == 1) {
195
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
196
- gpr_log(GPR_INFO, " Destroying");
197
- }
192
+ GRPC_TRACE_LOG(work_serializer, INFO) << " Destroying";
198
193
  delete this;
199
194
  }
200
195
  }
@@ -202,7 +197,7 @@ void WorkSerializer::LegacyWorkSerializer::Orphan() {
202
197
  // The thread that calls this loans itself to the work serializer so as to
203
198
  // execute all the scheduled callbacks.
204
199
  void WorkSerializer::LegacyWorkSerializer::DrainQueue() {
205
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
200
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
206
201
  gpr_log(GPR_INFO, "WorkSerializer::DrainQueue() %p", this);
207
202
  }
208
203
  // Attempt to take ownership of the WorkSerializer. Also increment the queue
@@ -214,8 +209,8 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueue() {
214
209
  // We took ownership of the WorkSerializer. Drain the queue.
215
210
  DrainQueueOwned();
216
211
  } else {
217
- // Another thread is holding the WorkSerializer, so decrement the ownership
218
- // count we just added and queue a no-op callback.
212
+ // Another thread is holding the WorkSerializer, so decrement the
213
+ // ownership count we just added and queue a no-op callback.
219
214
  refs_.fetch_sub(MakeRefPair(1, 0), std::memory_order_acq_rel);
220
215
  CallbackWrapper* cb_wrapper = new CallbackWrapper([]() {}, DEBUG_LOCATION);
221
216
  queue_.Push(&cb_wrapper->mpscq_node);
@@ -223,7 +218,7 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueue() {
223
218
  }
224
219
 
225
220
  void WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() {
226
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
221
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
227
222
  gpr_log(GPR_INFO, "WorkSerializer::DrainQueueOwned() %p", this);
228
223
  }
229
224
  while (true) {
@@ -231,9 +226,7 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() {
231
226
  // It is possible that while draining the queue, the last callback ended
232
227
  // up orphaning the work serializer. In that case, delete the object.
233
228
  if (GetSize(prev_ref_pair) == 1) {
234
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
235
- gpr_log(GPR_INFO, " Queue Drained. Destroying");
236
- }
229
+ GRPC_TRACE_LOG(work_serializer, INFO) << " Queue Drained. Destroying";
237
230
  delete this;
238
231
  return;
239
232
  }
@@ -251,9 +244,7 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() {
251
244
  }
252
245
  if (GetSize(expected) == 0) {
253
246
  // WorkSerializer got orphaned while this was running
254
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
255
- gpr_log(GPR_INFO, " Queue Drained. Destroying");
256
- }
247
+ GRPC_TRACE_LOG(work_serializer, INFO) << " Queue Drained. Destroying";
257
248
  delete this;
258
249
  return;
259
250
  }
@@ -271,11 +262,10 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() {
271
262
  queue_.PopAndCheckEnd(&empty_unused))) == nullptr) {
272
263
  // This can happen due to a race condition within the mpscq
273
264
  // implementation or because of a race with Run()/Schedule().
274
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
275
- gpr_log(GPR_INFO, " Queue returned nullptr, trying again");
276
- }
265
+ GRPC_TRACE_LOG(work_serializer, INFO)
266
+ << " Queue returned nullptr, trying again";
277
267
  }
278
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
268
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
279
269
  gpr_log(GPR_INFO, " Running item %p : callback scheduled at [%s:%d]",
280
270
  cb_wrapper, cb_wrapper->location.file(),
281
271
  cb_wrapper->location.line());
@@ -291,9 +281,9 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() {
291
281
 
292
282
  // DispatchingWorkSerializer: executes callbacks one at a time on EventEngine.
293
283
  // One at a time guarantees that fixed size thread pools in EventEngine
294
- // implementations are not starved of threads by long running work serializers.
295
- // We implement EventEngine::Closure directly to avoid allocating once per
296
- // callback in the queue when scheduling.
284
+ // implementations are not starved of threads by long running work
285
+ // serializers. We implement EventEngine::Closure directly to avoid allocating
286
+ // once per callback in the queue when scheduling.
297
287
  class WorkSerializer::DispatchingWorkSerializer final
298
288
  : public WorkSerializerImpl,
299
289
  public grpc_event_engine::experimental::EventEngine::Closure {
@@ -306,7 +296,8 @@ class WorkSerializer::DispatchingWorkSerializer final
306
296
  const DebugLocation& location) override;
307
297
  void Schedule(std::function<void()> callback,
308
298
  const DebugLocation& location) override {
309
- // We always dispatch to event engine, so Schedule and Run share semantics.
299
+ // We always dispatch to event engine, so Schedule and Run share
300
+ // semantics.
310
301
  Run(callback, location);
311
302
  }
312
303
  void DrainQueue() override {}
@@ -356,11 +347,11 @@ class WorkSerializer::DispatchingWorkSerializer final
356
347
  // separated from incoming cache lines.
357
348
 
358
349
  // Callbacks that are currently being processed.
359
- // Only accessed by: a Run() call going from not-running to running, or a work
360
- // item being executed in EventEngine -- ie this does not need a mutex because
361
- // all access is serialized.
362
- // Stored in reverse execution order so that callbacks can be `pop_back()`'d
363
- // on completion to free up any resources they hold.
350
+ // Only accessed by: a Run() call going from not-running to running, or a
351
+ // work item being executed in EventEngine -- ie this does not need a mutex
352
+ // because all access is serialized. Stored in reverse execution order so
353
+ // that callbacks can be `pop_back()`'d on completion to free up any
354
+ // resources they hold.
364
355
  CallbackVector processing_;
365
356
  // EventEngine instance upon which we'll do our work.
366
357
  const std::shared_ptr<grpc_event_engine::experimental::EventEngine>
@@ -374,16 +365,16 @@ class WorkSerializer::DispatchingWorkSerializer final
374
365
  // on an idle WorkSerializer, and transitions back to false after the last
375
366
  // callback scheduled is completed and the WorkSerializer is again idle.
376
367
  // - orphaned_ transitions to true once upon Orphan being called.
377
- // When orphaned_ is true and running_ is false, the DispatchingWorkSerializer
378
- // instance is deleted.
368
+ // When orphaned_ is true and running_ is false, the
369
+ // DispatchingWorkSerializer instance is deleted.
379
370
  bool running_ ABSL_GUARDED_BY(mu_) = false;
380
371
  bool orphaned_ ABSL_GUARDED_BY(mu_) = false;
381
372
  Mutex mu_;
382
- // Queued callbacks. New work items land here, and when processing_ is drained
383
- // we move this entire queue into processing_ and work on draining it again.
384
- // In low traffic scenarios this gives two mutex acquisitions per work item,
385
- // but as load increases we get some natural batching and the rate of mutex
386
- // acquisitions per work item tends towards 1.
373
+ // Queued callbacks. New work items land here, and when processing_ is
374
+ // drained we move this entire queue into processing_ and work on draining
375
+ // it again. In low traffic scenarios this gives two mutex acquisitions per
376
+ // work item, but as load increases we get some natural batching and the
377
+ // rate of mutex acquisitions per work item tends towards 1.
387
378
  CallbackVector incoming_ ABSL_GUARDED_BY(mu_);
388
379
 
389
380
  #ifndef NDEBUG
@@ -412,20 +403,20 @@ void WorkSerializer::DispatchingWorkSerializer::Orphan() {
412
403
  // Implementation of WorkSerializerImpl::Run
413
404
  void WorkSerializer::DispatchingWorkSerializer::Run(
414
405
  std::function<void()> callback, const DebugLocation& location) {
415
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
406
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
416
407
  gpr_log(GPR_INFO, "WorkSerializer[%p] Scheduling callback [%s:%d]", this,
417
408
  location.file(), location.line());
418
409
  }
419
410
  global_stats().IncrementWorkSerializerItemsEnqueued();
420
411
  MutexLock lock(&mu_);
421
412
  if (!running_) {
422
- // If we were previously idle, insert this callback directly into the empty
423
- // processing_ list and start running.
413
+ // If we were previously idle, insert this callback directly into the
414
+ // empty processing_ list and start running.
424
415
  running_ = true;
425
416
  running_start_time_ = std::chrono::steady_clock::now();
426
417
  items_processed_during_run_ = 0;
427
418
  time_running_items_ = std::chrono::steady_clock::duration();
428
- GPR_ASSERT(processing_.empty());
419
+ CHECK(processing_.empty());
429
420
  processing_.emplace_back(std::move(callback), location);
430
421
  event_engine_->Run(this);
431
422
  } else {
@@ -440,10 +431,10 @@ void WorkSerializer::DispatchingWorkSerializer::Run() {
440
431
  // TODO(ctiller): remove these when we can deprecate ExecCtx
441
432
  ApplicationCallbackExecCtx app_exec_ctx;
442
433
  ExecCtx exec_ctx;
443
- // Grab the last element of processing_ - which is the next item in our queue
444
- // since processing_ is stored in reverse order.
434
+ // Grab the last element of processing_ - which is the next item in our
435
+ // queue since processing_ is stored in reverse order.
445
436
  auto& cb = processing_.back();
446
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
437
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
447
438
  gpr_log(GPR_INFO, "WorkSerializer[%p] Executing callback [%s:%d]", this,
448
439
  cb.location.file(), cb.location.line());
449
440
  }
@@ -451,9 +442,9 @@ void WorkSerializer::DispatchingWorkSerializer::Run() {
451
442
  const auto start = std::chrono::steady_clock::now();
452
443
  SetCurrentThread();
453
444
  cb.callback();
454
- // pop_back here destroys the callback - freeing any resources it might hold.
455
- // We do so before clearing the current thread in case the callback destructor
456
- // wants to check that it's in the WorkSerializer too.
445
+ // pop_back here destroys the callback - freeing any resources it might
446
+ // hold. We do so before clearing the current thread in case the callback
447
+ // destructor wants to check that it's in the WorkSerializer too.
457
448
  processing_.pop_back();
458
449
  ClearCurrentThread();
459
450
  global_stats().IncrementWorkSerializerItemsDequeued();
@@ -507,8 +498,8 @@ bool WorkSerializer::DispatchingWorkSerializer::Refill() {
507
498
  case RefillResult::kRefilled:
508
499
  // Reverse processing_ so that we can pop_back() items in the correct
509
500
  // order. (note that this is mostly pointer swaps inside the
510
- // std::function's, so should be relatively cheap even for longer lists).
511
- // Do so here so we're outside of the RefillInner lock.
501
+ // std::function's, so should be relatively cheap even for longer
502
+ // lists). Do so here so we're outside of the RefillInner lock.
512
503
  std::reverse(processing_.begin(), processing_.end());
513
504
  return true;
514
505
  case RefillResult::kFinished:
@@ -17,14 +17,13 @@
17
17
  #ifndef GRPC_SRC_CORE_LIB_GPRPP_WORK_SERIALIZER_H
18
18
  #define GRPC_SRC_CORE_LIB_GPRPP_WORK_SERIALIZER_H
19
19
 
20
- #include <grpc/support/port_platform.h>
21
-
22
20
  #include <functional>
23
21
  #include <memory>
24
22
 
25
23
  #include "absl/base/thread_annotations.h"
26
24
 
27
25
  #include <grpc/event_engine/event_engine.h>
26
+ #include <grpc/support/port_platform.h>
28
27
 
29
28
  #include "src/core/lib/gprpp/debug_location.h"
30
29
  #include "src/core/lib/gprpp/orphanable.h"
@@ -16,11 +16,12 @@
16
16
  //
17
17
  //
18
18
 
19
- #include <grpc/support/port_platform.h>
20
-
21
19
  #include "src/core/lib/iomgr/buffer_list.h"
22
20
 
21
+ #include "absl/log/log.h"
22
+
23
23
  #include <grpc/support/log.h>
24
+ #include <grpc/support/port_platform.h>
24
25
  #include <grpc/support/time.h>
25
26
 
26
27
  #include "src/core/lib/gprpp/crash.h"
@@ -43,7 +44,7 @@ void FillGprFromTimestamp(gpr_timespec* gts, const struct timespec* ts) {
43
44
 
44
45
  void DefaultTimestampsCallback(void* /*arg*/, Timestamps* /*ts*/,
45
46
  absl::Status /*shudown_err*/) {
46
- gpr_log(GPR_DEBUG, "Timestamps callback has not been registered");
47
+ VLOG(2) << "Timestamps callback has not been registered";
47
48
  }
48
49
 
49
50
  // The saved callback function that will be invoked when we get all the
@@ -322,7 +323,7 @@ void grpc_tcp_set_write_timestamps_callback(
322
323
  // Can't comment out the name because some compilers and formatters don't
323
324
  // like the sequence */* , which would arise from */*fn*/.
324
325
  (void)fn;
325
- gpr_log(GPR_DEBUG, "Timestamps callback is not enabled for this platform");
326
+ VLOG(2) << "Timestamps callback is not enabled for this platform";
326
327
  }
327
328
  } // namespace grpc_core
328
329
 
@@ -19,10 +19,9 @@
19
19
  #ifndef GRPC_SRC_CORE_LIB_IOMGR_BUFFER_LIST_H
20
20
  #define GRPC_SRC_CORE_LIB_IOMGR_BUFFER_LIST_H
21
21
 
22
- #include <grpc/support/port_platform.h>
23
-
24
22
  #include "absl/types/optional.h"
25
23
 
24
+ #include <grpc/support/port_platform.h>
26
25
  #include <grpc/support/time.h>
27
26
 
28
27
  #include "src/core/lib/gprpp/sync.h"
@@ -16,22 +16,22 @@
16
16
  //
17
17
  //
18
18
 
19
- #include <grpc/support/port_platform.h>
20
-
21
19
  #include "src/core/lib/iomgr/call_combiner.h"
22
20
 
23
21
  #include <inttypes.h>
24
22
 
23
+ #include "absl/log/check.h"
24
+ #include "absl/log/log.h"
25
+
25
26
  #include <grpc/support/log.h>
27
+ #include <grpc/support/port_platform.h>
26
28
 
27
- #include "src/core/lib/debug/stats.h"
28
- #include "src/core/lib/debug/stats_data.h"
29
29
  #include "src/core/lib/gprpp/crash.h"
30
+ #include "src/core/telemetry/stats.h"
31
+ #include "src/core/telemetry/stats_data.h"
30
32
 
31
33
  namespace grpc_core {
32
34
 
33
- DebugOnlyTraceFlag grpc_call_combiner_trace(false, "call_combiner");
34
-
35
35
  namespace {
36
36
 
37
37
  // grpc_error LSB can be used
@@ -87,7 +87,7 @@ void CallCombiner::TsanClosure(void* arg, grpc_error_handle error) {
87
87
  if (lock != nullptr) {
88
88
  TSAN_ANNOTATE_RWLOCK_RELEASED(&lock->taken, true);
89
89
  bool prev = true;
90
- GPR_ASSERT(lock->taken.compare_exchange_strong(prev, false));
90
+ CHECK(lock->taken.compare_exchange_strong(prev, false));
91
91
  }
92
92
  }
93
93
  #endif
@@ -114,7 +114,7 @@ void CallCombiner::ScheduleClosure(grpc_closure* closure,
114
114
 
115
115
  void CallCombiner::Start(grpc_closure* closure, grpc_error_handle error,
116
116
  DEBUG_ARGS const char* reason) {
117
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
117
+ if (GRPC_TRACE_FLAG_ENABLED(call_combiner)) {
118
118
  gpr_log(GPR_INFO,
119
119
  "==> CallCombiner::Start() [%p] closure=%s [" DEBUG_FMT_STR
120
120
  "%s] error=%s",
@@ -123,20 +123,16 @@ void CallCombiner::Start(grpc_closure* closure, grpc_error_handle error,
123
123
  }
124
124
  size_t prev_size =
125
125
  static_cast<size_t>(gpr_atm_full_fetch_add(&size_, (gpr_atm)1));
126
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
126
+ if (GRPC_TRACE_FLAG_ENABLED(call_combiner)) {
127
127
  gpr_log(GPR_INFO, " size: %" PRIdPTR " -> %" PRIdPTR, prev_size,
128
128
  prev_size + 1);
129
129
  }
130
130
  if (prev_size == 0) {
131
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
132
- gpr_log(GPR_INFO, " EXECUTING IMMEDIATELY");
133
- }
131
+ GRPC_TRACE_LOG(call_combiner, INFO) << " EXECUTING IMMEDIATELY";
134
132
  // Queue was empty, so execute this closure immediately.
135
133
  ScheduleClosure(closure, error);
136
134
  } else {
137
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
138
- gpr_log(GPR_INFO, " QUEUING");
139
- }
135
+ GRPC_TRACE_LOG(call_combiner, INFO) << " QUEUING";
140
136
  // Queue was not empty, so add closure to queue.
141
137
  closure->error_data.error = internal::StatusAllocHeapPtr(error);
142
138
  queue_.Push(
@@ -145,45 +141,41 @@ void CallCombiner::Start(grpc_closure* closure, grpc_error_handle error,
145
141
  }
146
142
 
147
143
  void CallCombiner::Stop(DEBUG_ARGS const char* reason) {
148
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
144
+ if (GRPC_TRACE_FLAG_ENABLED(call_combiner)) {
149
145
  gpr_log(GPR_INFO, "==> CallCombiner::Stop() [%p] [" DEBUG_FMT_STR "%s]",
150
146
  this DEBUG_FMT_ARGS, reason);
151
147
  }
152
148
  size_t prev_size =
153
149
  static_cast<size_t>(gpr_atm_full_fetch_add(&size_, (gpr_atm)-1));
154
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
150
+ if (GRPC_TRACE_FLAG_ENABLED(call_combiner)) {
155
151
  gpr_log(GPR_INFO, " size: %" PRIdPTR " -> %" PRIdPTR, prev_size,
156
152
  prev_size - 1);
157
153
  }
158
- GPR_ASSERT(prev_size >= 1);
154
+ CHECK_GE(prev_size, 1u);
159
155
  if (prev_size > 1) {
160
156
  while (true) {
161
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
162
- gpr_log(GPR_INFO, " checking queue");
163
- }
157
+ GRPC_TRACE_LOG(call_combiner, INFO) << " checking queue";
164
158
  bool empty;
165
159
  grpc_closure* closure =
166
160
  reinterpret_cast<grpc_closure*>(queue_.PopAndCheckEnd(&empty));
167
161
  if (closure == nullptr) {
168
162
  // This can happen either due to a race condition within the mpscq
169
163
  // code or because of a race with Start().
170
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
171
- gpr_log(GPR_INFO, " queue returned no result; checking again");
172
- }
164
+ GRPC_TRACE_LOG(call_combiner, INFO)
165
+ << " queue returned no result; checking again";
173
166
  continue;
174
167
  }
175
168
  grpc_error_handle error =
176
169
  internal::StatusMoveFromHeapPtr(closure->error_data.error);
177
170
  closure->error_data.error = 0;
178
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
171
+ if (GRPC_TRACE_FLAG_ENABLED(call_combiner)) {
179
172
  gpr_log(GPR_INFO, " EXECUTING FROM QUEUE: closure=%s error=%s",
180
173
  closure->DebugString().c_str(), StatusToString(error).c_str());
181
174
  }
182
175
  ScheduleClosure(closure, error);
183
176
  break;
184
177
  }
185
- } else if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
186
- gpr_log(GPR_INFO, " queue empty");
178
+ GRPC_TRACE_LOG(call_combiner, INFO) << " queue empty";
187
179
  }
188
180
  }
189
181
 
@@ -195,7 +187,7 @@ void CallCombiner::SetNotifyOnCancel(grpc_closure* closure) {
195
187
  // If error is set, invoke the cancellation closure immediately.
196
188
  // Otherwise, store the new closure.
197
189
  if (!original_error.ok()) {
198
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
190
+ if (GRPC_TRACE_FLAG_ENABLED(call_combiner)) {
199
191
  gpr_log(GPR_INFO,
200
192
  "call_combiner=%p: scheduling notify_on_cancel callback=%p "
201
193
  "for pre-existing cancellation",
@@ -206,7 +198,7 @@ void CallCombiner::SetNotifyOnCancel(grpc_closure* closure) {
206
198
  } else {
207
199
  if (gpr_atm_full_cas(&cancel_state_, original_state,
208
200
  reinterpret_cast<gpr_atm>(closure))) {
209
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
201
+ if (GRPC_TRACE_FLAG_ENABLED(call_combiner)) {
210
202
  gpr_log(GPR_INFO, "call_combiner=%p: setting notify_on_cancel=%p",
211
203
  this, closure);
212
204
  }
@@ -215,7 +207,7 @@ void CallCombiner::SetNotifyOnCancel(grpc_closure* closure) {
215
207
  // up any resources they may be holding for the callback.
216
208
  if (original_state != 0) {
217
209
  closure = reinterpret_cast<grpc_closure*>(original_state);
218
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
210
+ if (GRPC_TRACE_FLAG_ENABLED(call_combiner)) {
219
211
  gpr_log(GPR_INFO,
220
212
  "call_combiner=%p: scheduling old cancel callback=%p", this,
221
213
  closure);
@@ -243,7 +235,7 @@ void CallCombiner::Cancel(grpc_error_handle error) {
243
235
  if (original_state != 0) {
244
236
  grpc_closure* notify_on_cancel =
245
237
  reinterpret_cast<grpc_closure*>(original_state);
246
- if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
238
+ if (GRPC_TRACE_FLAG_ENABLED(call_combiner)) {
247
239
  gpr_log(GPR_INFO,
248
240
  "call_combiner=%p: scheduling notify_on_cancel callback=%p",
249
241
  this, notify_on_cancel);