grpc 1.50.0 → 1.52.0.pre2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (1009) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +206 -49
  3. data/include/grpc/byte_buffer.h +76 -1
  4. data/include/grpc/byte_buffer_reader.h +19 -1
  5. data/include/grpc/compression.h +2 -2
  6. data/include/grpc/event_engine/event_engine.h +27 -6
  7. data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -1
  8. data/include/grpc/event_engine/internal/slice_cast.h +67 -0
  9. data/include/grpc/event_engine/memory_allocator.h +1 -1
  10. data/include/grpc/event_engine/slice.h +24 -4
  11. data/include/grpc/event_engine/slice_buffer.h +31 -2
  12. data/include/grpc/fork.h +25 -1
  13. data/include/grpc/grpc.h +3 -13
  14. data/include/grpc/grpc_posix.h +1 -1
  15. data/include/grpc/impl/codegen/atm.h +3 -71
  16. data/include/grpc/impl/codegen/atm_gcc_atomic.h +3 -58
  17. data/include/grpc/impl/codegen/atm_gcc_sync.h +3 -59
  18. data/include/grpc/impl/codegen/atm_windows.h +3 -106
  19. data/include/grpc/impl/codegen/byte_buffer.h +4 -78
  20. data/include/grpc/impl/codegen/byte_buffer_reader.h +4 -19
  21. data/include/grpc/impl/codegen/compression_types.h +3 -82
  22. data/include/grpc/impl/codegen/connectivity_state.h +3 -20
  23. data/include/grpc/impl/codegen/fork.h +4 -25
  24. data/include/grpc/impl/codegen/gpr_types.h +2 -34
  25. data/include/grpc/impl/codegen/grpc_types.h +3 -791
  26. data/include/grpc/impl/codegen/log.h +3 -86
  27. data/include/grpc/impl/codegen/port_platform.h +3 -758
  28. data/include/grpc/impl/codegen/propagation_bits.h +3 -28
  29. data/include/grpc/impl/codegen/slice.h +3 -106
  30. data/include/grpc/impl/codegen/status.h +4 -131
  31. data/include/grpc/impl/codegen/sync.h +3 -42
  32. data/include/grpc/impl/codegen/sync_abseil.h +3 -12
  33. data/include/grpc/impl/codegen/sync_custom.h +3 -14
  34. data/include/grpc/impl/codegen/sync_generic.h +3 -25
  35. data/include/grpc/impl/codegen/sync_posix.h +3 -28
  36. data/include/grpc/impl/codegen/sync_windows.h +3 -16
  37. data/include/grpc/impl/compression_types.h +109 -0
  38. data/include/grpc/impl/connectivity_state.h +47 -0
  39. data/include/grpc/impl/grpc_types.h +824 -0
  40. data/include/grpc/impl/propagation_bits.h +54 -0
  41. data/include/grpc/impl/slice_type.h +112 -0
  42. data/include/grpc/load_reporting.h +1 -1
  43. data/include/grpc/module.modulemap +5 -1
  44. data/include/grpc/slice.h +1 -1
  45. data/include/grpc/status.h +131 -1
  46. data/include/grpc/support/atm.h +70 -1
  47. data/include/grpc/support/atm_gcc_atomic.h +59 -1
  48. data/include/grpc/support/atm_gcc_sync.h +58 -1
  49. data/include/grpc/support/atm_windows.h +105 -1
  50. data/include/grpc/support/log.h +87 -1
  51. data/include/grpc/support/log_windows.h +1 -1
  52. data/include/grpc/support/port_platform.h +767 -1
  53. data/include/grpc/support/string_util.h +1 -1
  54. data/include/grpc/support/sync.h +35 -2
  55. data/include/grpc/support/sync_abseil.h +11 -1
  56. data/include/grpc/support/sync_custom.h +13 -1
  57. data/include/grpc/support/sync_generic.h +24 -1
  58. data/include/grpc/support/sync_posix.h +27 -1
  59. data/include/grpc/support/sync_windows.h +15 -1
  60. data/include/grpc/support/time.h +25 -2
  61. data/src/core/ext/filters/census/grpc_context.cc +17 -18
  62. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +28 -22
  63. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +2 -1
  64. data/src/core/ext/filters/channel_idle/idle_filter_state.h +1 -1
  65. data/src/core/ext/filters/client_channel/backend_metric.cc +2 -0
  66. data/src/core/ext/filters/client_channel/backup_poller.cc +24 -24
  67. data/src/core/ext/filters/client_channel/backup_poller.h +21 -21
  68. data/src/core/ext/filters/client_channel/channel_connectivity.cc +51 -28
  69. data/src/core/ext/filters/client_channel/client_channel.cc +157 -168
  70. data/src/core/ext/filters/client_channel/client_channel.h +10 -10
  71. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +17 -19
  72. data/src/core/ext/filters/client_channel/client_channel_channelz.h +19 -19
  73. data/src/core/ext/filters/client_channel/client_channel_factory.cc +17 -17
  74. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +18 -18
  75. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
  76. data/src/core/ext/filters/client_channel/{resolver_result_parsing.h → client_channel_service_config.h} +26 -23
  77. data/src/core/ext/filters/client_channel/config_selector.h +16 -20
  78. data/src/core/ext/filters/client_channel/connector.h +1 -1
  79. data/src/core/ext/filters/client_channel/dynamic_filters.cc +28 -55
  80. data/src/core/ext/filters/client_channel/dynamic_filters.h +7 -8
  81. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +18 -18
  82. data/src/core/ext/filters/client_channel/health/health_check_client.cc +4 -5
  83. data/src/core/ext/filters/client_channel/http_proxy.cc +39 -40
  84. data/src/core/ext/filters/client_channel/http_proxy.h +18 -18
  85. data/src/core/ext/filters/client_channel/lb_call_state_internal.h +39 -0
  86. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +3 -4
  87. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +17 -17
  88. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +7 -2
  89. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -2
  90. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +59 -130
  91. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +37 -21
  92. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +131 -154
  93. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +24 -25
  94. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -1
  95. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +2 -4
  96. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +18 -20
  97. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +18 -19
  98. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +18 -19
  99. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +18 -19
  100. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +8 -9
  101. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
  102. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +212 -223
  103. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +2 -2
  104. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +11 -22
  105. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +73 -101
  106. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +20 -21
  107. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +1 -1
  108. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +119 -106
  109. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +12 -12
  110. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +30 -16
  111. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +60 -56
  112. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +60 -64
  113. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +42 -0
  114. data/src/core/ext/filters/client_channel/lb_policy/xds/{xds.h → xds_attributes.h} +15 -17
  115. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +22 -28
  116. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +62 -94
  117. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +70 -146
  118. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +651 -0
  119. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +60 -0
  120. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +364 -0
  121. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +18 -18
  122. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +9 -10
  123. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +26 -35
  124. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +40 -41
  125. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +22 -23
  126. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +82 -82
  127. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +117 -118
  128. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +51 -52
  129. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +18 -18
  130. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +18 -18
  131. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +18 -19
  132. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +3 -5
  133. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -3
  134. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
  135. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +34 -27
  136. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +44 -34
  137. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +8 -10
  138. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -7
  139. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +122 -119
  140. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +1 -1
  141. data/src/core/ext/filters/client_channel/retry_filter.cc +81 -103
  142. data/src/core/ext/filters/client_channel/retry_service_config.cc +193 -235
  143. data/src/core/ext/filters/client_channel/retry_service_config.h +20 -23
  144. data/src/core/ext/filters/client_channel/retry_throttle.cc +27 -29
  145. data/src/core/ext/filters/client_channel/retry_throttle.h +26 -25
  146. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +3 -3
  147. data/src/core/ext/filters/client_channel/subchannel.cc +158 -178
  148. data/src/core/ext/filters/client_channel/subchannel.h +17 -40
  149. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +18 -18
  150. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +11 -12
  151. data/src/core/ext/filters/deadline/deadline_filter.cc +34 -17
  152. data/src/core/ext/filters/deadline/deadline_filter.h +1 -1
  153. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -2
  154. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -4
  155. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
  156. data/src/core/ext/filters/fault_injection/{service_config_parser.h → fault_injection_service_config_parser.h} +20 -12
  157. data/src/core/ext/filters/http/client/http_client_filter.cc +36 -37
  158. data/src/core/ext/filters/http/client/http_client_filter.h +17 -17
  159. data/src/core/ext/filters/http/client_authority_filter.cc +19 -19
  160. data/src/core/ext/filters/http/client_authority_filter.h +18 -18
  161. data/src/core/ext/filters/http/http_filters_plugin.cc +35 -51
  162. data/src/core/ext/filters/http/message_compress/compression_filter.cc +315 -0
  163. data/src/core/ext/filters/http/message_compress/compression_filter.h +132 -0
  164. data/src/core/ext/filters/http/server/http_server_filter.cc +44 -43
  165. data/src/core/ext/filters/http/server/http_server_filter.h +18 -18
  166. data/src/core/ext/filters/message_size/message_size_filter.cc +92 -123
  167. data/src/core/ext/filters/message_size/message_size_filter.h +23 -16
  168. data/src/core/ext/filters/rbac/rbac_filter.cc +12 -12
  169. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +728 -530
  170. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -3
  171. data/src/core/ext/filters/server_config_selector/server_config_selector.h +6 -8
  172. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +7 -9
  173. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +229 -0
  174. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +66 -0
  175. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +82 -0
  176. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +93 -0
  177. data/src/core/ext/transport/chttp2/alpn/alpn.cc +18 -18
  178. data/src/core/ext/transport/chttp2/alpn/alpn.h +22 -22
  179. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +69 -63
  180. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +28 -22
  181. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +81 -97
  182. data/src/core/ext/transport/chttp2/server/chttp2_server.h +18 -18
  183. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +22 -22
  184. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +30 -30
  185. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +29 -29
  186. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +27 -27
  187. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +273 -283
  188. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +18 -19
  189. data/src/core/ext/transport/chttp2/transport/context_list.cc +19 -19
  190. data/src/core/ext/transport/chttp2/transport/context_list.h +25 -25
  191. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +0 -36
  192. data/src/core/ext/transport/chttp2/transport/decode_huff.h +35 -82
  193. data/src/core/ext/transport/chttp2/transport/flow_control.cc +112 -44
  194. data/src/core/ext/transport/chttp2/transport/flow_control.h +60 -34
  195. data/src/core/ext/transport/chttp2/transport/frame.h +19 -19
  196. data/src/core/ext/transport/chttp2/transport/frame_data.cc +33 -32
  197. data/src/core/ext/transport/chttp2/transport/frame_data.h +23 -23
  198. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +36 -36
  199. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -18
  200. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +25 -24
  201. data/src/core/ext/transport/chttp2/transport/frame_ping.h +19 -19
  202. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +28 -25
  203. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +18 -18
  204. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +34 -36
  205. data/src/core/ext/transport/chttp2/transport/frame_settings.h +20 -20
  206. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +22 -21
  207. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +18 -18
  208. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +133 -181
  209. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +40 -59
  210. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +2 -1
  211. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +93 -143
  212. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +20 -20
  213. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +26 -26
  214. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +18 -18
  215. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
  216. data/src/core/ext/transport/chttp2/transport/http2_settings.h +36 -34
  217. data/src/core/ext/transport/chttp2/transport/http_trace.cc +19 -0
  218. data/src/core/ext/transport/chttp2/transport/http_trace.h +24 -0
  219. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +20 -20
  220. data/src/core/ext/transport/chttp2/transport/huffsyms.h +19 -19
  221. data/src/core/ext/transport/chttp2/transport/internal.h +193 -170
  222. data/src/core/ext/transport/chttp2/transport/parsing.cc +147 -80
  223. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +19 -19
  224. data/src/core/ext/transport/chttp2/transport/stream_map.cc +23 -23
  225. data/src/core/ext/transport/chttp2/transport/stream_map.h +31 -31
  226. data/src/core/ext/transport/chttp2/transport/varint.cc +19 -20
  227. data/src/core/ext/transport/chttp2/transport/varint.h +35 -32
  228. data/src/core/ext/transport/chttp2/transport/writing.cc +60 -56
  229. data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -17
  230. data/src/core/ext/transport/inproc/inproc_transport.cc +122 -140
  231. data/src/core/ext/transport/inproc/inproc_transport.h +19 -19
  232. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +62 -0
  233. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +179 -0
  234. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +46 -0
  235. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +98 -0
  236. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +47 -0
  237. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +107 -0
  238. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +3 -2
  239. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +9 -0
  240. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +0 -1
  241. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +46 -0
  242. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +98 -0
  243. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +62 -0
  244. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +174 -0
  245. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +36 -0
  246. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +74 -0
  247. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +65 -0
  248. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +191 -0
  249. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +127 -0
  250. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +474 -0
  251. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +67 -0
  252. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +214 -0
  253. data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +64 -0
  254. data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +208 -0
  255. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +0 -1
  256. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +60 -0
  257. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +40 -0
  258. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +50 -0
  259. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +35 -0
  260. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +45 -0
  261. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +35 -0
  262. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +43 -0
  263. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +35 -0
  264. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +51 -0
  265. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +40 -0
  266. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +36 -0
  267. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +35 -0
  268. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +55 -0
  269. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +40 -0
  270. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +9 -9
  271. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +71 -0
  272. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +60 -0
  273. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +60 -0
  274. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +40 -0
  275. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +36 -0
  276. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +45 -0
  277. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +4 -7
  278. data/src/core/ext/xds/certificate_provider_store.cc +4 -4
  279. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +4 -7
  280. data/src/core/ext/xds/xds_api.cc +20 -95
  281. data/src/core/ext/xds/xds_api.h +5 -8
  282. data/src/core/ext/xds/xds_bootstrap.h +0 -1
  283. data/src/core/ext/xds/xds_bootstrap_grpc.cc +3 -12
  284. data/src/core/ext/xds/xds_bootstrap_grpc.h +16 -1
  285. data/src/core/ext/xds/xds_certificate_provider.cc +22 -25
  286. data/src/core/ext/xds/xds_certificate_provider.h +1 -1
  287. data/src/core/ext/xds/xds_channel_args.h +1 -1
  288. data/src/core/ext/xds/xds_channel_stack_modifier.cc +0 -1
  289. data/src/core/ext/xds/xds_channel_stack_modifier.h +2 -2
  290. data/src/core/ext/xds/xds_client.cc +134 -94
  291. data/src/core/ext/xds/xds_client.h +13 -5
  292. data/src/core/ext/xds/xds_client_grpc.cc +31 -24
  293. data/src/core/ext/xds/xds_client_grpc.h +1 -1
  294. data/src/core/ext/xds/xds_client_stats.cc +17 -17
  295. data/src/core/ext/xds/xds_client_stats.h +18 -18
  296. data/src/core/ext/xds/xds_cluster.cc +359 -203
  297. data/src/core/ext/xds/xds_cluster.h +52 -35
  298. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +54 -71
  299. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +45 -21
  300. data/src/core/ext/xds/xds_common_types.cc +209 -141
  301. data/src/core/ext/xds/xds_common_types.h +19 -13
  302. data/src/core/ext/xds/xds_endpoint.cc +221 -130
  303. data/src/core/ext/xds/xds_endpoint.h +4 -7
  304. data/src/core/ext/xds/xds_health_status.cc +80 -0
  305. data/src/core/ext/xds/xds_health_status.h +82 -0
  306. data/src/core/ext/xds/xds_http_fault_filter.cc +57 -43
  307. data/src/core/ext/xds/xds_http_fault_filter.h +14 -22
  308. data/src/core/ext/xds/xds_http_filters.cc +65 -73
  309. data/src/core/ext/xds/xds_http_filters.h +68 -20
  310. data/src/core/ext/xds/xds_http_rbac_filter.cc +153 -207
  311. data/src/core/ext/xds/xds_http_rbac_filter.h +13 -16
  312. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +218 -0
  313. data/src/core/ext/xds/xds_http_stateful_session_filter.h +58 -0
  314. data/src/core/ext/xds/xds_lb_policy_registry.cc +120 -171
  315. data/src/core/ext/xds/xds_lb_policy_registry.h +10 -11
  316. data/src/core/ext/xds/xds_listener.cc +447 -419
  317. data/src/core/ext/xds/xds_listener.h +45 -47
  318. data/src/core/ext/xds/xds_resource_type.h +3 -11
  319. data/src/core/ext/xds/xds_resource_type_impl.h +10 -13
  320. data/src/core/ext/xds/xds_route_config.cc +514 -528
  321. data/src/core/ext/xds/xds_route_config.h +39 -28
  322. data/src/core/ext/xds/xds_routing.cc +2 -1
  323. data/src/core/ext/xds/xds_routing.h +2 -0
  324. data/src/core/ext/xds/xds_server_config_fetcher.cc +109 -106
  325. data/src/core/ext/xds/xds_transport_grpc.cc +6 -7
  326. data/src/core/ext/xds/xds_transport_grpc.h +1 -1
  327. data/src/core/lib/address_utils/parse_address.cc +30 -29
  328. data/src/core/lib/address_utils/parse_address.h +32 -32
  329. data/src/core/lib/address_utils/sockaddr_utils.cc +29 -28
  330. data/src/core/lib/address_utils/sockaddr_utils.h +33 -33
  331. data/src/core/lib/avl/avl.h +4 -4
  332. data/src/core/lib/backoff/backoff.cc +17 -17
  333. data/src/core/lib/backoff/backoff.h +18 -18
  334. data/src/core/lib/channel/call_tracer.h +10 -1
  335. data/src/core/lib/channel/channel_args.cc +19 -20
  336. data/src/core/lib/channel/channel_args.h +59 -43
  337. data/src/core/lib/channel/channel_args_preconditioning.h +1 -1
  338. data/src/core/lib/channel/channel_stack.cc +62 -58
  339. data/src/core/lib/channel/channel_stack.h +144 -131
  340. data/src/core/lib/channel/channel_stack_builder.cc +21 -24
  341. data/src/core/lib/channel/channel_stack_builder.h +14 -6
  342. data/src/core/lib/channel/channel_stack_builder_impl.cc +43 -25
  343. data/src/core/lib/channel/channel_stack_builder_impl.h +2 -0
  344. data/src/core/lib/channel/channel_trace.cc +21 -22
  345. data/src/core/lib/channel/channel_trace.h +19 -19
  346. data/src/core/lib/channel/channelz.cc +18 -19
  347. data/src/core/lib/channel/channelz.h +26 -26
  348. data/src/core/lib/channel/channelz_registry.cc +17 -17
  349. data/src/core/lib/channel/channelz_registry.h +18 -18
  350. data/src/core/lib/channel/connected_channel.cc +732 -63
  351. data/src/core/lib/channel/connected_channel.h +18 -22
  352. data/src/core/lib/channel/context.h +18 -18
  353. data/src/core/lib/channel/promise_based_filter.cc +1137 -150
  354. data/src/core/lib/channel/promise_based_filter.h +374 -88
  355. data/src/core/lib/channel/status_util.cc +35 -17
  356. data/src/core/lib/channel/status_util.h +26 -19
  357. data/src/core/lib/compression/compression.cc +19 -19
  358. data/src/core/lib/compression/compression_internal.cc +41 -48
  359. data/src/core/lib/compression/compression_internal.h +22 -22
  360. data/src/core/lib/compression/message_compress.cc +26 -26
  361. data/src/core/lib/compression/message_compress.h +25 -25
  362. data/src/core/lib/config/core_configuration.h +1 -1
  363. data/src/core/lib/debug/event_log.cc +88 -0
  364. data/src/core/lib/debug/event_log.h +81 -0
  365. data/src/core/lib/debug/histogram_view.cc +69 -0
  366. data/src/core/lib/{slice/slice_refcount.cc → debug/histogram_view.h} +15 -13
  367. data/src/core/lib/debug/stats.cc +39 -136
  368. data/src/core/lib/debug/stats.h +46 -52
  369. data/src/core/lib/debug/stats_data.cc +224 -73
  370. data/src/core/lib/debug/stats_data.h +263 -122
  371. data/src/core/lib/debug/trace.cc +18 -18
  372. data/src/core/lib/debug/trace.h +19 -19
  373. data/src/core/lib/event_engine/common_closures.h +71 -0
  374. data/src/core/lib/event_engine/default_event_engine.cc +38 -15
  375. data/src/core/lib/event_engine/default_event_engine.h +15 -3
  376. data/src/core/lib/event_engine/default_event_engine_factory.cc +2 -4
  377. data/src/core/lib/event_engine/executor/executor.h +1 -1
  378. data/src/core/lib/event_engine/forkable.h +1 -1
  379. data/src/core/lib/event_engine/memory_allocator.cc +1 -1
  380. data/src/core/lib/event_engine/poller.h +10 -4
  381. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +614 -0
  382. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +129 -0
  383. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +900 -0
  384. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +97 -0
  385. data/src/core/lib/event_engine/posix_engine/event_poller.h +111 -0
  386. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +74 -0
  387. data/src/core/lib/event_engine/{executor/threaded_executor.cc → posix_engine/event_poller_posix_default.h} +11 -14
  388. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +77 -0
  389. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +179 -0
  390. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +265 -0
  391. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +73 -0
  392. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1308 -0
  393. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +684 -0
  394. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +456 -28
  395. data/src/core/lib/event_engine/posix_engine/posix_engine.h +148 -24
  396. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +80 -0
  397. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +236 -0
  398. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +228 -0
  399. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +380 -0
  400. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +91 -0
  401. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +853 -0
  402. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +316 -0
  403. data/src/core/lib/event_engine/posix_engine/timer.cc +49 -49
  404. data/src/core/lib/event_engine/posix_engine/timer.h +87 -86
  405. data/src/core/lib/event_engine/posix_engine/timer_heap.cc +27 -27
  406. data/src/core/lib/event_engine/posix_engine/timer_heap.h +21 -21
  407. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +76 -214
  408. data/src/core/lib/event_engine/posix_engine/timer_manager.h +41 -69
  409. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +332 -0
  410. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +185 -0
  411. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +127 -0
  412. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +45 -0
  413. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +150 -0
  414. data/src/core/lib/event_engine/{executor/threaded_executor.h → posix_engine/wakeup_fd_pipe.h} +16 -15
  415. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +76 -0
  416. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +67 -0
  417. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +37 -0
  418. data/src/core/lib/event_engine/slice.cc +7 -6
  419. data/src/core/lib/event_engine/slice_buffer.cc +2 -2
  420. data/src/core/lib/event_engine/socket_notifier.h +1 -1
  421. data/src/core/lib/event_engine/tcp_socket_utils.cc +373 -0
  422. data/src/core/lib/event_engine/tcp_socket_utils.h +85 -0
  423. data/src/core/lib/event_engine/thread_pool.cc +125 -43
  424. data/src/core/lib/event_engine/thread_pool.h +49 -26
  425. data/src/core/lib/event_engine/time_util.h +1 -1
  426. data/src/core/lib/event_engine/windows/iocp.cc +13 -12
  427. data/src/core/lib/event_engine/windows/iocp.h +1 -1
  428. data/src/core/lib/event_engine/windows/win_socket.cc +9 -9
  429. data/src/core/lib/event_engine/windows/windows_engine.cc +26 -20
  430. data/src/core/lib/event_engine/windows/windows_engine.h +8 -4
  431. data/src/core/lib/experiments/config.cc +1 -1
  432. data/src/core/lib/experiments/experiments.cc +13 -13
  433. data/src/core/lib/experiments/experiments.h +8 -6
  434. data/src/core/lib/gpr/alloc.cc +19 -17
  435. data/src/core/lib/gpr/alloc.h +18 -18
  436. data/src/core/lib/gpr/atm.cc +17 -17
  437. data/src/core/lib/gpr/cpu_iphone.cc +24 -24
  438. data/src/core/lib/gpr/cpu_linux.cc +28 -23
  439. data/src/core/lib/gpr/cpu_posix.cc +23 -22
  440. data/src/core/lib/gpr/cpu_windows.cc +20 -18
  441. data/src/core/lib/gpr/log.cc +27 -19
  442. data/src/core/lib/gpr/log_android.cc +22 -20
  443. data/src/core/lib/gpr/log_linux.cc +24 -24
  444. data/src/core/lib/gpr/log_posix.cc +20 -19
  445. data/src/core/lib/gpr/log_windows.cc +25 -24
  446. data/src/core/lib/gpr/spinlock.h +18 -18
  447. data/src/core/lib/gpr/string.cc +25 -24
  448. data/src/core/lib/gpr/string.h +58 -58
  449. data/src/core/lib/gpr/string_posix.cc +24 -24
  450. data/src/core/lib/gpr/string_util_windows.cc +22 -22
  451. data/src/core/lib/gpr/string_windows.cc +24 -24
  452. data/src/core/lib/gpr/sync.cc +25 -25
  453. data/src/core/lib/gpr/sync_abseil.cc +22 -20
  454. data/src/core/lib/gpr/sync_posix.cc +23 -21
  455. data/src/core/lib/gpr/sync_windows.cc +29 -27
  456. data/src/core/lib/gpr/time.cc +23 -21
  457. data/src/core/lib/gpr/time_posix.cc +35 -30
  458. data/src/core/lib/gpr/time_precise.cc +22 -22
  459. data/src/core/lib/gpr/time_precise.h +18 -19
  460. data/src/core/lib/gpr/time_windows.cc +25 -22
  461. data/src/core/lib/gpr/tmpfile.h +22 -22
  462. data/src/core/lib/gpr/tmpfile_msys.cc +21 -20
  463. data/src/core/lib/gpr/tmpfile_posix.cc +22 -20
  464. data/src/core/lib/gpr/tmpfile_windows.cc +23 -22
  465. data/src/core/lib/gpr/useful.h +40 -27
  466. data/src/core/lib/gpr/wrap_memcpy.cc +23 -23
  467. data/src/core/lib/gprpp/atomic_utils.h +18 -18
  468. data/src/core/lib/gprpp/bitset.h +24 -0
  469. data/src/core/{ext/xds/xds_resource_type.cc → lib/gprpp/crash.cc} +12 -12
  470. data/src/core/lib/gprpp/crash.h +34 -0
  471. data/src/core/lib/gprpp/debug_location.h +18 -18
  472. data/src/core/lib/gprpp/dual_ref_counted.h +1 -1
  473. data/src/core/lib/gprpp/env.h +20 -20
  474. data/src/core/lib/gprpp/env_linux.cc +21 -21
  475. data/src/core/lib/gprpp/env_posix.cc +18 -18
  476. data/src/core/lib/gprpp/env_windows.cc +18 -18
  477. data/src/core/lib/gprpp/examine_stack.cc +17 -17
  478. data/src/core/lib/gprpp/examine_stack.h +18 -18
  479. data/src/core/lib/gprpp/fork.cc +21 -22
  480. data/src/core/lib/gprpp/fork.h +22 -22
  481. data/src/core/lib/gprpp/global_config.h +18 -18
  482. data/src/core/lib/gprpp/global_config_custom.h +18 -18
  483. data/src/core/lib/gprpp/global_config_env.cc +17 -17
  484. data/src/core/lib/gprpp/global_config_env.h +23 -23
  485. data/src/core/lib/gprpp/global_config_generic.h +18 -18
  486. data/src/core/lib/gprpp/host_port.cc +26 -26
  487. data/src/core/lib/gprpp/host_port.h +29 -28
  488. data/src/core/lib/gprpp/load_file.cc +75 -0
  489. data/src/core/lib/gprpp/load_file.h +33 -0
  490. data/src/core/lib/gprpp/manual_constructor.h +18 -17
  491. data/src/core/lib/gprpp/memory.h +18 -18
  492. data/src/core/lib/gprpp/mpscq.cc +17 -17
  493. data/src/core/lib/gprpp/mpscq.h +18 -18
  494. data/src/core/lib/gprpp/no_destruct.h +1 -0
  495. data/src/core/lib/gprpp/orphanable.h +18 -18
  496. data/src/core/lib/gprpp/per_cpu.h +46 -0
  497. data/src/core/lib/gprpp/ref_counted.h +18 -18
  498. data/src/core/lib/gprpp/ref_counted_ptr.h +19 -18
  499. data/src/core/lib/gprpp/stat_posix.cc +5 -4
  500. data/src/core/lib/gprpp/stat_windows.cc +4 -2
  501. data/src/core/lib/gprpp/status_helper.cc +4 -3
  502. data/src/core/lib/gprpp/status_helper.h +1 -3
  503. data/src/core/lib/gprpp/strerror.cc +41 -0
  504. data/src/core/lib/gprpp/strerror.h +29 -0
  505. data/src/core/lib/gprpp/sync.h +20 -20
  506. data/src/core/lib/gprpp/table.h +1 -0
  507. data/src/core/lib/gprpp/thd.h +19 -19
  508. data/src/core/lib/gprpp/thd_posix.cc +30 -31
  509. data/src/core/lib/gprpp/thd_windows.cc +26 -26
  510. data/src/core/lib/gprpp/time.cc +16 -11
  511. data/src/core/lib/gprpp/time.h +13 -3
  512. data/src/core/lib/gprpp/time_averaged_stats.cc +20 -20
  513. data/src/core/lib/gprpp/time_averaged_stats.h +48 -48
  514. data/src/core/lib/gprpp/time_util.h +1 -1
  515. data/src/core/lib/gprpp/unique_type_name.h +18 -18
  516. data/src/core/lib/gprpp/validation_errors.h +18 -1
  517. data/src/core/lib/handshaker/proxy_mapper.h +18 -18
  518. data/src/core/lib/handshaker/proxy_mapper_registry.cc +17 -17
  519. data/src/core/lib/handshaker/proxy_mapper_registry.h +18 -18
  520. data/src/core/lib/http/format_request.cc +18 -18
  521. data/src/core/lib/http/format_request.h +18 -18
  522. data/src/core/lib/http/httpcli.cc +57 -61
  523. data/src/core/lib/http/httpcli.h +26 -26
  524. data/src/core/lib/http/httpcli_security_connector.cc +22 -25
  525. data/src/core/lib/http/parser.cc +76 -87
  526. data/src/core/lib/http/parser.h +32 -32
  527. data/src/core/lib/iomgr/block_annotate.h +21 -21
  528. data/src/core/lib/iomgr/buffer_list.cc +156 -136
  529. data/src/core/lib/iomgr/buffer_list.h +120 -98
  530. data/src/core/lib/iomgr/call_combiner.cc +29 -27
  531. data/src/core/lib/iomgr/call_combiner.h +21 -22
  532. data/src/core/lib/iomgr/cfstream_handle.cc +33 -36
  533. data/src/core/lib/iomgr/cfstream_handle.h +22 -22
  534. data/src/core/lib/iomgr/closure.h +90 -45
  535. data/src/core/lib/iomgr/combiner.cc +20 -19
  536. data/src/core/lib/iomgr/combiner.h +18 -18
  537. data/src/core/lib/iomgr/dualstack_socket_posix.cc +21 -21
  538. data/src/core/lib/iomgr/dynamic_annotations.h +20 -20
  539. data/src/core/lib/iomgr/endpoint.cc +17 -17
  540. data/src/core/lib/iomgr/endpoint.h +46 -46
  541. data/src/core/lib/iomgr/endpoint_cfstream.cc +44 -43
  542. data/src/core/lib/iomgr/endpoint_cfstream.h +27 -27
  543. data/src/core/lib/iomgr/endpoint_pair.h +18 -18
  544. data/src/core/lib/iomgr/endpoint_pair_posix.cc +20 -19
  545. data/src/core/lib/iomgr/endpoint_pair_windows.cc +18 -17
  546. data/src/core/lib/iomgr/error.cc +49 -61
  547. data/src/core/lib/iomgr/error.h +42 -173
  548. data/src/core/lib/iomgr/error_cfstream.cc +18 -18
  549. data/src/core/lib/iomgr/error_cfstream.h +19 -19
  550. data/src/core/lib/iomgr/ev_apple.cc +21 -21
  551. data/src/core/lib/iomgr/ev_apple.h +17 -17
  552. data/src/core/lib/iomgr/ev_epoll1_linux.cc +208 -195
  553. data/src/core/lib/iomgr/ev_epoll1_linux.h +18 -18
  554. data/src/core/lib/iomgr/ev_poll_posix.cc +212 -205
  555. data/src/core/lib/iomgr/ev_poll_posix.h +18 -18
  556. data/src/core/lib/iomgr/ev_posix.cc +36 -28
  557. data/src/core/lib/iomgr/ev_posix.h +85 -81
  558. data/src/core/lib/iomgr/ev_windows.cc +18 -18
  559. data/src/core/lib/iomgr/exec_ctx.cc +34 -34
  560. data/src/core/lib/iomgr/exec_ctx.h +141 -141
  561. data/src/core/lib/iomgr/executor.cc +21 -21
  562. data/src/core/lib/iomgr/executor.h +24 -24
  563. data/src/core/lib/iomgr/fork_posix.cc +24 -22
  564. data/src/core/lib/iomgr/fork_windows.cc +21 -21
  565. data/src/core/lib/iomgr/gethostname.h +18 -18
  566. data/src/core/lib/iomgr/gethostname_fallback.cc +17 -17
  567. data/src/core/lib/iomgr/gethostname_host_name_max.cc +17 -17
  568. data/src/core/lib/iomgr/gethostname_sysconf.cc +17 -17
  569. data/src/core/lib/iomgr/grpc_if_nametoindex.h +20 -20
  570. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +20 -19
  571. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +20 -19
  572. data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
  573. data/src/core/lib/iomgr/internal_errqueue.h +80 -80
  574. data/src/core/lib/iomgr/iocp_windows.cc +22 -21
  575. data/src/core/lib/iomgr/iocp_windows.h +18 -18
  576. data/src/core/lib/iomgr/iomgr.cc +19 -18
  577. data/src/core/lib/iomgr/iomgr.h +32 -32
  578. data/src/core/lib/iomgr/iomgr_internal.cc +17 -17
  579. data/src/core/lib/iomgr/iomgr_internal.h +25 -25
  580. data/src/core/lib/iomgr/iomgr_posix.cc +20 -20
  581. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +20 -19
  582. data/src/core/lib/iomgr/iomgr_windows.cc +24 -22
  583. data/src/core/lib/iomgr/load_file.cc +24 -27
  584. data/src/core/lib/iomgr/load_file.h +20 -20
  585. data/src/core/lib/iomgr/lockfree_event.cc +114 -114
  586. data/src/core/lib/iomgr/lockfree_event.h +19 -19
  587. data/src/core/lib/iomgr/nameser.h +84 -84
  588. data/src/core/lib/iomgr/polling_entity.cc +25 -21
  589. data/src/core/lib/iomgr/polling_entity.h +27 -27
  590. data/src/core/lib/iomgr/pollset.cc +17 -17
  591. data/src/core/lib/iomgr/pollset.h +51 -51
  592. data/src/core/lib/iomgr/pollset_set.cc +17 -17
  593. data/src/core/lib/iomgr/pollset_set.h +22 -22
  594. data/src/core/lib/iomgr/pollset_set_windows.cc +18 -18
  595. data/src/core/lib/iomgr/pollset_set_windows.h +18 -18
  596. data/src/core/lib/iomgr/pollset_windows.cc +30 -29
  597. data/src/core/lib/iomgr/pollset_windows.h +22 -22
  598. data/src/core/lib/iomgr/port.h +29 -29
  599. data/src/core/lib/iomgr/python_util.h +20 -20
  600. data/src/core/lib/iomgr/resolve_address.cc +26 -20
  601. data/src/core/lib/iomgr/resolve_address.h +21 -22
  602. data/src/core/lib/iomgr/resolve_address_impl.h +2 -2
  603. data/src/core/lib/iomgr/resolve_address_posix.cc +35 -45
  604. data/src/core/lib/iomgr/resolve_address_posix.h +1 -2
  605. data/src/core/lib/iomgr/resolve_address_windows.cc +18 -20
  606. data/src/core/lib/iomgr/resolve_address_windows.h +1 -2
  607. data/src/core/lib/iomgr/resolved_address.h +1 -1
  608. data/src/core/lib/iomgr/sockaddr.h +21 -21
  609. data/src/core/lib/iomgr/sockaddr_posix.h +18 -18
  610. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +18 -17
  611. data/src/core/lib/iomgr/sockaddr_windows.h +18 -18
  612. data/src/core/lib/iomgr/socket_factory_posix.cc +18 -18
  613. data/src/core/lib/iomgr/socket_factory_posix.h +30 -30
  614. data/src/core/lib/iomgr/socket_mutator.cc +19 -18
  615. data/src/core/lib/iomgr/socket_mutator.h +37 -37
  616. data/src/core/lib/iomgr/socket_utils.h +24 -24
  617. data/src/core/lib/iomgr/socket_utils_common_posix.cc +68 -66
  618. data/src/core/lib/iomgr/socket_utils_linux.cc +18 -17
  619. data/src/core/lib/iomgr/socket_utils_posix.cc +22 -20
  620. data/src/core/lib/iomgr/socket_utils_posix.h +78 -78
  621. data/src/core/lib/iomgr/socket_utils_windows.cc +20 -19
  622. data/src/core/lib/iomgr/socket_windows.cc +37 -36
  623. data/src/core/lib/iomgr/socket_windows.h +56 -56
  624. data/src/core/lib/iomgr/systemd_utils.cc +116 -0
  625. data/src/core/lib/{slice/slice_buffer_api.cc → iomgr/systemd_utils.h} +12 -14
  626. data/src/core/lib/iomgr/tcp_client.cc +17 -17
  627. data/src/core/lib/iomgr/tcp_client.h +26 -26
  628. data/src/core/lib/iomgr/tcp_client_cfstream.cc +25 -28
  629. data/src/core/lib/iomgr/tcp_client_posix.cc +70 -73
  630. data/src/core/lib/iomgr/tcp_client_posix.h +43 -43
  631. data/src/core/lib/iomgr/tcp_client_windows.cc +36 -39
  632. data/src/core/lib/iomgr/tcp_posix.cc +223 -237
  633. data/src/core/lib/iomgr/tcp_posix.h +27 -27
  634. data/src/core/lib/iomgr/tcp_server.cc +30 -22
  635. data/src/core/lib/iomgr/tcp_server.h +68 -62
  636. data/src/core/lib/iomgr/tcp_server_posix.cc +124 -94
  637. data/src/core/lib/iomgr/tcp_server_utils_posix.h +54 -51
  638. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +90 -55
  639. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +40 -40
  640. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +19 -19
  641. data/src/core/lib/iomgr/tcp_server_windows.cc +97 -104
  642. data/src/core/lib/iomgr/tcp_windows.cc +109 -93
  643. data/src/core/lib/iomgr/tcp_windows.h +29 -29
  644. data/src/core/lib/iomgr/timer.cc +17 -17
  645. data/src/core/lib/iomgr/timer.h +65 -65
  646. data/src/core/lib/iomgr/timer_generic.cc +115 -122
  647. data/src/core/lib/iomgr/timer_generic.h +19 -19
  648. data/src/core/lib/iomgr/timer_heap.cc +25 -25
  649. data/src/core/lib/iomgr/timer_heap.h +19 -19
  650. data/src/core/lib/iomgr/timer_manager.cc +30 -29
  651. data/src/core/lib/iomgr/timer_manager.h +25 -25
  652. data/src/core/lib/iomgr/unix_sockets_posix.cc +20 -21
  653. data/src/core/lib/iomgr/unix_sockets_posix.h +18 -18
  654. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +19 -17
  655. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +23 -21
  656. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +23 -23
  657. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +29 -26
  658. data/src/core/lib/iomgr/wakeup_fd_pipe.h +18 -18
  659. data/src/core/lib/iomgr/wakeup_fd_posix.cc +18 -18
  660. data/src/core/lib/iomgr/wakeup_fd_posix.h +50 -50
  661. data/src/core/lib/json/json_channel_args.h +42 -0
  662. data/src/core/lib/json/json_object_loader.cc +17 -2
  663. data/src/core/lib/json/json_object_loader.h +37 -1
  664. data/src/core/lib/json/json_reader.cc +28 -28
  665. data/src/core/lib/json/json_util.cc +5 -5
  666. data/src/core/lib/json/json_util.h +4 -4
  667. data/src/core/lib/json/json_writer.cc +56 -56
  668. data/src/core/lib/load_balancing/lb_policy.cc +18 -18
  669. data/src/core/lib/load_balancing/lb_policy.h +7 -4
  670. data/src/core/lib/load_balancing/subchannel_interface.h +1 -8
  671. data/src/core/lib/matchers/matchers.cc +6 -5
  672. data/src/core/lib/matchers/matchers.h +1 -1
  673. data/src/core/lib/promise/activity.cc +16 -2
  674. data/src/core/lib/promise/activity.h +58 -27
  675. data/src/core/lib/promise/arena_promise.h +82 -52
  676. data/src/core/lib/promise/context.h +14 -6
  677. data/src/core/lib/promise/detail/basic_seq.h +9 -28
  678. data/src/core/lib/promise/detail/promise_factory.h +59 -10
  679. data/src/core/lib/promise/detail/status.h +28 -0
  680. data/src/core/lib/promise/detail/switch.h +1455 -0
  681. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +20 -12
  682. data/src/core/lib/promise/for_each.h +155 -0
  683. data/src/core/lib/promise/latch.h +13 -19
  684. data/src/core/lib/promise/loop.h +7 -5
  685. data/src/core/lib/promise/map.h +1 -0
  686. data/src/core/lib/promise/map_pipe.h +88 -0
  687. data/src/core/lib/promise/pipe.cc +19 -0
  688. data/src/core/lib/promise/pipe.h +505 -0
  689. data/src/core/lib/promise/poll.h +19 -0
  690. data/src/core/lib/promise/seq.h +4 -5
  691. data/src/core/lib/promise/sleep.cc +5 -4
  692. data/src/core/lib/promise/sleep.h +1 -2
  693. data/src/core/lib/promise/try_concurrently.h +342 -0
  694. data/src/core/lib/promise/try_seq.h +11 -13
  695. data/src/core/lib/resolver/resolver.cc +17 -17
  696. data/src/core/lib/resolver/server_address.cc +18 -17
  697. data/src/core/lib/resolver/server_address.h +19 -21
  698. data/src/core/lib/resource_quota/api.cc +0 -1
  699. data/src/core/lib/resource_quota/api.h +1 -1
  700. data/src/core/lib/resource_quota/arena.cc +36 -17
  701. data/src/core/lib/resource_quota/arena.h +107 -18
  702. data/src/core/lib/resource_quota/memory_quota.cc +140 -43
  703. data/src/core/lib/resource_quota/memory_quota.h +85 -23
  704. data/src/core/lib/resource_quota/resource_quota.h +1 -1
  705. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  706. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +0 -1
  707. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +1 -3
  708. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +4 -2
  709. data/src/core/lib/security/authorization/matchers.cc +25 -22
  710. data/src/core/lib/security/authorization/rbac_policy.cc +2 -3
  711. data/src/core/lib/security/authorization/rbac_policy.h +1 -1
  712. data/src/core/lib/security/context/security_context.cc +22 -23
  713. data/src/core/lib/security/context/security_context.h +40 -30
  714. data/src/core/lib/security/credentials/alts/alts_credentials.cc +17 -17
  715. data/src/core/lib/security/credentials/alts/alts_credentials.h +50 -50
  716. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +19 -19
  717. data/src/core/lib/security/credentials/alts/check_gcp_environment.h +41 -41
  718. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +17 -17
  719. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +18 -17
  720. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +18 -17
  721. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +19 -19
  722. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +18 -18
  723. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +36 -37
  724. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +18 -18
  725. data/src/core/lib/security/credentials/call_creds_util.h +1 -1
  726. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +3 -4
  727. data/src/core/lib/security/credentials/composite/composite_credentials.cc +22 -22
  728. data/src/core/lib/security/credentials/composite/composite_credentials.h +20 -21
  729. data/src/core/lib/security/credentials/credentials.cc +19 -18
  730. data/src/core/lib/security/credentials/credentials.h +34 -33
  731. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +77 -55
  732. data/src/core/lib/security/credentials/external/aws_request_signer.cc +4 -3
  733. data/src/core/lib/security/credentials/external/external_account_credentials.cc +40 -51
  734. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +17 -21
  735. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +21 -25
  736. data/src/core/lib/security/credentials/fake/fake_credentials.cc +20 -19
  737. data/src/core/lib/security/credentials/fake/fake_credentials.h +34 -35
  738. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +17 -17
  739. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +75 -73
  740. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +18 -19
  741. data/src/core/lib/security/credentials/iam/iam_credentials.cc +18 -17
  742. data/src/core/lib/security/credentials/iam/iam_credentials.h +18 -18
  743. data/src/core/lib/security/credentials/jwt/json_token.cc +24 -25
  744. data/src/core/lib/security/credentials/jwt/json_token.h +32 -32
  745. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +18 -18
  746. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +18 -19
  747. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +75 -75
  748. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +43 -43
  749. data/src/core/lib/security/credentials/local/local_credentials.cc +17 -17
  750. data/src/core/lib/security/credentials/local/local_credentials.h +20 -20
  751. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +52 -59
  752. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +19 -19
  753. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +24 -23
  754. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +22 -22
  755. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +19 -20
  756. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +18 -18
  757. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +20 -28
  758. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +4 -11
  759. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +30 -43
  760. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +1 -1
  761. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +18 -18
  762. data/src/core/lib/security/credentials/tls/tls_credentials.cc +18 -19
  763. data/src/core/lib/security/credentials/tls/tls_credentials.h +18 -18
  764. data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -2
  765. data/src/core/lib/security/credentials/xds/xds_credentials.h +1 -1
  766. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +32 -38
  767. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +41 -42
  768. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +32 -41
  769. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +20 -21
  770. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  771. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +3 -8
  772. data/src/core/lib/security/security_connector/load_system_roots.h +18 -18
  773. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +18 -18
  774. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +19 -22
  775. data/src/core/lib/security/security_connector/load_system_roots_supported.h +19 -20
  776. data/src/core/lib/security/security_connector/local/local_security_connector.cc +30 -34
  777. data/src/core/lib/security/security_connector/local/local_security_connector.h +40 -41
  778. data/src/core/lib/security/security_connector/security_connector.cc +17 -17
  779. data/src/core/lib/security/security_connector/security_connector.h +32 -33
  780. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +34 -39
  781. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +38 -39
  782. data/src/core/lib/security/security_connector/ssl_utils.cc +37 -39
  783. data/src/core/lib/security/security_connector/ssl_utils.h +31 -31
  784. data/src/core/lib/security/security_connector/ssl_utils_config.cc +22 -22
  785. data/src/core/lib/security/security_connector/ssl_utils_config.h +18 -19
  786. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +42 -48
  787. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +17 -17
  788. data/src/core/lib/security/transport/auth_filters.h +18 -18
  789. data/src/core/lib/security/transport/client_auth_filter.cc +21 -21
  790. data/src/core/lib/security/transport/secure_endpoint.cc +54 -56
  791. data/src/core/lib/security/transport/secure_endpoint.h +22 -22
  792. data/src/core/lib/security/transport/security_handshaker.cc +70 -70
  793. data/src/core/lib/security/transport/security_handshaker.h +19 -19
  794. data/src/core/lib/security/transport/server_auth_filter.cc +43 -44
  795. data/src/core/lib/security/transport/tsi_error.cc +23 -20
  796. data/src/core/lib/security/transport/tsi_error.h +18 -18
  797. data/src/core/lib/security/util/json_util.cc +21 -22
  798. data/src/core/lib/security/util/json_util.h +18 -18
  799. data/src/core/lib/service_config/service_config.h +2 -2
  800. data/src/core/lib/service_config/service_config_call_data.h +7 -1
  801. data/src/core/lib/service_config/service_config_impl.cc +111 -158
  802. data/src/core/lib/service_config/service_config_impl.h +14 -17
  803. data/src/core/lib/service_config/service_config_parser.cc +14 -31
  804. data/src/core/lib/service_config/service_config_parser.h +14 -10
  805. data/src/core/lib/slice/b64.cc +26 -26
  806. data/src/core/lib/slice/b64.h +29 -29
  807. data/src/core/lib/slice/percent_encoding.cc +17 -17
  808. data/src/core/lib/slice/percent_encoding.h +24 -24
  809. data/src/core/lib/slice/slice.cc +44 -38
  810. data/src/core/lib/slice/slice.h +57 -11
  811. data/src/core/lib/slice/slice_buffer.cc +63 -59
  812. data/src/core/lib/slice/slice_buffer.h +27 -2
  813. data/src/core/lib/slice/slice_internal.h +31 -39
  814. data/src/core/lib/slice/slice_refcount.h +34 -19
  815. data/src/core/lib/slice/slice_string_helpers.cc +17 -17
  816. data/src/core/lib/slice/slice_string_helpers.h +19 -19
  817. data/src/core/lib/surface/api_trace.cc +17 -17
  818. data/src/core/lib/surface/api_trace.h +22 -22
  819. data/src/core/lib/surface/byte_buffer.cc +22 -23
  820. data/src/core/lib/surface/byte_buffer_reader.cc +23 -23
  821. data/src/core/lib/surface/call.cc +1521 -335
  822. data/src/core/lib/surface/call.h +86 -39
  823. data/src/core/lib/surface/call_details.cc +20 -21
  824. data/src/core/lib/surface/call_log_batch.cc +18 -18
  825. data/src/core/lib/surface/call_test_only.h +30 -30
  826. data/src/core/lib/surface/call_trace.cc +113 -0
  827. data/src/core/{ext/filters/http/message_compress/message_decompress_filter.h → lib/surface/call_trace.h} +10 -12
  828. data/src/core/lib/surface/channel.cc +62 -67
  829. data/src/core/lib/surface/channel.h +40 -32
  830. data/src/core/lib/surface/channel_init.cc +17 -17
  831. data/src/core/lib/surface/channel_init.h +18 -18
  832. data/src/core/lib/surface/channel_ping.cc +19 -19
  833. data/src/core/lib/surface/channel_stack_type.cc +21 -17
  834. data/src/core/lib/surface/channel_stack_type.h +20 -18
  835. data/src/core/lib/surface/completion_queue.cc +173 -191
  836. data/src/core/lib/surface/completion_queue.h +32 -32
  837. data/src/core/lib/surface/completion_queue_factory.cc +28 -28
  838. data/src/core/lib/surface/completion_queue_factory.h +20 -20
  839. data/src/core/lib/surface/event_string.cc +17 -17
  840. data/src/core/lib/surface/event_string.h +20 -20
  841. data/src/core/lib/surface/init.cc +29 -58
  842. data/src/core/lib/surface/init.h +18 -18
  843. data/src/core/lib/surface/init_internally.cc +1 -0
  844. data/src/core/lib/surface/init_internally.h +9 -0
  845. data/src/core/lib/surface/lame_client.cc +28 -26
  846. data/src/core/lib/surface/lame_client.h +19 -19
  847. data/src/core/lib/surface/metadata_array.cc +17 -18
  848. data/src/core/lib/surface/server.cc +61 -83
  849. data/src/core/lib/surface/server.h +5 -7
  850. data/src/core/lib/surface/validate_metadata.cc +28 -29
  851. data/src/core/lib/surface/validate_metadata.h +18 -18
  852. data/src/core/lib/surface/version.cc +21 -21
  853. data/src/core/lib/transport/bdp_estimator.cc +17 -17
  854. data/src/core/lib/transport/bdp_estimator.h +18 -19
  855. data/src/core/lib/transport/connectivity_state.cc +19 -19
  856. data/src/core/lib/transport/connectivity_state.h +19 -19
  857. data/src/core/lib/transport/error_utils.cc +51 -45
  858. data/src/core/lib/transport/error_utils.h +21 -21
  859. data/src/core/lib/transport/handshaker.cc +49 -46
  860. data/src/core/lib/transport/handshaker.h +43 -38
  861. data/src/core/lib/transport/handshaker_factory.h +44 -18
  862. data/src/core/lib/transport/handshaker_registry.cc +25 -19
  863. data/src/core/lib/transport/handshaker_registry.h +21 -22
  864. data/src/core/lib/transport/http2_errors.h +20 -20
  865. data/src/core/lib/transport/http_connect_handshaker.cc +40 -41
  866. data/src/core/lib/transport/http_connect_handshaker.h +18 -18
  867. data/src/core/lib/transport/metadata_batch.cc +4 -1
  868. data/src/core/lib/transport/metadata_batch.h +46 -20
  869. data/src/core/lib/transport/parsed_metadata.cc +2 -6
  870. data/src/core/lib/transport/parsed_metadata.h +1 -0
  871. data/src/core/lib/transport/pid_controller.cc +20 -20
  872. data/src/core/lib/transport/pid_controller.h +24 -24
  873. data/src/core/lib/transport/status_conversion.cc +22 -22
  874. data/src/core/lib/transport/status_conversion.h +20 -20
  875. data/src/core/lib/transport/tcp_connect_handshaker.cc +15 -20
  876. data/src/core/lib/transport/tcp_connect_handshaker.h +1 -1
  877. data/src/core/lib/transport/timeout_encoding.cc +22 -22
  878. data/src/core/lib/transport/timeout_encoding.h +18 -18
  879. data/src/core/lib/transport/transport.cc +88 -41
  880. data/src/core/lib/transport/transport.h +193 -195
  881. data/src/core/lib/transport/transport_impl.h +42 -42
  882. data/src/core/lib/transport/transport_op_string.cc +26 -25
  883. data/src/core/plugin_registry/grpc_plugin_registry.cc +25 -27
  884. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +7 -14
  885. data/src/core/tsi/alts/crypt/aes_gcm.cc +20 -20
  886. data/src/core/tsi/alts/crypt/gsec.cc +26 -26
  887. data/src/core/tsi/alts/crypt/gsec.h +334 -334
  888. data/src/core/tsi/alts/frame_protector/alts_counter.cc +23 -23
  889. data/src/core/tsi/alts/frame_protector/alts_counter.h +66 -66
  890. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +19 -19
  891. data/src/core/tsi/alts/frame_protector/alts_crypter.h +206 -206
  892. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +72 -71
  893. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +38 -38
  894. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +18 -18
  895. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +80 -81
  896. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +22 -22
  897. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +22 -22
  898. data/src/core/tsi/alts/frame_protector/frame_handler.cc +26 -25
  899. data/src/core/tsi/alts/frame_protector/frame_handler.h +166 -166
  900. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +78 -77
  901. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +99 -99
  902. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +18 -17
  903. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +41 -42
  904. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +37 -36
  905. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +58 -58
  906. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +20 -20
  907. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +21 -20
  908. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +36 -36
  909. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +19 -19
  910. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +102 -101
  911. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +45 -44
  912. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +38 -39
  913. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +38 -36
  914. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +33 -34
  915. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +65 -66
  916. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +32 -31
  917. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +53 -54
  918. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +54 -53
  919. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +138 -139
  920. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +58 -57
  921. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +41 -42
  922. data/src/core/tsi/fake_transport_security.cc +80 -79
  923. data/src/core/tsi/fake_transport_security.h +30 -30
  924. data/src/core/tsi/local_transport_security.cc +34 -33
  925. data/src/core/tsi/local_transport_security.h +31 -31
  926. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +8 -3
  927. data/src/core/tsi/ssl/session_cache/ssl_session.h +18 -18
  928. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +19 -19
  929. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +18 -17
  930. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +19 -19
  931. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +25 -20
  932. data/src/core/tsi/ssl_transport_security.cc +139 -323
  933. data/src/core/tsi/ssl_transport_security.h +201 -200
  934. data/src/core/tsi/ssl_transport_security_utils.cc +250 -0
  935. data/src/core/tsi/ssl_transport_security_utils.h +147 -0
  936. data/src/core/tsi/ssl_types.h +25 -25
  937. data/src/core/tsi/transport_security.cc +26 -26
  938. data/src/core/tsi/transport_security.h +45 -45
  939. data/src/core/tsi/transport_security_grpc.cc +20 -20
  940. data/src/core/tsi/transport_security_grpc.h +39 -39
  941. data/src/core/tsi/transport_security_interface.h +330 -330
  942. data/src/ruby/ext/grpc/{ext-export-truffleruby.clang → ext-export-truffleruby-with-ruby-abi-version.clang} +0 -0
  943. data/src/ruby/ext/grpc/{ext-export-truffleruby.gcc → ext-export-truffleruby-with-ruby-abi-version.gcc} +0 -0
  944. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang +2 -0
  945. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc +7 -0
  946. data/src/ruby/ext/grpc/ext-export.clang +0 -1
  947. data/src/ruby/ext/grpc/ext-export.gcc +1 -2
  948. data/src/ruby/ext/grpc/extconf.rb +47 -2
  949. data/src/ruby/ext/grpc/rb_call.c +1 -0
  950. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  951. data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
  952. data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
  953. data/src/ruby/ext/grpc/rb_grpc.c +1 -0
  954. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +38 -38
  955. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +59 -59
  956. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
  957. data/src/ruby/lib/grpc/version.rb +1 -1
  958. data/src/ruby/spec/channel_spec.rb +0 -43
  959. data/src/ruby/spec/client_server_spec.rb +20 -8
  960. data/src/ruby/spec/generic/active_call_spec.rb +12 -3
  961. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
  962. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
  963. data/third_party/re2/re2/bitstate.cc +3 -3
  964. data/third_party/re2/re2/dfa.cc +13 -13
  965. data/third_party/re2/re2/nfa.cc +4 -4
  966. data/third_party/re2/re2/onepass.cc +2 -2
  967. data/third_party/re2/re2/prefilter_tree.cc +27 -59
  968. data/third_party/re2/re2/prefilter_tree.h +3 -2
  969. data/third_party/re2/re2/prog.cc +11 -2
  970. data/third_party/re2/re2/prog.h +17 -5
  971. data/third_party/re2/re2/re2.cc +6 -11
  972. data/third_party/re2/re2/re2.h +1 -1
  973. data/third_party/re2/re2/regexp.cc +1 -2
  974. data/third_party/re2/re2/stringpiece.h +10 -7
  975. data/third_party/re2/re2/unicode_casefold.cc +25 -11
  976. data/third_party/re2/re2/unicode_groups.cc +319 -151
  977. data/third_party/re2/re2/walker-inl.h +3 -2
  978. data/third_party/re2/util/mutex.h +4 -4
  979. data/third_party/zlib/compress.c +3 -3
  980. data/third_party/zlib/crc32.c +21 -12
  981. data/third_party/zlib/deflate.c +112 -106
  982. data/third_party/zlib/deflate.h +2 -2
  983. data/third_party/zlib/gzlib.c +1 -1
  984. data/third_party/zlib/gzread.c +3 -5
  985. data/third_party/zlib/gzwrite.c +1 -1
  986. data/third_party/zlib/infback.c +10 -7
  987. data/third_party/zlib/inflate.c +5 -2
  988. data/third_party/zlib/inftrees.c +2 -2
  989. data/third_party/zlib/inftrees.h +1 -1
  990. data/third_party/zlib/trees.c +61 -62
  991. data/third_party/zlib/uncompr.c +2 -2
  992. data/third_party/zlib/zconf.h +16 -3
  993. data/third_party/zlib/zlib.h +10 -10
  994. data/third_party/zlib/zutil.c +9 -7
  995. data/third_party/zlib/zutil.h +1 -0
  996. metadata +148 -42
  997. data/include/grpc/impl/codegen/gpr_slice.h +0 -71
  998. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -188
  999. data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -187
  1000. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -332
  1001. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -52
  1002. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -322
  1003. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +0 -62
  1004. data/src/core/lib/gpr/murmur_hash.cc +0 -82
  1005. data/src/core/lib/gpr/murmur_hash.h +0 -29
  1006. data/src/core/lib/gpr/tls.h +0 -156
  1007. data/src/core/lib/promise/call_push_pull.h +0 -148
  1008. data/src/core/lib/slice/slice_api.cc +0 -39
  1009. data/src/core/lib/slice/slice_refcount_base.h +0 -60
@@ -1,20 +1,20 @@
1
- /*
2
- *
3
- * Copyright 2015-2016 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
1
+ //
2
+ //
3
+ // Copyright 2015-2016 gRPC authors.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+ //
17
+ //
18
18
  #include <grpc/support/port_platform.h>
19
19
 
20
20
  #include "src/core/lib/surface/completion_queue.h"
@@ -34,18 +34,19 @@
34
34
  #include "absl/strings/str_join.h"
35
35
 
36
36
  #include <grpc/grpc.h>
37
- #include <grpc/impl/codegen/gpr_types.h>
38
37
  #include <grpc/support/alloc.h>
39
38
  #include <grpc/support/atm.h>
40
39
  #include <grpc/support/log.h>
41
40
  #include <grpc/support/sync.h>
41
+ #include <grpc/support/time.h>
42
42
 
43
43
  #include "src/core/lib/debug/stats.h"
44
+ #include "src/core/lib/debug/stats_data.h"
44
45
  #include "src/core/lib/gpr/spinlock.h"
45
- #include "src/core/lib/gpr/tls.h"
46
46
  #include "src/core/lib/gprpp/atomic_utils.h"
47
47
  #include "src/core/lib/gprpp/debug_location.h"
48
48
  #include "src/core/lib/gprpp/ref_counted.h"
49
+ #include "src/core/lib/gprpp/status_helper.h"
49
50
  #include "src/core/lib/gprpp/time.h"
50
51
  #include "src/core/lib/iomgr/closure.h"
51
52
  #include "src/core/lib/iomgr/exec_ctx.h"
@@ -66,8 +67,8 @@ namespace {
66
67
  // with a cq cache will go into that cache, and
67
68
  // will only be returned on the thread that initialized the cache.
68
69
  // NOTE: Only one event will ever be cached.
69
- GPR_THREAD_LOCAL(grpc_cq_completion*) g_cached_event;
70
- GPR_THREAD_LOCAL(grpc_completion_queue*) g_cached_cq;
70
+ thread_local grpc_cq_completion* g_cached_event;
71
+ thread_local grpc_completion_queue* g_cached_cq;
71
72
 
72
73
  struct plucker {
73
74
  grpc_pollset_worker** worker;
@@ -115,10 +116,10 @@ grpc_error_handle non_polling_poller_work(grpc_pollset* pollset,
115
116
  grpc_pollset_worker** worker,
116
117
  grpc_core::Timestamp deadline) {
117
118
  non_polling_poller* npp = reinterpret_cast<non_polling_poller*>(pollset);
118
- if (npp->shutdown) return GRPC_ERROR_NONE;
119
+ if (npp->shutdown) return absl::OkStatus();
119
120
  if (npp->kicked_without_poller) {
120
121
  npp->kicked_without_poller = false;
121
- return GRPC_ERROR_NONE;
122
+ return absl::OkStatus();
122
123
  }
123
124
  non_polling_worker w;
124
125
  gpr_cv_init(&w.cv);
@@ -140,7 +141,8 @@ grpc_error_handle non_polling_poller_work(grpc_pollset* pollset,
140
141
  npp->root = w.next;
141
142
  if (&w == npp->root) {
142
143
  if (npp->shutdown) {
143
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, npp->shutdown, GRPC_ERROR_NONE);
144
+ grpc_core::ExecCtx::Run(DEBUG_LOCATION, npp->shutdown,
145
+ absl::OkStatus());
144
146
  }
145
147
  npp->root = nullptr;
146
148
  }
@@ -149,7 +151,7 @@ grpc_error_handle non_polling_poller_work(grpc_pollset* pollset,
149
151
  w.prev->next = w.next;
150
152
  gpr_cv_destroy(&w.cv);
151
153
  if (worker != nullptr) *worker = nullptr;
152
- return GRPC_ERROR_NONE;
154
+ return absl::OkStatus();
153
155
  }
154
156
 
155
157
  grpc_error_handle non_polling_poller_kick(
@@ -168,7 +170,7 @@ grpc_error_handle non_polling_poller_kick(
168
170
  } else {
169
171
  p->kicked_without_poller = true;
170
172
  }
171
- return GRPC_ERROR_NONE;
173
+ return absl::OkStatus();
172
174
  }
173
175
 
174
176
  void non_polling_poller_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
@@ -176,7 +178,7 @@ void non_polling_poller_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
176
178
  GPR_ASSERT(closure != nullptr);
177
179
  p->shutdown = closure;
178
180
  if (p->root == nullptr) {
179
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, GRPC_ERROR_NONE);
181
+ grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, absl::OkStatus());
180
182
  } else {
181
183
  non_polling_worker* w = p->root;
182
184
  do {
@@ -187,13 +189,13 @@ void non_polling_poller_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
187
189
  }
188
190
 
189
191
  const cq_poller_vtable g_poller_vtable_by_poller_type[] = {
190
- /* GRPC_CQ_DEFAULT_POLLING */
192
+ // GRPC_CQ_DEFAULT_POLLING
191
193
  {true, true, grpc_pollset_size, grpc_pollset_init, grpc_pollset_kick,
192
194
  grpc_pollset_work, grpc_pollset_shutdown, grpc_pollset_destroy},
193
- /* GRPC_CQ_NON_LISTENING */
195
+ // GRPC_CQ_NON_LISTENING
194
196
  {true, false, grpc_pollset_size, grpc_pollset_init, grpc_pollset_kick,
195
197
  grpc_pollset_work, grpc_pollset_shutdown, grpc_pollset_destroy},
196
- /* GRPC_CQ_NON_POLLING */
198
+ // GRPC_CQ_NON_POLLING
197
199
  {false, false, non_polling_poller_size, non_polling_poller_init,
198
200
  non_polling_poller_kick, non_polling_poller_work,
199
201
  non_polling_poller_shutdown, non_polling_poller_destroy},
@@ -219,17 +221,17 @@ struct cq_vtable {
219
221
 
220
222
  namespace {
221
223
 
222
- /* Queue that holds the cq_completion_events. Internally uses
223
- * MultiProducerSingleConsumerQueue (a lockfree multiproducer single consumer
224
- * queue). It uses a queue_lock to support multiple consumers.
225
- * Only used in completion queues whose completion_type is GRPC_CQ_NEXT */
224
+ // Queue that holds the cq_completion_events. Internally uses
225
+ // MultiProducerSingleConsumerQueue (a lockfree multiproducer single consumer
226
+ // queue). It uses a queue_lock to support multiple consumers.
227
+ // Only used in completion queues whose completion_type is GRPC_CQ_NEXT
226
228
  class CqEventQueue {
227
229
  public:
228
230
  CqEventQueue() = default;
229
231
  ~CqEventQueue() = default;
230
232
 
231
- /* Note: The counter is not incremented/decremented atomically with push/pop.
232
- * The count is only eventually consistent */
233
+ // Note: The counter is not incremented/decremented atomically with push/pop.
234
+ // The count is only eventually consistent
233
235
  intptr_t num_items() const {
234
236
  return num_queue_items_.load(std::memory_order_relaxed);
235
237
  }
@@ -238,14 +240,14 @@ class CqEventQueue {
238
240
  grpc_cq_completion* Pop();
239
241
 
240
242
  private:
241
- /* Spinlock to serialize consumers i.e pop() operations */
243
+ // Spinlock to serialize consumers i.e pop() operations
242
244
  gpr_spinlock queue_lock_ = GPR_SPINLOCK_INITIALIZER;
243
245
 
244
246
  grpc_core::MultiProducerSingleConsumerQueue queue_;
245
247
 
246
- /* A lazy counter of number of items in the queue. This is NOT atomically
247
- incremented/decremented along with push/pop operations and hence is only
248
- eventually consistent */
248
+ // A lazy counter of number of items in the queue. This is NOT atomically
249
+ // incremented/decremented along with push/pop operations and hence is only
250
+ // eventually consistent
249
251
  std::atomic<intptr_t> num_queue_items_{0};
250
252
  };
251
253
 
@@ -259,18 +261,18 @@ struct cq_next_data {
259
261
  #endif
260
262
  }
261
263
 
262
- /** Completed events for completion-queues of type GRPC_CQ_NEXT */
264
+ /// Completed events for completion-queues of type GRPC_CQ_NEXT
263
265
  CqEventQueue queue;
264
266
 
265
- /** Counter of how many things have ever been queued on this completion queue
266
- useful for avoiding locks to check the queue */
267
+ /// Counter of how many things have ever been queued on this completion queue
268
+ /// useful for avoiding locks to check the queue
267
269
  std::atomic<intptr_t> things_queued_ever{0};
268
270
 
269
- /** Number of outstanding events (+1 if not shut down)
270
- Initial count is dropped by grpc_completion_queue_shutdown */
271
+ /// Number of outstanding events (+1 if not shut down)
272
+ /// Initial count is dropped by grpc_completion_queue_shutdown
271
273
  std::atomic<intptr_t> pending_events{1};
272
274
 
273
- /** 0 initially. 1 once we initiated shutdown */
275
+ /// 0 initially. 1 once we initiated shutdown
274
276
  bool shutdown_called = false;
275
277
  };
276
278
 
@@ -290,25 +292,25 @@ struct cq_pluck_data {
290
292
  #endif
291
293
  }
292
294
 
293
- /** Completed events for completion-queues of type GRPC_CQ_PLUCK */
295
+ /// Completed events for completion-queues of type GRPC_CQ_PLUCK
294
296
  grpc_cq_completion completed_head;
295
297
  grpc_cq_completion* completed_tail;
296
298
 
297
- /** Number of pending events (+1 if we're not shutdown).
298
- Initial count is dropped by grpc_completion_queue_shutdown. */
299
+ /// Number of pending events (+1 if we're not shutdown).
300
+ /// Initial count is dropped by grpc_completion_queue_shutdown.
299
301
  std::atomic<intptr_t> pending_events{1};
300
302
 
301
- /** Counter of how many things have ever been queued on this completion queue
302
- useful for avoiding locks to check the queue */
303
+ /// Counter of how many things have ever been queued on this completion queue
304
+ /// useful for avoiding locks to check the queue
303
305
  std::atomic<intptr_t> things_queued_ever{0};
304
306
 
305
- /** 0 initially. 1 once we completed shutting */
306
- /* TODO: (sreek) This is not needed since (shutdown == 1) if and only if
307
- * (pending_events == 0). So consider removing this in future and use
308
- * pending_events */
307
+ /// 0 initially. 1 once we completed shutting
308
+ // TODO(sreek): This is not needed since (shutdown == 1) if and only if
309
+ // (pending_events == 0). So consider removing this in future and use
310
+ // pending_events
309
311
  std::atomic<bool> shutdown{false};
310
312
 
311
- /** 0 initially. 1 once we initiated shutdown */
313
+ /// 0 initially. 1 once we initiated shutdown
312
314
  bool shutdown_called = false;
313
315
 
314
316
  int num_pluckers = 0;
@@ -327,24 +329,24 @@ struct cq_callback_data {
327
329
  #endif
328
330
  }
329
331
 
330
- /** No actual completed events queue, unlike other types */
332
+ /// No actual completed events queue, unlike other types
331
333
 
332
- /** Number of pending events (+1 if we're not shutdown).
333
- Initial count is dropped by grpc_completion_queue_shutdown. */
334
+ /// Number of pending events (+1 if we're not shutdown).
335
+ /// Initial count is dropped by grpc_completion_queue_shutdown.
334
336
  std::atomic<intptr_t> pending_events{1};
335
337
 
336
- /** 0 initially. 1 once we initiated shutdown */
338
+ /// 0 initially. 1 once we initiated shutdown
337
339
  bool shutdown_called = false;
338
340
 
339
- /** A callback that gets invoked when the CQ completes shutdown */
341
+ /// A callback that gets invoked when the CQ completes shutdown
340
342
  grpc_completion_queue_functor* shutdown_callback;
341
343
  };
342
344
 
343
345
  } // namespace
344
346
 
345
- /* Completion queue structure */
347
+ // Completion queue structure
346
348
  struct grpc_completion_queue {
347
- /** Once owning_refs drops to zero, we will destroy the cq */
349
+ /// Once owning_refs drops to zero, we will destroy the cq
348
350
  grpc_core::RefCount owning_refs;
349
351
 
350
352
  gpr_mu* mu;
@@ -362,7 +364,7 @@ struct grpc_completion_queue {
362
364
  int num_polls;
363
365
  };
364
366
 
365
- /* Forward declarations */
367
+ // Forward declarations
366
368
  static void cq_finish_shutdown_next(grpc_completion_queue* cq);
367
369
  static void cq_finish_shutdown_pluck(grpc_completion_queue* cq);
368
370
  static void cq_finish_shutdown_callback(grpc_completion_queue* cq);
@@ -412,17 +414,17 @@ static void cq_destroy_next(void* data);
412
414
  static void cq_destroy_pluck(void* data);
413
415
  static void cq_destroy_callback(void* data);
414
416
 
415
- /* Completion queue vtables based on the completion-type */
417
+ // Completion queue vtables based on the completion-type
416
418
  static const cq_vtable g_cq_vtable[] = {
417
- /* GRPC_CQ_NEXT */
419
+ // GRPC_CQ_NEXT
418
420
  {GRPC_CQ_NEXT, sizeof(cq_next_data), cq_init_next, cq_shutdown_next,
419
421
  cq_destroy_next, cq_begin_op_for_next, cq_end_op_for_next, cq_next,
420
422
  nullptr},
421
- /* GRPC_CQ_PLUCK */
423
+ // GRPC_CQ_PLUCK
422
424
  {GRPC_CQ_PLUCK, sizeof(cq_pluck_data), cq_init_pluck, cq_shutdown_pluck,
423
425
  cq_destroy_pluck, cq_begin_op_for_pluck, cq_end_op_for_pluck, nullptr,
424
426
  cq_pluck},
425
- /* GRPC_CQ_CALLBACK */
427
+ // GRPC_CQ_CALLBACK
426
428
  {GRPC_CQ_CALLBACK, sizeof(cq_callback_data), cq_init_callback,
427
429
  cq_shutdown_callback, cq_destroy_callback, cq_begin_op_for_callback,
428
430
  cq_end_op_for_callback, nullptr, nullptr},
@@ -460,7 +462,7 @@ int grpc_completion_queue_thread_local_cache_flush(grpc_completion_queue* cq,
460
462
  if (storage != nullptr && g_cached_cq == cq) {
461
463
  *tag = storage->tag;
462
464
  grpc_core::ExecCtx exec_ctx;
463
- *ok = (storage->next & static_cast<uintptr_t>(1)) == 1;
465
+ *ok = (storage->next & uintptr_t{1}) == 1;
464
466
  storage->done(storage->done_arg, storage);
465
467
  ret = 1;
466
468
  cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
@@ -512,13 +514,13 @@ grpc_completion_queue* grpc_completion_queue_create_internal(
512
514
 
513
515
  switch (completion_type) {
514
516
  case GRPC_CQ_NEXT:
515
- GRPC_STATS_INC_CQ_NEXT_CREATES();
517
+ grpc_core::global_stats().IncrementCqNextCreates();
516
518
  break;
517
519
  case GRPC_CQ_PLUCK:
518
- GRPC_STATS_INC_CQ_PLUCK_CREATES();
520
+ grpc_core::global_stats().IncrementCqPluckCreates();
519
521
  break;
520
522
  case GRPC_CQ_CALLBACK:
521
- GRPC_STATS_INC_CQ_CALLBACK_CREATES();
523
+ grpc_core::global_stats().IncrementCqCallbackCreates();
522
524
  break;
523
525
  }
524
526
 
@@ -535,7 +537,7 @@ grpc_completion_queue* grpc_completion_queue_create_internal(
535
537
  cq->vtable = vtable;
536
538
  cq->poller_vtable = poller_vtable;
537
539
 
538
- /* One for destroy(), one for pollset_shutdown */
540
+ // One for destroy(), one for pollset_shutdown
539
541
  new (&cq->owning_refs) grpc_core::RefCount(2);
540
542
 
541
543
  poller_vtable->init(POLLSET_FROM_CQ(cq), &cq->mu);
@@ -683,60 +685,57 @@ bool grpc_cq_begin_op(grpc_completion_queue* cq, void* tag) {
683
685
  return cq->vtable->begin_op(cq, tag);
684
686
  }
685
687
 
686
- /* Queue a GRPC_OP_COMPLETED operation to a completion queue (with a
687
- * completion
688
- * type of GRPC_CQ_NEXT) */
688
+ // Queue a GRPC_OP_COMPLETED operation to a completion queue (with a
689
+ // completion
690
+ // type of GRPC_CQ_NEXT)
689
691
  static void cq_end_op_for_next(
690
692
  grpc_completion_queue* cq, void* tag, grpc_error_handle error,
691
693
  void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
692
694
  grpc_cq_completion* storage, bool /*internal*/) {
693
695
  if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
694
- (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
695
- !GRPC_ERROR_IS_NONE(error))) {
696
- std::string errmsg = grpc_error_std_string(error);
696
+ (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) && !error.ok())) {
697
+ std::string errmsg = grpc_core::StatusToString(error);
697
698
  GRPC_API_TRACE(
698
699
  "cq_end_op_for_next(cq=%p, tag=%p, error=%s, "
699
700
  "done=%p, done_arg=%p, storage=%p)",
700
701
  6, (cq, tag, errmsg.c_str(), done, done_arg, storage));
701
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
702
- !GRPC_ERROR_IS_NONE(error)) {
702
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) && !error.ok()) {
703
703
  gpr_log(GPR_INFO, "Operation failed: tag=%p, error=%s", tag,
704
704
  errmsg.c_str());
705
705
  }
706
706
  }
707
707
  cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
708
- int is_success = (GRPC_ERROR_IS_NONE(error));
708
+ int is_success = (error.ok());
709
709
 
710
710
  storage->tag = tag;
711
711
  storage->done = done;
712
712
  storage->done_arg = done_arg;
713
713
  storage->next = static_cast<uintptr_t>(is_success);
714
714
 
715
- cq_check_tag(cq, tag, true); /* Used in debug builds only */
715
+ cq_check_tag(cq, tag, true); // Used in debug builds only
716
716
 
717
717
  if (g_cached_cq == cq && g_cached_event == nullptr) {
718
718
  g_cached_event = storage;
719
719
  } else {
720
- /* Add the completion to the queue */
720
+ // Add the completion to the queue
721
721
  bool is_first = cqd->queue.Push(storage);
722
722
  cqd->things_queued_ever.fetch_add(1, std::memory_order_relaxed);
723
- /* Since we do not hold the cq lock here, it is important to do an 'acquire'
724
- load here (instead of a 'no_barrier' load) to match with the release
725
- store
726
- (done via pending_events.fetch_sub(1, ACQ_REL)) in cq_shutdown_next
727
- */
723
+ // Since we do not hold the cq lock here, it is important to do an 'acquire'
724
+ // load here (instead of a 'no_barrier' load) to match with the release
725
+ // store
726
+ // (done via pending_events.fetch_sub(1, ACQ_REL)) in cq_shutdown_next
727
+ //
728
728
  if (cqd->pending_events.load(std::memory_order_acquire) != 1) {
729
- /* Only kick if this is the first item queued */
729
+ // Only kick if this is the first item queued
730
730
  if (is_first) {
731
731
  gpr_mu_lock(cq->mu);
732
732
  grpc_error_handle kick_error =
733
733
  cq->poller_vtable->kick(POLLSET_FROM_CQ(cq), nullptr);
734
734
  gpr_mu_unlock(cq->mu);
735
735
 
736
- if (!GRPC_ERROR_IS_NONE(kick_error)) {
736
+ if (!kick_error.ok()) {
737
737
  gpr_log(GPR_ERROR, "Kick failed: %s",
738
- grpc_error_std_string(kick_error).c_str());
739
- GRPC_ERROR_UNREF(kick_error);
738
+ grpc_core::StatusToString(kick_error).c_str());
740
739
  }
741
740
  }
742
741
  if (cqd->pending_events.fetch_sub(1, std::memory_order_acq_rel) == 1) {
@@ -755,30 +754,26 @@ static void cq_end_op_for_next(
755
754
  GRPC_CQ_INTERNAL_UNREF(cq, "shutting_down");
756
755
  }
757
756
  }
758
-
759
- GRPC_ERROR_UNREF(error);
760
757
  }
761
758
 
762
- /* Queue a GRPC_OP_COMPLETED operation to a completion queue (with a
763
- * completion
764
- * type of GRPC_CQ_PLUCK) */
759
+ // Queue a GRPC_OP_COMPLETED operation to a completion queue (with a
760
+ // completion
761
+ // type of GRPC_CQ_PLUCK)
765
762
  static void cq_end_op_for_pluck(
766
763
  grpc_completion_queue* cq, void* tag, grpc_error_handle error,
767
764
  void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
768
765
  grpc_cq_completion* storage, bool /*internal*/) {
769
766
  cq_pluck_data* cqd = static_cast<cq_pluck_data*> DATA_FROM_CQ(cq);
770
- int is_success = (GRPC_ERROR_IS_NONE(error));
767
+ int is_success = (error.ok());
771
768
 
772
769
  if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
773
- (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
774
- !GRPC_ERROR_IS_NONE(error))) {
775
- std::string errmsg = grpc_error_std_string(error).c_str();
770
+ (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) && !error.ok())) {
771
+ std::string errmsg = grpc_core::StatusToString(error);
776
772
  GRPC_API_TRACE(
777
773
  "cq_end_op_for_pluck(cq=%p, tag=%p, error=%s, "
778
774
  "done=%p, done_arg=%p, storage=%p)",
779
775
  6, (cq, tag, errmsg.c_str(), done, done_arg, storage));
780
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
781
- !GRPC_ERROR_IS_NONE(error)) {
776
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) && !error.ok()) {
782
777
  gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag,
783
778
  errmsg.c_str());
784
779
  }
@@ -791,9 +786,9 @@ static void cq_end_op_for_pluck(
791
786
  static_cast<uintptr_t>(is_success);
792
787
 
793
788
  gpr_mu_lock(cq->mu);
794
- cq_check_tag(cq, tag, false); /* Used in debug builds only */
789
+ cq_check_tag(cq, tag, false); // Used in debug builds only
795
790
 
796
- /* Add to the list of completions */
791
+ // Add to the list of completions
797
792
  cqd->things_queued_ever.fetch_add(1, std::memory_order_relaxed);
798
793
  cqd->completed_tail->next =
799
794
  reinterpret_cast<uintptr_t>(storage) | (1u & cqd->completed_tail->next);
@@ -814,22 +809,19 @@ static void cq_end_op_for_pluck(
814
809
  grpc_error_handle kick_error =
815
810
  cq->poller_vtable->kick(POLLSET_FROM_CQ(cq), pluck_worker);
816
811
  gpr_mu_unlock(cq->mu);
817
- if (!GRPC_ERROR_IS_NONE(kick_error)) {
812
+ if (!kick_error.ok()) {
818
813
  gpr_log(GPR_ERROR, "Kick failed: %s",
819
- grpc_error_std_string(kick_error).c_str());
820
- GRPC_ERROR_UNREF(kick_error);
814
+ grpc_core::StatusToString(kick_error).c_str());
821
815
  }
822
816
  }
823
-
824
- GRPC_ERROR_UNREF(error);
825
817
  }
826
818
 
827
819
  static void functor_callback(void* arg, grpc_error_handle error) {
828
820
  auto* functor = static_cast<grpc_completion_queue_functor*>(arg);
829
- functor->functor_run(functor, GRPC_ERROR_IS_NONE(error));
821
+ functor->functor_run(functor, error.ok());
830
822
  }
831
823
 
832
- /* Complete an event on a completion queue of type GRPC_CQ_CALLBACK */
824
+ // Complete an event on a completion queue of type GRPC_CQ_CALLBACK
833
825
  static void cq_end_op_for_callback(
834
826
  grpc_completion_queue* cq, void* tag, grpc_error_handle error,
835
827
  void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
@@ -837,15 +829,13 @@ static void cq_end_op_for_callback(
837
829
  cq_callback_data* cqd = static_cast<cq_callback_data*> DATA_FROM_CQ(cq);
838
830
 
839
831
  if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
840
- (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
841
- !GRPC_ERROR_IS_NONE(error))) {
842
- std::string errmsg = grpc_error_std_string(error);
832
+ (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) && !error.ok())) {
833
+ std::string errmsg = grpc_core::StatusToString(error);
843
834
  GRPC_API_TRACE(
844
835
  "cq_end_op_for_callback(cq=%p, tag=%p, error=%s, "
845
836
  "done=%p, done_arg=%p, storage=%p)",
846
837
  6, (cq, tag, errmsg.c_str(), done, done_arg, storage));
847
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
848
- !GRPC_ERROR_IS_NONE(error)) {
838
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) && !error.ok()) {
849
839
  gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag,
850
840
  errmsg.c_str());
851
841
  }
@@ -855,7 +845,7 @@ static void cq_end_op_for_callback(
855
845
  // for reserved storage. Invoke the done callback right away to release it.
856
846
  done(done_arg, storage);
857
847
 
858
- cq_check_tag(cq, tag, true); /* Used in debug builds only */
848
+ cq_check_tag(cq, tag, true); // Used in debug builds only
859
849
 
860
850
  if (cqd->pending_events.fetch_sub(1, std::memory_order_acq_rel) == 1) {
861
851
  cq_finish_shutdown_callback(cq);
@@ -871,9 +861,7 @@ static void cq_end_op_for_callback(
871
861
  if (((internal || functor->inlineable) &&
872
862
  grpc_core::ApplicationCallbackExecCtx::Available()) ||
873
863
  grpc_iomgr_is_any_background_poller_thread()) {
874
- grpc_core::ApplicationCallbackExecCtx::Enqueue(functor,
875
- (GRPC_ERROR_IS_NONE(error)));
876
- GRPC_ERROR_UNREF(error);
864
+ grpc_core::ApplicationCallbackExecCtx::Enqueue(functor, (error.ok()));
877
865
  return;
878
866
  }
879
867
 
@@ -896,7 +884,7 @@ struct cq_is_finished_arg {
896
884
  grpc_completion_queue* cq;
897
885
  grpc_core::Timestamp deadline;
898
886
  grpc_cq_completion* stolen_completion;
899
- void* tag; /* for pluck */
887
+ void* tag; // for pluck
900
888
  bool first_loop;
901
889
  };
902
890
  class ExecCtxNext : public grpc_core::ExecCtx {
@@ -919,11 +907,11 @@ class ExecCtxNext : public grpc_core::ExecCtx {
919
907
  a->last_seen_things_queued_ever =
920
908
  cqd->things_queued_ever.load(std::memory_order_relaxed);
921
909
 
922
- /* Pop a cq_completion from the queue. Returns NULL if the queue is empty
923
- * might return NULL in some cases even if the queue is not empty; but
924
- * that
925
- * is ok and doesn't affect correctness. Might effect the tail latencies a
926
- * bit) */
910
+ // Pop a cq_completion from the queue. Returns NULL if the queue is empty
911
+ // might return NULL in some cases even if the queue is not empty; but
912
+ // that
913
+ // is ok and doesn't affect correctness. Might effect the tail latencies a
914
+ // bit)
927
915
  a->stolen_completion = cqd->queue.Pop();
928
916
  if (a->stolen_completion != nullptr) {
929
917
  return true;
@@ -1004,26 +992,26 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
1004
992
  c->done(c->done_arg, c);
1005
993
  break;
1006
994
  } else {
1007
- /* If c == NULL it means either the queue is empty OR in an transient
1008
- inconsistent state. If it is the latter, we shold do a 0-timeout poll
1009
- so that the thread comes back quickly from poll to make a second
1010
- attempt at popping. Not doing this can potentially deadlock this
1011
- thread forever (if the deadline is infinity) */
995
+ // If c == NULL it means either the queue is empty OR in an transient
996
+ // inconsistent state. If it is the latter, we shold do a 0-timeout poll
997
+ // so that the thread comes back quickly from poll to make a second
998
+ // attempt at popping. Not doing this can potentially deadlock this
999
+ // thread forever (if the deadline is infinity)
1012
1000
  if (cqd->queue.num_items() > 0) {
1013
1001
  iteration_deadline = grpc_core::Timestamp::ProcessEpoch();
1014
1002
  }
1015
1003
  }
1016
1004
 
1017
1005
  if (cqd->pending_events.load(std::memory_order_acquire) == 0) {
1018
- /* Before returning, check if the queue has any items left over (since
1019
- MultiProducerSingleConsumerQueue::Pop() can sometimes return NULL
1020
- even if the queue is not empty. If so, keep retrying but do not
1021
- return GRPC_QUEUE_SHUTDOWN */
1006
+ // Before returning, check if the queue has any items left over (since
1007
+ // MultiProducerSingleConsumerQueue::Pop() can sometimes return NULL
1008
+ // even if the queue is not empty. If so, keep retrying but do not
1009
+ // return GRPC_QUEUE_SHUTDOWN
1022
1010
  if (cqd->queue.num_items() > 0) {
1023
- /* Go to the beginning of the loop. No point doing a poll because
1024
- (cq->shutdown == true) is only possible when there is no pending
1025
- work (i.e cq->pending_events == 0) and any outstanding completion
1026
- events should have already been queued on this cq */
1011
+ // Go to the beginning of the loop. No point doing a poll because
1012
+ // (cq->shutdown == true) is only possible when there is no pending
1013
+ // work (i.e cq->pending_events == 0) and any outstanding completion
1014
+ // events should have already been queued on this cq
1027
1015
  continue;
1028
1016
  }
1029
1017
 
@@ -1040,18 +1028,17 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
1040
1028
  break;
1041
1029
  }
1042
1030
 
1043
- /* The main polling work happens in grpc_pollset_work */
1031
+ // The main polling work happens in grpc_pollset_work
1044
1032
  gpr_mu_lock(cq->mu);
1045
1033
  cq->num_polls++;
1046
1034
  grpc_error_handle err = cq->poller_vtable->work(
1047
1035
  POLLSET_FROM_CQ(cq), nullptr, iteration_deadline);
1048
1036
  gpr_mu_unlock(cq->mu);
1049
1037
 
1050
- if (!GRPC_ERROR_IS_NONE(err)) {
1038
+ if (!err.ok()) {
1051
1039
  gpr_log(GPR_ERROR, "Completion queue next failed: %s",
1052
- grpc_error_std_string(err).c_str());
1053
- GRPC_ERROR_UNREF(err);
1054
- if (err == GRPC_ERROR_CANCELLED) {
1040
+ grpc_core::StatusToString(err).c_str());
1041
+ if (err == absl::CancelledError()) {
1055
1042
  ret.type = GRPC_QUEUE_SHUTDOWN;
1056
1043
  } else {
1057
1044
  ret.type = GRPC_QUEUE_TIMEOUT;
@@ -1078,12 +1065,12 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
1078
1065
  return ret;
1079
1066
  }
1080
1067
 
1081
- /* Finishes the completion queue shutdown. This means that there are no more
1082
- completion events / tags expected from the completion queue
1083
- - Must be called under completion queue lock
1084
- - Must be called only once in completion queue's lifetime
1085
- - grpc_completion_queue_shutdown() MUST have been called before calling
1086
- this function */
1068
+ // Finishes the completion queue shutdown. This means that there are no more
1069
+ // completion events / tags expected from the completion queue
1070
+ // - Must be called under completion queue lock
1071
+ // - Must be called only once in completion queue's lifetime
1072
+ // - grpc_completion_queue_shutdown() MUST have been called before calling
1073
+ // this function
1087
1074
  static void cq_finish_shutdown_next(grpc_completion_queue* cq) {
1088
1075
  cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
1089
1076
 
@@ -1096,12 +1083,12 @@ static void cq_finish_shutdown_next(grpc_completion_queue* cq) {
1096
1083
  static void cq_shutdown_next(grpc_completion_queue* cq) {
1097
1084
  cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
1098
1085
 
1099
- /* Need an extra ref for cq here because:
1100
- * We call cq_finish_shutdown_next() below, that would call pollset shutdown.
1101
- * Pollset shutdown decrements the cq ref count which can potentially destroy
1102
- * the cq (if that happens to be the last ref).
1103
- * Creating an extra ref here prevents the cq from getting destroyed while
1104
- * this function is still active */
1086
+ // Need an extra ref for cq here because:
1087
+ // We call cq_finish_shutdown_next() below, that would call pollset shutdown.
1088
+ // Pollset shutdown decrements the cq ref count which can potentially destroy
1089
+ // the cq (if that happens to be the last ref).
1090
+ // Creating an extra ref here prevents the cq from getting destroyed while
1091
+ // this function is still active
1105
1092
  GRPC_CQ_INTERNAL_REF(cq, "shutting_down");
1106
1093
  gpr_mu_lock(cq->mu);
1107
1094
  if (cqd->shutdown_called) {
@@ -1110,9 +1097,9 @@ static void cq_shutdown_next(grpc_completion_queue* cq) {
1110
1097
  return;
1111
1098
  }
1112
1099
  cqd->shutdown_called = true;
1113
- /* Doing acq/release fetch_sub here to match with
1114
- * cq_begin_op_for_next and cq_end_op_for_next functions which read/write
1115
- * on this counter without necessarily holding a lock on cq */
1100
+ // Doing acq/release fetch_sub here to match with
1101
+ // cq_begin_op_for_next and cq_end_op_for_next functions which read/write
1102
+ // on this counter without necessarily holding a lock on cq
1116
1103
  if (cqd->pending_events.fetch_sub(1, std::memory_order_acq_rel) == 1) {
1117
1104
  cq_finish_shutdown_next(cq);
1118
1105
  }
@@ -1147,7 +1134,7 @@ static void del_plucker(grpc_completion_queue* cq, void* tag,
1147
1134
  return;
1148
1135
  }
1149
1136
  }
1150
- GPR_UNREACHABLE_CODE(return );
1137
+ GPR_UNREACHABLE_CODE(return);
1151
1138
  }
1152
1139
 
1153
1140
  class ExecCtxPluck : public grpc_core::ExecCtx {
@@ -1172,11 +1159,9 @@ class ExecCtxPluck : public grpc_core::ExecCtx {
1172
1159
  grpc_cq_completion* c;
1173
1160
  grpc_cq_completion* prev = &cqd->completed_head;
1174
1161
  while ((c = reinterpret_cast<grpc_cq_completion*>(
1175
- prev->next & ~static_cast<uintptr_t>(1))) !=
1176
- &cqd->completed_head) {
1162
+ prev->next & ~uintptr_t{1})) != &cqd->completed_head) {
1177
1163
  if (c->tag == a->tag) {
1178
- prev->next = (prev->next & static_cast<uintptr_t>(1)) |
1179
- (c->next & ~static_cast<uintptr_t>(1));
1164
+ prev->next = (prev->next & uintptr_t{1}) | (c->next & ~uintptr_t{1});
1180
1165
  if (c == cqd->completed_tail) {
1181
1166
  cqd->completed_tail = prev;
1182
1167
  }
@@ -1243,11 +1228,9 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
1243
1228
  }
1244
1229
  prev = &cqd->completed_head;
1245
1230
  while ((c = reinterpret_cast<grpc_cq_completion*>(
1246
- prev->next & ~static_cast<uintptr_t>(1))) !=
1247
- &cqd->completed_head) {
1231
+ prev->next & ~uintptr_t{1})) != &cqd->completed_head) {
1248
1232
  if (c->tag == tag) {
1249
- prev->next = (prev->next & static_cast<uintptr_t>(1)) |
1250
- (c->next & ~static_cast<uintptr_t>(1));
1233
+ prev->next = (prev->next & uintptr_t{1}) | (c->next & ~uintptr_t{1});
1251
1234
  if (c == cqd->completed_tail) {
1252
1235
  cqd->completed_tail = prev;
1253
1236
  }
@@ -1272,7 +1255,7 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
1272
1255
  "is %d",
1273
1256
  GRPC_MAX_COMPLETION_QUEUE_PLUCKERS);
1274
1257
  gpr_mu_unlock(cq->mu);
1275
- /* TODO(ctiller): should we use a different result here */
1258
+ // TODO(ctiller): should we use a different result here
1276
1259
  ret.type = GRPC_QUEUE_TIMEOUT;
1277
1260
  ret.success = 0;
1278
1261
  dump_pending_tags(cq);
@@ -1290,12 +1273,11 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
1290
1273
  cq->num_polls++;
1291
1274
  grpc_error_handle err =
1292
1275
  cq->poller_vtable->work(POLLSET_FROM_CQ(cq), &worker, deadline_millis);
1293
- if (!GRPC_ERROR_IS_NONE(err)) {
1276
+ if (!err.ok()) {
1294
1277
  del_plucker(cq, tag, &worker);
1295
1278
  gpr_mu_unlock(cq->mu);
1296
1279
  gpr_log(GPR_ERROR, "Completion queue pluck failed: %s",
1297
- grpc_error_std_string(err).c_str());
1298
- GRPC_ERROR_UNREF(err);
1280
+ grpc_core::StatusToString(err).c_str());
1299
1281
  ret.type = GRPC_QUEUE_TIMEOUT;
1300
1282
  ret.success = 0;
1301
1283
  dump_pending_tags(cq);
@@ -1328,17 +1310,17 @@ static void cq_finish_shutdown_pluck(grpc_completion_queue* cq) {
1328
1310
  cq->poller_vtable->shutdown(POLLSET_FROM_CQ(cq), &cq->pollset_shutdown_done);
1329
1311
  }
1330
1312
 
1331
- /* NOTE: This function is almost exactly identical to cq_shutdown_next() but
1332
- * merging them is a bit tricky and probably not worth it */
1313
+ // NOTE: This function is almost exactly identical to cq_shutdown_next() but
1314
+ // merging them is a bit tricky and probably not worth it
1333
1315
  static void cq_shutdown_pluck(grpc_completion_queue* cq) {
1334
1316
  cq_pluck_data* cqd = static_cast<cq_pluck_data*> DATA_FROM_CQ(cq);
1335
1317
 
1336
- /* Need an extra ref for cq here because:
1337
- * We call cq_finish_shutdown_pluck() below, that would call pollset shutdown.
1338
- * Pollset shutdown decrements the cq ref count which can potentially destroy
1339
- * the cq (if that happens to be the last ref).
1340
- * Creating an extra ref here prevents the cq from getting destroyed while
1341
- * this function is still active */
1318
+ // Need an extra ref for cq here because:
1319
+ // We call cq_finish_shutdown_pluck() below, that would call pollset shutdown.
1320
+ // Pollset shutdown decrements the cq ref count which can potentially destroy
1321
+ // the cq (if that happens to be the last ref).
1322
+ // Creating an extra ref here prevents the cq from getting destroyed while
1323
+ // this function is still active
1342
1324
  GRPC_CQ_INTERNAL_REF(cq, "shutting_down (pluck cq)");
1343
1325
  gpr_mu_lock(cq->mu);
1344
1326
  if (cqd->shutdown_called) {
@@ -1370,18 +1352,18 @@ static void cq_finish_shutdown_callback(grpc_completion_queue* cq) {
1370
1352
  // from a background poller thread.
1371
1353
  grpc_core::Executor::Run(
1372
1354
  GRPC_CLOSURE_CREATE(functor_callback, callback, nullptr),
1373
- GRPC_ERROR_NONE);
1355
+ absl::OkStatus());
1374
1356
  }
1375
1357
 
1376
1358
  static void cq_shutdown_callback(grpc_completion_queue* cq) {
1377
1359
  cq_callback_data* cqd = static_cast<cq_callback_data*> DATA_FROM_CQ(cq);
1378
1360
 
1379
- /* Need an extra ref for cq here because:
1380
- * We call cq_finish_shutdown_callback() below, which calls pollset shutdown.
1381
- * Pollset shutdown decrements the cq ref count which can potentially destroy
1382
- * the cq (if that happens to be the last ref).
1383
- * Creating an extra ref here prevents the cq from getting destroyed while
1384
- * this function is still active */
1361
+ // Need an extra ref for cq here because:
1362
+ // We call cq_finish_shutdown_callback() below, which calls pollset shutdown.
1363
+ // Pollset shutdown decrements the cq ref count which can potentially destroy
1364
+ // the cq (if that happens to be the last ref).
1365
+ // Creating an extra ref here prevents the cq from getting destroyed while
1366
+ // this function is still active
1385
1367
  GRPC_CQ_INTERNAL_REF(cq, "shutting_down (callback cq)");
1386
1368
  gpr_mu_lock(cq->mu);
1387
1369
  if (cqd->shutdown_called) {
@@ -1399,8 +1381,8 @@ static void cq_shutdown_callback(grpc_completion_queue* cq) {
1399
1381
  GRPC_CQ_INTERNAL_UNREF(cq, "shutting_down (callback cq)");
1400
1382
  }
1401
1383
 
1402
- /* Shutdown simply drops a ref that we reserved at creation time; if we drop
1403
- to zero here, then enter shutdown mode and wake up any waiters */
1384
+ // Shutdown simply drops a ref that we reserved at creation time; if we drop
1385
+ // to zero here, then enter shutdown mode and wake up any waiters
1404
1386
  void grpc_completion_queue_shutdown(grpc_completion_queue* cq) {
1405
1387
  grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
1406
1388
  grpc_core::ExecCtx exec_ctx;