grpc 1.41.0 → 1.42.0.pre1

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 (519) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +57 -44
  3. data/etc/roots.pem +335 -326
  4. data/include/grpc/event_engine/event_engine.h +82 -42
  5. data/include/grpc/event_engine/internal/memory_allocator_impl.h +98 -0
  6. data/include/grpc/event_engine/memory_allocator.h +210 -0
  7. data/include/grpc/grpc.h +4 -0
  8. data/include/grpc/grpc_security.h +18 -0
  9. data/include/grpc/grpc_security_constants.h +1 -0
  10. data/include/grpc/impl/codegen/port_platform.h +7 -0
  11. data/src/core/ext/filters/client_channel/backend_metric.cc +18 -19
  12. data/src/core/ext/filters/client_channel/backup_poller.cc +2 -1
  13. data/src/core/ext/filters/client_channel/channel_connectivity.cc +71 -89
  14. data/src/core/ext/filters/client_channel/client_channel.cc +187 -252
  15. data/src/core/ext/filters/client_channel/client_channel.h +74 -27
  16. data/src/core/ext/filters/client_channel/client_channel_factory.cc +1 -1
  17. data/src/core/ext/filters/client_channel/client_channel_factory.h +17 -19
  18. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +8 -14
  19. data/src/core/ext/filters/client_channel/config_selector.cc +1 -1
  20. data/src/core/ext/filters/client_channel/config_selector.h +4 -5
  21. data/src/core/ext/filters/client_channel/connector.h +18 -18
  22. data/src/core/ext/filters/client_channel/dynamic_filters.cc +1 -1
  23. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +0 -1
  24. data/src/core/ext/filters/client_channel/health/health_check_client.cc +12 -11
  25. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +1 -1
  26. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +4 -0
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -15
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +166 -82
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +4 -0
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -4
  32. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +23 -7
  33. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +15 -10
  34. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -3
  35. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2502 -0
  36. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -1
  37. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +7 -1
  38. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +6 -2
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +1 -1
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +5 -0
  41. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +8 -1
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +7 -16
  43. data/src/core/ext/filters/client_channel/lb_policy.h +11 -1
  44. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -0
  45. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +139 -0
  46. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +11 -5
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +3 -3
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +12 -39
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +21 -1
  50. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -2
  51. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +3 -1
  52. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +77 -68
  53. data/src/core/ext/filters/client_channel/resolver.h +1 -1
  54. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -0
  55. data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -8
  56. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +1 -1
  57. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +1 -1
  58. data/src/core/ext/filters/client_channel/retry_filter.cc +48 -86
  59. data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
  60. data/src/core/ext/filters/client_channel/retry_throttle.cc +17 -48
  61. data/src/core/ext/filters/client_channel/server_address.h +1 -1
  62. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +49 -36
  63. data/src/core/ext/filters/client_channel/subchannel.cc +85 -143
  64. data/src/core/ext/filters/client_channel/subchannel.h +29 -49
  65. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +22 -7
  66. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +11 -2
  67. data/src/core/ext/filters/client_idle/client_idle_filter.cc +27 -210
  68. data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
  69. data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
  70. data/src/core/ext/filters/deadline/deadline_filter.cc +23 -26
  71. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -19
  72. data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -1
  73. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  74. data/src/core/ext/filters/http/client/http_client_filter.cc +41 -44
  75. data/src/core/ext/filters/http/client_authority_filter.cc +14 -15
  76. data/src/core/ext/filters/http/http_filters_plugin.cc +53 -71
  77. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +17 -12
  78. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +1 -1
  79. data/src/core/ext/filters/http/server/http_server_filter.cc +72 -69
  80. data/src/core/ext/filters/max_age/max_age_filter.cc +24 -26
  81. data/src/core/ext/filters/message_size/message_size_filter.cc +19 -16
  82. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  83. data/src/core/ext/{filters/client_channel → service_config}/service_config.cc +2 -2
  84. data/src/core/ext/{filters/client_channel → service_config}/service_config.h +4 -4
  85. data/src/core/ext/service_config/service_config_call_data.h +72 -0
  86. data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.cc +3 -3
  87. data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.h +8 -6
  88. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -5
  89. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +19 -24
  90. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +27 -50
  91. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +14 -16
  92. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +59 -58
  93. data/src/core/ext/transport/chttp2/transport/flow_control.cc +19 -16
  94. data/src/core/ext/transport/chttp2/transport/flow_control.h +4 -4
  95. data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -4
  96. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
  97. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -1
  98. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
  99. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
  100. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +1 -1
  101. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +41 -1
  102. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +8 -4
  103. data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +1 -1
  104. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +136 -98
  105. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +27 -8
  106. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +12 -25
  107. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +37 -30
  108. data/src/core/ext/transport/chttp2/transport/internal.h +4 -3
  109. data/src/core/ext/transport/chttp2/transport/parsing.cc +30 -173
  110. data/src/core/ext/transport/chttp2/transport/popularity_count.h +1 -1
  111. data/src/core/ext/transport/chttp2/transport/writing.cc +29 -22
  112. data/src/core/ext/transport/inproc/inproc_transport.cc +105 -109
  113. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +68 -34
  114. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +139 -1
  115. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +16 -4
  116. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +53 -4
  117. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +3 -2
  118. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +15 -0
  119. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +13 -8
  120. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +23 -0
  121. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +0 -1
  122. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +14 -11
  123. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +17 -0
  124. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +15 -12
  125. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +49 -19
  126. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +55 -0
  127. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +154 -0
  128. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +0 -2
  129. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +58 -0
  130. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +182 -0
  131. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
  132. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +1 -1
  133. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
  134. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
  135. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
  136. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
  137. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +58 -0
  138. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +130 -0
  139. data/src/core/ext/upb-generated/{udpa/type/v1 → xds/type/v3}/typed_struct.upb.c +7 -7
  140. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +83 -0
  141. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +310 -286
  142. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +10 -0
  143. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +101 -88
  144. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +5 -0
  145. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +59 -56
  146. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +59 -46
  147. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +78 -82
  148. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +323 -316
  149. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +5 -4
  150. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +19 -23
  151. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -3
  152. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +5 -3
  153. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +5 -4
  154. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +75 -0
  155. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
  156. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +13 -12
  157. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +25 -24
  158. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +16 -15
  159. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +17 -16
  160. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +33 -32
  161. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +19 -18
  162. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +45 -0
  163. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
  164. data/src/core/ext/xds/xds_api.cc +325 -362
  165. data/src/core/ext/xds/xds_api.h +134 -82
  166. data/src/core/ext/xds/xds_bootstrap.h +10 -0
  167. data/src/core/ext/xds/xds_certificate_provider.cc +3 -3
  168. data/src/core/ext/xds/xds_channel_stack_modifier.cc +113 -0
  169. data/src/core/ext/xds/xds_channel_stack_modifier.h +52 -0
  170. data/src/core/ext/xds/xds_client.cc +527 -314
  171. data/src/core/ext/xds/xds_client.h +42 -37
  172. data/src/core/ext/xds/xds_client_stats.h +1 -1
  173. data/src/core/ext/xds/xds_server_config_fetcher.cc +5 -7
  174. data/src/core/lib/address_utils/parse_address.cc +2 -0
  175. data/src/core/lib/avl/avl.cc +5 -5
  176. data/src/core/lib/backoff/backoff.cc +1 -1
  177. data/src/core/lib/channel/channel_args.cc +24 -6
  178. data/src/core/lib/channel/channel_args.h +9 -0
  179. data/src/core/lib/channel/channel_stack_builder.cc +3 -3
  180. data/src/core/lib/channel/channel_trace.cc +1 -1
  181. data/src/core/lib/channel/channel_trace.h +1 -1
  182. data/src/core/lib/channel/channelz.cc +3 -3
  183. data/src/core/lib/channel/channelz.h +2 -2
  184. data/src/core/lib/channel/channelz_registry.cc +1 -1
  185. data/src/core/lib/channel/channelz_registry.h +1 -1
  186. data/src/core/lib/channel/connected_channel.cc +1 -3
  187. data/src/core/lib/channel/connected_channel.h +1 -2
  188. data/src/core/lib/compression/compression.cc +2 -2
  189. data/src/core/lib/compression/compression_args.cc +6 -4
  190. data/src/core/lib/compression/compression_internal.cc +2 -2
  191. data/src/core/lib/compression/compression_internal.h +1 -1
  192. data/src/core/lib/config/core_configuration.cc +44 -2
  193. data/src/core/lib/config/core_configuration.h +39 -1
  194. data/src/core/lib/debug/stats.cc +1 -1
  195. data/src/core/lib/debug/stats_data.cc +13 -13
  196. data/src/core/lib/gpr/atm.cc +1 -1
  197. data/src/core/lib/gpr/cpu_posix.cc +1 -1
  198. data/src/core/lib/gpr/string.cc +2 -2
  199. data/src/core/lib/gpr/tls.h +1 -1
  200. data/src/core/lib/gpr/useful.h +79 -32
  201. data/src/core/lib/gprpp/arena.h +10 -0
  202. data/src/core/lib/gprpp/bitset.h +38 -16
  203. data/src/core/lib/gprpp/chunked_vector.h +211 -0
  204. data/src/core/lib/gprpp/construct_destruct.h +1 -1
  205. data/src/core/lib/gprpp/match.h +1 -1
  206. data/src/core/lib/gprpp/memory.h +6 -0
  207. data/src/core/lib/gprpp/overload.h +1 -1
  208. data/src/core/lib/gprpp/status_helper.cc +23 -3
  209. data/src/core/lib/gprpp/status_helper.h +12 -1
  210. data/src/core/lib/gprpp/table.h +411 -0
  211. data/src/core/lib/http/httpcli.cc +200 -182
  212. data/src/core/lib/http/parser.cc +2 -2
  213. data/src/core/lib/iomgr/call_combiner.cc +28 -10
  214. data/src/core/lib/iomgr/combiner.cc +6 -21
  215. data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -6
  216. data/src/core/lib/iomgr/error.cc +113 -52
  217. data/src/core/lib/iomgr/error.h +50 -9
  218. data/src/core/lib/iomgr/error_cfstream.cc +5 -0
  219. data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -2
  220. data/src/core/lib/iomgr/ev_epollex_linux.cc +7 -7
  221. data/src/core/lib/iomgr/ev_poll_posix.cc +29 -20
  222. data/src/core/lib/iomgr/event_engine/closure.cc +41 -18
  223. data/src/core/lib/iomgr/event_engine/closure.h +10 -1
  224. data/src/core/lib/iomgr/event_engine/endpoint.cc +3 -3
  225. data/src/core/lib/iomgr/event_engine/iomgr.cc +1 -1
  226. data/src/core/lib/iomgr/event_engine/pollset.cc +5 -4
  227. data/src/core/lib/iomgr/event_engine/resolver.cc +10 -7
  228. data/src/core/lib/iomgr/event_engine/tcp.cc +9 -8
  229. data/src/core/lib/iomgr/event_engine/timer.cc +7 -2
  230. data/src/core/lib/iomgr/exec_ctx.cc +1 -9
  231. data/src/core/lib/iomgr/executor/mpmcqueue.cc +5 -7
  232. data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -8
  233. data/src/core/lib/iomgr/executor.cc +6 -20
  234. data/src/core/lib/iomgr/iomgr.cc +3 -1
  235. data/src/core/lib/iomgr/iomgr_internal.cc +4 -9
  236. data/src/core/lib/iomgr/iomgr_internal.h +3 -2
  237. data/src/core/lib/iomgr/load_file.cc +2 -2
  238. data/src/core/lib/iomgr/lockfree_event.cc +18 -0
  239. data/src/core/lib/iomgr/pollset_custom.cc +1 -1
  240. data/src/core/lib/iomgr/pollset_custom.h +1 -1
  241. data/src/core/lib/iomgr/resolve_address_posix.cc +5 -7
  242. data/src/core/lib/iomgr/resource_quota.cc +13 -11
  243. data/src/core/lib/iomgr/socket_factory_posix.cc +2 -2
  244. data/src/core/lib/iomgr/socket_mutator.cc +2 -2
  245. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -2
  246. data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -3
  247. data/src/core/lib/iomgr/tcp_client_custom.cc +1 -1
  248. data/src/core/lib/iomgr/tcp_client_posix.cc +9 -18
  249. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
  250. data/src/core/lib/iomgr/tcp_posix.cc +4 -5
  251. data/src/core/lib/iomgr/tcp_server_custom.cc +2 -1
  252. data/src/core/lib/iomgr/tcp_server_posix.cc +3 -4
  253. data/src/core/lib/iomgr/tcp_server_windows.cc +4 -5
  254. data/src/core/lib/iomgr/tcp_windows.cc +2 -2
  255. data/src/core/lib/iomgr/timer_generic.cc +13 -13
  256. data/src/core/lib/iomgr/timer_heap.cc +1 -1
  257. data/src/core/lib/json/json_util.cc +68 -0
  258. data/src/core/lib/json/json_util.h +57 -99
  259. data/src/core/lib/json/json_writer.cc +0 -3
  260. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  261. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
  262. data/src/core/lib/security/authorization/evaluate_args.cc +14 -12
  263. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +13 -1
  264. data/src/core/lib/security/context/security_context.cc +4 -2
  265. data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
  266. data/src/core/lib/security/credentials/credentials.cc +4 -2
  267. data/src/core/lib/security/credentials/credentials.h +6 -1
  268. data/src/core/lib/security/credentials/external/external_account_credentials.cc +47 -11
  269. data/src/core/lib/security/credentials/external/external_account_credentials.h +1 -0
  270. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +1 -1
  271. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -9
  272. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -2
  273. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +2 -2
  274. data/src/core/lib/security/security_connector/security_connector.cc +9 -4
  275. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  276. data/src/core/lib/security/security_connector/ssl_utils.cc +1 -1
  277. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +1 -0
  278. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +0 -2
  279. data/src/core/lib/security/transport/client_auth_filter.cc +5 -5
  280. data/src/core/lib/security/transport/security_handshaker.cc +73 -43
  281. data/src/core/lib/security/transport/server_auth_filter.cc +3 -5
  282. data/src/core/lib/security/transport/tsi_error.cc +3 -5
  283. data/src/core/lib/slice/slice.cc +0 -16
  284. data/src/core/lib/slice/slice_api.cc +39 -0
  285. data/src/core/lib/slice/slice_buffer.cc +5 -5
  286. data/src/core/lib/slice/slice_intern.cc +8 -13
  287. data/src/core/lib/slice/slice_internal.h +1 -244
  288. data/src/core/lib/slice/slice_refcount.cc +17 -0
  289. data/src/core/lib/slice/slice_refcount.h +121 -0
  290. data/src/core/lib/slice/slice_refcount_base.h +173 -0
  291. data/src/core/lib/slice/slice_split.cc +100 -0
  292. data/src/core/lib/slice/slice_split.h +40 -0
  293. data/src/core/lib/slice/slice_string_helpers.cc +0 -83
  294. data/src/core/lib/slice/slice_string_helpers.h +0 -11
  295. data/src/core/lib/slice/static_slice.cc +529 -0
  296. data/src/core/lib/slice/static_slice.h +331 -0
  297. data/src/core/lib/surface/builtins.cc +49 -0
  298. data/src/core/{ext/filters/workarounds/workaround_cronet_compression_filter.h → lib/surface/builtins.h} +8 -9
  299. data/src/core/lib/surface/call.cc +103 -120
  300. data/src/core/lib/surface/call.h +0 -6
  301. data/src/core/lib/surface/channel.cc +19 -32
  302. data/src/core/lib/surface/channel.h +0 -9
  303. data/src/core/lib/surface/channel_init.cc +23 -76
  304. data/src/core/lib/surface/channel_init.h +52 -44
  305. data/src/core/lib/surface/completion_queue.cc +6 -5
  306. data/src/core/lib/surface/init.cc +0 -39
  307. data/src/core/lib/surface/init_secure.cc +17 -14
  308. data/src/core/lib/surface/lame_client.cc +18 -11
  309. data/src/core/lib/surface/lame_client.h +1 -1
  310. data/src/core/lib/surface/server.cc +25 -17
  311. data/src/core/lib/surface/server.h +17 -10
  312. data/src/core/lib/surface/validate_metadata.cc +5 -2
  313. data/src/core/lib/surface/version.cc +2 -2
  314. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  315. data/src/core/lib/transport/error_utils.cc +42 -17
  316. data/src/core/lib/transport/error_utils.h +1 -1
  317. data/src/core/lib/transport/metadata.cc +31 -10
  318. data/src/core/lib/transport/metadata.h +2 -1
  319. data/src/core/lib/transport/metadata_batch.cc +35 -371
  320. data/src/core/lib/transport/metadata_batch.h +905 -71
  321. data/src/core/lib/transport/parsed_metadata.h +263 -0
  322. data/src/core/lib/transport/pid_controller.cc +4 -4
  323. data/src/core/lib/transport/static_metadata.cc +714 -846
  324. data/src/core/lib/transport/static_metadata.h +115 -379
  325. data/src/core/lib/transport/status_metadata.cc +1 -0
  326. data/src/core/lib/transport/transport.cc +4 -5
  327. data/src/core/lib/transport/transport_op_string.cc +40 -20
  328. data/src/core/plugin_registry/grpc_plugin_registry.cc +64 -43
  329. data/src/core/tsi/alts/crypt/aes_gcm.cc +3 -1
  330. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
  331. data/src/core/tsi/alts/frame_protector/frame_handler.cc +10 -11
  332. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -2
  333. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +12 -2
  334. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  335. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +2 -2
  336. data/src/core/tsi/fake_transport_security.cc +15 -7
  337. data/src/core/tsi/local_transport_security.cc +36 -73
  338. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +16 -50
  339. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -3
  340. data/src/core/tsi/ssl_transport_security.cc +10 -2
  341. data/src/core/tsi/transport_security.cc +12 -0
  342. data/src/core/tsi/transport_security.h +16 -1
  343. data/src/core/tsi/transport_security_interface.h +26 -0
  344. data/src/ruby/ext/grpc/extconf.rb +12 -9
  345. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
  346. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
  347. data/src/ruby/lib/grpc/version.rb +1 -1
  348. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -2
  349. data/src/ruby/spec/client_server_spec.rb +1 -1
  350. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +4 -4
  351. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +11 -6
  352. data/third_party/address_sorting/address_sorting_posix.c +1 -0
  353. data/third_party/boringssl-with-bazel/err_data.c +278 -272
  354. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +21 -22
  355. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
  356. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +5 -0
  357. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +15 -22
  358. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +13 -7
  359. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
  360. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/a_strex.c +268 -271
  361. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
  362. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +2 -2
  363. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +0 -39
  364. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
  365. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
  366. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +38 -0
  367. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +8 -8
  368. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +289 -198
  369. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +8 -8
  370. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +9 -13
  371. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +1 -0
  372. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +11 -8
  373. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
  374. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
  375. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
  376. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
  377. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
  378. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
  379. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +4 -6
  380. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
  381. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +8 -0
  382. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
  383. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +45 -65
  384. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +1 -0
  385. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
  386. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +21 -3
  387. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
  388. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +5 -2
  389. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
  390. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +10 -0
  391. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
  392. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
  393. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +4 -7
  394. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +4 -7
  395. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
  396. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +1 -1
  397. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +24 -9
  398. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +4 -2
  399. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +35 -35
  400. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +11 -10
  401. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +10 -37
  402. data/third_party/boringssl-with-bazel/src/crypto/internal.h +39 -0
  403. data/third_party/boringssl-with-bazel/src/crypto/mem.c +12 -9
  404. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
  405. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
  406. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
  407. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
  408. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
  409. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
  410. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +9 -4
  411. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +151 -12
  412. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
  413. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
  414. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
  415. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +181 -1
  416. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
  417. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +11 -2
  418. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +0 -2
  419. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -179
  420. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +4 -2
  421. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -5
  422. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -0
  423. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +11 -50
  424. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +1 -1
  425. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +2 -4
  426. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +0 -16
  427. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +22 -18
  428. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +11 -8
  429. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +16 -0
  430. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -0
  431. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +1 -1
  432. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +1 -1
  433. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -0
  434. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +4 -3
  435. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +24 -5
  436. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +17 -8
  437. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -0
  438. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +6 -6
  439. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -0
  440. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +5 -0
  441. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
  442. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
  443. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +0 -2
  444. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  445. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +71 -26
  446. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +366 -227
  447. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +2 -9
  448. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +10 -4
  449. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +3 -1
  450. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
  451. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +9 -0
  452. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +8 -2
  453. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
  454. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +9 -3
  455. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -20
  456. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +12 -5
  457. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +5 -0
  458. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +37 -15
  459. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +28 -14
  460. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +31 -32
  461. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +529 -91
  462. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -695
  463. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +48 -8
  464. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +266 -357
  465. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +90 -152
  466. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +15 -13
  467. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +75 -79
  468. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +96 -97
  469. data/third_party/boringssl-with-bazel/src/ssl/internal.h +63 -43
  470. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +2 -2
  471. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +2 -2
  472. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +6 -12
  473. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +14 -17
  474. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +14 -27
  475. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +203 -203
  476. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +30 -41
  477. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +47 -33
  478. data/third_party/re2/re2/compile.cc +91 -109
  479. data/third_party/re2/re2/dfa.cc +27 -39
  480. data/third_party/re2/re2/filtered_re2.cc +18 -2
  481. data/third_party/re2/re2/filtered_re2.h +10 -5
  482. data/third_party/re2/re2/nfa.cc +1 -1
  483. data/third_party/re2/re2/parse.cc +42 -23
  484. data/third_party/re2/re2/perl_groups.cc +34 -34
  485. data/third_party/re2/re2/prefilter.cc +3 -2
  486. data/third_party/re2/re2/prog.cc +182 -4
  487. data/third_party/re2/re2/prog.h +28 -9
  488. data/third_party/re2/re2/re2.cc +87 -118
  489. data/third_party/re2/re2/re2.h +156 -141
  490. data/third_party/re2/re2/regexp.cc +12 -5
  491. data/third_party/re2/re2/regexp.h +8 -2
  492. data/third_party/re2/re2/set.cc +31 -9
  493. data/third_party/re2/re2/set.h +9 -4
  494. data/third_party/re2/re2/simplify.cc +11 -3
  495. data/third_party/re2/re2/tostring.cc +1 -1
  496. data/third_party/re2/re2/walker-inl.h +1 -1
  497. data/third_party/re2/util/mutex.h +2 -2
  498. data/third_party/re2/util/pcre.h +3 -3
  499. metadata +83 -70
  500. data/include/grpc/event_engine/slice_allocator.h +0 -71
  501. data/src/core/ext/filters/client_channel/service_config_call_data.h +0 -126
  502. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -211
  503. data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
  504. data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
  505. data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
  506. data/src/core/ext/transport/chttp2/client/authority.h +0 -36
  507. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +0 -67
  508. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +0 -74
  509. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
  510. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
  511. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
  512. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -130
  513. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +0 -83
  514. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +0 -44
  515. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +0 -35
  516. data/src/core/lib/iomgr/udp_server.cc +0 -747
  517. data/src/core/lib/iomgr/udp_server.h +0 -103
  518. data/src/core/lib/transport/authority_override.cc +0 -40
  519. data/src/core/lib/transport/authority_override.h +0 -37
@@ -110,8 +110,7 @@ static grpc_error_handle CFStreamAnnotateError(grpc_error_handle src_error,
110
110
  return grpc_error_set_str(
111
111
  grpc_error_set_int(src_error, GRPC_ERROR_INT_GRPC_STATUS,
112
112
  GRPC_STATUS_UNAVAILABLE),
113
- GRPC_ERROR_STR_TARGET_ADDRESS,
114
- grpc_slice_from_copied_string(ep->peer_string.c_str()));
113
+ GRPC_ERROR_STR_TARGET_ADDRESS, ep->peer_string);
115
114
  }
116
115
 
117
116
  static void CallReadCb(CFStreamEndpoint* ep, grpc_error_handle error) {
@@ -150,7 +149,7 @@ static void CallWriteCb(CFStreamEndpoint* ep, grpc_error_handle error) {
150
149
  static void ReadAction(void* arg, grpc_error_handle error) {
151
150
  CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
152
151
  GPR_ASSERT(ep->read_cb != nullptr);
153
- if (error) {
152
+ if (error != GRPC_ERROR_NONE) {
154
153
  grpc_slice_buffer_reset_and_unref_internal(ep->read_slices);
155
154
  CallReadCb(ep, GRPC_ERROR_REF(error));
156
155
  EP_UNREF(ep, "read");
@@ -192,7 +191,7 @@ static void ReadAction(void* arg, grpc_error_handle error) {
192
191
  static void WriteAction(void* arg, grpc_error_handle error) {
193
192
  CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
194
193
  GPR_ASSERT(ep->write_cb != nullptr);
195
- if (error) {
194
+ if (error != GRPC_ERROR_NONE) {
196
195
  grpc_slice_buffer_reset_and_unref_internal(ep->write_slices);
197
196
  CallWriteCb(ep, GRPC_ERROR_REF(error));
198
197
  EP_UNREF(ep, "write");
@@ -287,13 +286,15 @@ static void CFStreamWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
287
286
  void CFStreamShutdown(grpc_endpoint* ep, grpc_error_handle why) {
288
287
  CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
289
288
  if (grpc_tcp_trace.enabled()) {
290
- gpr_log(GPR_DEBUG, "CFStream endpoint:%p shutdown (%p)", ep_impl, why);
289
+ gpr_log(GPR_DEBUG, "CFStream endpoint:%p shutdown (%s)", ep_impl,
290
+ grpc_error_std_string(why).c_str());
291
291
  }
292
292
  CFReadStreamClose(ep_impl->read_stream);
293
293
  CFWriteStreamClose(ep_impl->write_stream);
294
294
  ep_impl->stream_sync->Shutdown(why);
295
295
  if (grpc_tcp_trace.enabled()) {
296
- gpr_log(GPR_DEBUG, "CFStream endpoint:%p shutdown DONE (%p)", ep_impl, why);
296
+ gpr_log(GPR_DEBUG, "CFStream endpoint:%p shutdown DONE (%s)", ep_impl,
297
+ grpc_error_std_string(why).c_str());
297
298
  }
298
299
  }
299
300
 
@@ -22,7 +22,7 @@
22
22
  #include <inttypes.h>
23
23
  #include <string.h>
24
24
 
25
- #include <grpc/status.h>
25
+ #include <grpc/impl/codegen/status.h>
26
26
  #include <grpc/support/alloc.h>
27
27
  #include <grpc/support/log.h>
28
28
  #include <grpc/support/string_util.h>
@@ -34,8 +34,8 @@
34
34
  #include "src/core/lib/debug/trace.h"
35
35
  #include "src/core/lib/gpr/useful.h"
36
36
  #include "src/core/lib/iomgr/error_internal.h"
37
- #include "src/core/lib/profiling/timers.h"
38
37
  #include "src/core/lib/slice/slice_internal.h"
38
+ #include "src/core/lib/slice/slice_utils.h"
39
39
 
40
40
  grpc_core::DebugOnlyTraceFlag grpc_trace_error_refcount(false,
41
41
  "error_refcount");
@@ -65,7 +65,7 @@ absl::Status grpc_status_create(absl::StatusCode code, absl::string_view msg,
65
65
  return s;
66
66
  }
67
67
 
68
- std::string grpc_error_std_string(const absl::Status& error) {
68
+ std::string grpc_error_std_string(absl::Status error) {
69
69
  return grpc_core::StatusToString(error);
70
70
  }
71
71
 
@@ -87,14 +87,20 @@ absl::Status grpc_wsa_error(const grpc_core::DebugLocation& location, int err,
87
87
  char* utf8_message = gpr_format_message(err);
88
88
  absl::Status s =
89
89
  StatusCreate(absl::StatusCode::kUnknown, "WSA Error", location, {});
90
- StatusSetInt(&s, StatusIntProperty::WSA_ERROR, err);
91
- StatusSetStr(&s, StatusStrProperty::OS_ERROR, utf8_message);
92
- StatusSetStr(&s, StatusStrProperty::SYSCALL, call_name);
90
+ StatusSetInt(&s, grpc_core::StatusIntProperty::kWsaError, err);
91
+ StatusSetStr(&s, grpc_core::StatusStrProperty::kOsError, utf8_message);
92
+ StatusSetStr(&s, grpc_core::StatusStrProperty::kSyscall, call_name);
93
+ return s;
93
94
  }
94
95
  #endif
95
96
 
96
97
  grpc_error_handle grpc_error_set_int(grpc_error_handle src,
97
98
  grpc_error_ints which, intptr_t value) {
99
+ if (src == GRPC_ERROR_NONE) {
100
+ src = absl::UnknownError("");
101
+ StatusSetInt(&src, grpc_core::StatusIntProperty::kRpcStatus,
102
+ GRPC_STATUS_OK);
103
+ }
98
104
  grpc_core::StatusSetInt(
99
105
  &src, static_cast<grpc_core::StatusIntProperty>(which), value);
100
106
  return src;
@@ -108,36 +114,100 @@ bool grpc_error_get_int(grpc_error_handle error, grpc_error_ints which,
108
114
  *p = *value;
109
115
  return true;
110
116
  } else {
117
+ // TODO(veblush): Remove this once absl::Status migration is done
118
+ if (which == GRPC_ERROR_INT_GRPC_STATUS) {
119
+ switch (error.code()) {
120
+ case absl::StatusCode::kOk:
121
+ *p = GRPC_STATUS_OK;
122
+ return true;
123
+ case absl::StatusCode::kResourceExhausted:
124
+ *p = GRPC_STATUS_RESOURCE_EXHAUSTED;
125
+ return true;
126
+ case absl::StatusCode::kCancelled:
127
+ *p = GRPC_STATUS_CANCELLED;
128
+ return true;
129
+ default:
130
+ break;
131
+ }
132
+ }
111
133
  return false;
112
134
  }
113
135
  }
114
136
 
115
137
  grpc_error_handle grpc_error_set_str(grpc_error_handle src,
116
138
  grpc_error_strs which,
117
- const grpc_slice& str) {
118
- grpc_core::StatusSetStr(
119
- &src, static_cast<grpc_core::StatusStrProperty>(which),
120
- std::string(reinterpret_cast<const char*>(GRPC_SLICE_START_PTR(str)),
121
- GRPC_SLICE_LENGTH(str)));
139
+ absl::string_view str) {
140
+ if (src == GRPC_ERROR_NONE) {
141
+ src = absl::UnknownError("");
142
+ StatusSetInt(&src, grpc_core::StatusIntProperty::kRpcStatus,
143
+ GRPC_STATUS_OK);
144
+ }
145
+ if (which == GRPC_ERROR_STR_DESCRIPTION) {
146
+ // To change the message of absl::Status, a new instance should be created
147
+ // with a code and payload because it doesn't have a setter for it.
148
+ absl::Status s = absl::Status(src.code(), str);
149
+ src.ForEachPayload(
150
+ [&](absl::string_view type_url, const absl::Cord& payload) {
151
+ s.SetPayload(type_url, payload);
152
+ });
153
+ return s;
154
+ } else {
155
+ grpc_core::StatusSetStr(
156
+ &src, static_cast<grpc_core::StatusStrProperty>(which), str);
157
+ }
122
158
  return src;
123
159
  }
124
160
 
125
161
  bool grpc_error_get_str(grpc_error_handle error, grpc_error_strs which,
126
- grpc_slice* s) {
127
- absl::optional<std::string> value = grpc_core::StatusGetStr(
128
- error, static_cast<grpc_core::StatusStrProperty>(which));
129
- if (value.has_value()) {
130
- *s = grpc_slice_from_copied_buffer(value->c_str(), value->size());
131
- return true;
162
+ std::string* s) {
163
+ if (which == GRPC_ERROR_STR_DESCRIPTION) {
164
+ // absl::Status uses the message field for GRPC_ERROR_STR_DESCRIPTION
165
+ // instead of using payload.
166
+ absl::string_view msg = error.message();
167
+ if (msg.empty()) {
168
+ return false;
169
+ } else {
170
+ *s = std::string(msg);
171
+ return true;
172
+ }
132
173
  } else {
133
- return false;
174
+ absl::optional<std::string> value = grpc_core::StatusGetStr(
175
+ error, static_cast<grpc_core::StatusStrProperty>(which));
176
+ if (value.has_value()) {
177
+ *s = std::move(*value);
178
+ return true;
179
+ } else {
180
+ // TODO(veblush): Remove this once absl::Status migration is done
181
+ if (which == GRPC_ERROR_STR_GRPC_MESSAGE) {
182
+ switch (error.code()) {
183
+ case absl::StatusCode::kOk:
184
+ *s = "";
185
+ return true;
186
+ case absl::StatusCode::kResourceExhausted:
187
+ *s = "RESOURCE_EXHAUSTED";
188
+ return true;
189
+ case absl::StatusCode::kCancelled:
190
+ *s = "CANCELLED";
191
+ return true;
192
+ default:
193
+ break;
194
+ }
195
+ }
196
+ return false;
197
+ }
134
198
  }
135
199
  }
136
200
 
137
201
  grpc_error_handle grpc_error_add_child(grpc_error_handle src,
138
202
  grpc_error_handle child) {
139
- grpc_core::StatusAddChild(&src, child);
140
- return src;
203
+ if (src.ok()) {
204
+ return child;
205
+ } else {
206
+ if (!child.ok()) {
207
+ grpc_core::StatusAddChild(&src, child);
208
+ }
209
+ return src;
210
+ }
141
211
  }
142
212
 
143
213
  bool grpc_log_error(const char* what, grpc_error_handle error, const char* file,
@@ -300,8 +370,8 @@ static uint8_t get_placement(grpc_error_handle* err, size_t size) {
300
370
  GPR_ASSERT(*err);
301
371
  uint8_t slots = static_cast<uint8_t>(size / sizeof(intptr_t));
302
372
  if ((*err)->arena_size + slots > (*err)->arena_capacity) {
303
- (*err)->arena_capacity = static_cast<uint8_t> GPR_MIN(
304
- UINT8_MAX - 1, (3 * (*err)->arena_capacity / 2));
373
+ (*err)->arena_capacity = static_cast<uint8_t>(std::min(
374
+ size_t(UINT8_MAX - 1), size_t(3 * (*err)->arena_capacity / 2)));
305
375
  if ((*err)->arena_size + slots > (*err)->arena_capacity) {
306
376
  return UINT8_MAX;
307
377
  }
@@ -417,7 +487,6 @@ grpc_error_handle grpc_error_create(const char* file, int line,
417
487
  const grpc_slice& desc,
418
488
  grpc_error_handle* referencing,
419
489
  size_t num_referencing) {
420
- GPR_TIMER_SCOPE("grpc_error_create", 0);
421
490
  uint8_t initial_arena_capacity = static_cast<uint8_t>(
422
491
  DEFAULT_ERROR_CAPACITY +
423
492
  static_cast<uint8_t>(num_referencing * SLOTS_PER_LINKED_ERROR) +
@@ -483,13 +552,12 @@ static void ref_errs(grpc_error_handle err) {
483
552
  while (slot != UINT8_MAX) {
484
553
  grpc_linked_error* lerr =
485
554
  reinterpret_cast<grpc_linked_error*>(err->arena + slot);
486
- GRPC_ERROR_REF(lerr->err);
555
+ (void)GRPC_ERROR_REF(lerr->err);
487
556
  slot = lerr->next;
488
557
  }
489
558
  }
490
559
 
491
560
  static grpc_error_handle copy_error_and_unref(grpc_error_handle in) {
492
- GPR_TIMER_SCOPE("copy_error_and_unref", 0);
493
561
  grpc_error_handle out;
494
562
  if (grpc_error_is_special(in)) {
495
563
  out = GRPC_ERROR_CREATE_FROM_STATIC_STRING("unknown");
@@ -541,7 +609,6 @@ static grpc_error_handle copy_error_and_unref(grpc_error_handle in) {
541
609
 
542
610
  grpc_error_handle grpc_error_set_int(grpc_error_handle src,
543
611
  grpc_error_ints which, intptr_t value) {
544
- GPR_TIMER_SCOPE("grpc_error_set_int", 0);
545
612
  grpc_error_handle new_err = copy_error_and_unref(src);
546
613
  internal_set_int(&new_err, which, value);
547
614
  return new_err;
@@ -555,16 +622,15 @@ struct special_error_status_map {
555
622
  const special_error_status_map error_status_map[] = {
556
623
  {GRPC_STATUS_OK, "", 0}, // GRPC_ERROR_NONE
557
624
  {GRPC_STATUS_INVALID_ARGUMENT, "", 0}, // GRPC_ERROR_RESERVED_1
558
- {GRPC_STATUS_RESOURCE_EXHAUSTED, "Out of memory",
559
- strlen("Out of memory")}, // GRPC_ERROR_OOM
625
+ {GRPC_STATUS_RESOURCE_EXHAUSTED, "RESOURCE_EXHAUSTED",
626
+ strlen("RESOURCE_EXHAUSTED")}, // GRPC_ERROR_OOM
560
627
  {GRPC_STATUS_INVALID_ARGUMENT, "", 0}, // GRPC_ERROR_RESERVED_2
561
- {GRPC_STATUS_CANCELLED, "Cancelled",
562
- strlen("Cancelled")}, // GRPC_ERROR_CANCELLED
628
+ {GRPC_STATUS_CANCELLED, "CANCELLED",
629
+ strlen("CANCELLED")}, // GRPC_ERROR_CANCELLED
563
630
  };
564
631
 
565
632
  bool grpc_error_get_int(grpc_error_handle err, grpc_error_ints which,
566
633
  intptr_t* p) {
567
- GPR_TIMER_SCOPE("grpc_error_get_int", 0);
568
634
  if (grpc_error_is_special(err)) {
569
635
  if (which != GRPC_ERROR_INT_GRPC_STATUS) return false;
570
636
  *p = error_status_map[reinterpret_cast<size_t>(err)].code;
@@ -580,28 +646,26 @@ bool grpc_error_get_int(grpc_error_handle err, grpc_error_ints which,
580
646
 
581
647
  grpc_error_handle grpc_error_set_str(grpc_error_handle src,
582
648
  grpc_error_strs which,
583
- const grpc_slice& str) {
584
- GPR_TIMER_SCOPE("grpc_error_set_str", 0);
649
+ absl::string_view str) {
585
650
  grpc_error_handle new_err = copy_error_and_unref(src);
586
- internal_set_str(&new_err, which, str);
651
+ internal_set_str(&new_err, which,
652
+ grpc_slice_from_copied_buffer(str.data(), str.length()));
587
653
  return new_err;
588
654
  }
589
655
 
590
656
  bool grpc_error_get_str(grpc_error_handle err, grpc_error_strs which,
591
- grpc_slice* str) {
657
+ std::string* s) {
592
658
  if (grpc_error_is_special(err)) {
593
659
  if (which != GRPC_ERROR_STR_GRPC_MESSAGE) return false;
594
660
  const special_error_status_map& msg =
595
661
  error_status_map[reinterpret_cast<size_t>(err)];
596
- str->refcount = &grpc_core::kNoopRefcount;
597
- str->data.refcounted.bytes =
598
- reinterpret_cast<uint8_t*>(const_cast<char*>(msg.msg));
599
- str->data.refcounted.length = msg.len;
662
+ *s = std::string(msg.msg, msg.len);
600
663
  return true;
601
664
  }
602
665
  uint8_t slot = err->strs[which];
603
666
  if (slot != UINT8_MAX) {
604
- *str = *reinterpret_cast<grpc_slice*>(err->arena + slot);
667
+ grpc_slice* slice = reinterpret_cast<grpc_slice*>(err->arena + slot);
668
+ *s = std::string(grpc_core::StringViewFromSlice(*slice));
605
669
  return true;
606
670
  } else {
607
671
  return false;
@@ -610,7 +674,6 @@ bool grpc_error_get_str(grpc_error_handle err, grpc_error_strs which,
610
674
 
611
675
  grpc_error_handle grpc_error_add_child(grpc_error_handle src,
612
676
  grpc_error_handle child) {
613
- GPR_TIMER_SCOPE("grpc_error_add_child", 0);
614
677
  if (src != GRPC_ERROR_NONE) {
615
678
  if (child == GRPC_ERROR_NONE) {
616
679
  /* \a child is empty. Simply return the ref to \a src */
@@ -631,9 +694,9 @@ grpc_error_handle grpc_error_add_child(grpc_error_handle src,
631
694
  }
632
695
  }
633
696
 
634
- static const char* no_error_string = "\"No Error\"";
635
- static const char* oom_error_string = "\"Out of memory\"";
636
- static const char* cancelled_error_string = "\"Cancelled\"";
697
+ static const char* no_error_string = "\"OK\"";
698
+ static const char* oom_error_string = "\"RESOURCE_EXHAUSTED\"";
699
+ static const char* cancelled_error_string = "\"CANCELLED\"";
637
700
 
638
701
  struct kv_pair {
639
702
  char* key;
@@ -646,7 +709,7 @@ struct kv_pairs {
646
709
  };
647
710
  static void append_chr(char c, char** s, size_t* sz, size_t* cap) {
648
711
  if (*sz == *cap) {
649
- *cap = GPR_MAX(8, 3 * *cap / 2);
712
+ *cap = std::max(size_t(8), 3 * *cap / 2);
650
713
  *s = static_cast<char*>(gpr_realloc(*s, *cap));
651
714
  }
652
715
  (*s)[(*sz)++] = c;
@@ -698,7 +761,7 @@ static void append_esc_str(const uint8_t* str, size_t len, char** s, size_t* sz,
698
761
 
699
762
  static void append_kv(kv_pairs* kvs, char* key, char* value) {
700
763
  if (kvs->num_kvs == kvs->cap_kvs) {
701
- kvs->cap_kvs = GPR_MAX(3 * kvs->cap_kvs / 2, 4);
764
+ kvs->cap_kvs = std::max(3 * kvs->cap_kvs / 2, size_t(4));
702
765
  kvs->kvs = static_cast<kv_pair*>(
703
766
  gpr_realloc(kvs->kvs, sizeof(*kvs->kvs) * kvs->cap_kvs));
704
767
  }
@@ -842,7 +905,6 @@ static char* finish_kvs(kv_pairs* kvs) {
842
905
  }
843
906
 
844
907
  const char* grpc_error_string(grpc_error_handle err) {
845
- GPR_TIMER_SCOPE("grpc_error_string", 0);
846
908
  if (err == GRPC_ERROR_NONE) return no_error_string;
847
909
  if (err == GRPC_ERROR_OOM) return oom_error_string;
848
910
  if (err == GRPC_ERROR_CANCELLED) return cancelled_error_string;
@@ -889,9 +951,8 @@ grpc_error_handle grpc_os_error(const char* file, int line, int err,
889
951
  grpc_slice_from_static_string(strerror(err)),
890
952
  nullptr, 0),
891
953
  GRPC_ERROR_INT_ERRNO, err),
892
- GRPC_ERROR_STR_OS_ERROR,
893
- grpc_slice_from_static_string(strerror(err))),
894
- GRPC_ERROR_STR_SYSCALL, grpc_slice_from_copied_string(call_name));
954
+ GRPC_ERROR_STR_OS_ERROR, strerror(err)),
955
+ GRPC_ERROR_STR_SYSCALL, call_name);
895
956
  }
896
957
 
897
958
  #ifdef GPR_WINDOWS
@@ -905,8 +966,8 @@ grpc_error_handle grpc_wsa_error(const char* file, int line, int err,
905
966
  grpc_slice_from_static_string("OS Error"), NULL,
906
967
  0),
907
968
  GRPC_ERROR_INT_WSA_ERROR, err),
908
- GRPC_ERROR_STR_OS_ERROR, grpc_slice_from_copied_string(utf8_message)),
909
- GRPC_ERROR_STR_SYSCALL, grpc_slice_from_static_string(call_name));
969
+ GRPC_ERROR_STR_OS_ERROR, utf8_message),
970
+ GRPC_ERROR_STR_SYSCALL, call_name);
910
971
  gpr_free(utf8_message);
911
972
  return error;
912
973
  }
@@ -32,6 +32,7 @@
32
32
  #include <grpc/support/time.h>
33
33
 
34
34
  #include "src/core/lib/debug/trace.h"
35
+ #include "src/core/lib/gpr/spinlock.h"
35
36
  #include "src/core/lib/gprpp/status_helper.h"
36
37
  #include "src/core/lib/slice/slice_internal.h"
37
38
 
@@ -156,11 +157,11 @@ void grpc_enable_error_creation();
156
157
  #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
157
158
 
158
159
  #define GRPC_ERROR_NONE absl::OkStatus()
159
- #define GRPC_ERROR_OOM absl::Status(absl::ResourceExhaustedError)
160
+ #define GRPC_ERROR_OOM absl::Status(absl::ResourceExhaustedError(""))
160
161
  #define GRPC_ERROR_CANCELLED absl::CancelledError()
161
162
 
162
163
  #define GRPC_ERROR_REF(err) (err)
163
- #define GRPC_ERROR_UNREF(err)
164
+ #define GRPC_ERROR_UNREF(err) (void)(err)
164
165
 
165
166
  #define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc) \
166
167
  StatusCreate(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, {})
@@ -189,11 +190,11 @@ absl::Status grpc_status_create(absl::StatusCode code, absl::string_view msg,
189
190
  // them. If the vector is empty, return GRPC_ERROR_NONE.
190
191
  template <typename VectorType>
191
192
  static absl::Status grpc_status_create_from_vector(
192
- const grpc_core::DebugLocation& location, const char* desc,
193
+ const grpc_core::DebugLocation& location, absl::string_view desc,
193
194
  VectorType* error_list) {
194
195
  absl::Status error = GRPC_ERROR_NONE;
195
196
  if (error_list->size() != 0) {
196
- error = grpc_status_create(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION,
197
+ error = grpc_status_create(absl::StatusCode::kUnknown, desc, location,
197
198
  error_list->size(), error_list->data());
198
199
  error_list->clear();
199
200
  }
@@ -363,15 +364,12 @@ grpc_error_handle grpc_error_set_int(grpc_error_handle src,
363
364
  /// intptr_t for `p`, even if the value of `p` is not used.
364
365
  bool grpc_error_get_int(grpc_error_handle error, grpc_error_ints which,
365
366
  intptr_t* p);
366
- /// This call takes ownership of the slice; the error is responsible for
367
- /// eventually unref-ing it.
368
367
  grpc_error_handle grpc_error_set_str(
369
368
  grpc_error_handle src, grpc_error_strs which,
370
- const grpc_slice& str) GRPC_MUST_USE_RESULT;
369
+ absl::string_view str) GRPC_MUST_USE_RESULT;
371
370
  /// Returns false if the specified string is not set.
372
- /// Caller does NOT own the slice.
373
371
  bool grpc_error_get_str(grpc_error_handle error, grpc_error_strs which,
374
- grpc_slice* s);
372
+ std::string* str);
375
373
 
376
374
  /// Add a child error: an error that is believed to have contributed to this
377
375
  /// error occurring. Allows root causing high level errors from lower level
@@ -398,4 +396,47 @@ inline bool grpc_log_if_error(const char* what, grpc_error_handle error,
398
396
  #define GRPC_LOG_IF_ERROR(what, error) \
399
397
  (grpc_log_if_error((what), (error), __FILE__, __LINE__))
400
398
 
399
+ /// Helper class to get & set grpc_error_handle in a thread-safe fashion.
400
+ /// This could be considered as atomic<grpc_error_handle>.
401
+ class AtomicError {
402
+ public:
403
+ AtomicError() {
404
+ error_ = GRPC_ERROR_NONE;
405
+ lock_ = GPR_SPINLOCK_STATIC_INITIALIZER;
406
+ }
407
+ explicit AtomicError(grpc_error_handle error) {
408
+ error_ = GRPC_ERROR_REF(error);
409
+ }
410
+ ~AtomicError() { GRPC_ERROR_UNREF(error_); }
411
+
412
+ AtomicError(const AtomicError&) = delete;
413
+ AtomicError& operator=(const AtomicError&) = delete;
414
+
415
+ /// returns get() == GRPC_ERROR_NONE
416
+ bool ok() {
417
+ gpr_spinlock_lock(&lock_);
418
+ bool ret = error_ == GRPC_ERROR_NONE;
419
+ gpr_spinlock_unlock(&lock_);
420
+ return ret;
421
+ }
422
+
423
+ grpc_error_handle get() {
424
+ gpr_spinlock_lock(&lock_);
425
+ grpc_error_handle ret = error_;
426
+ gpr_spinlock_unlock(&lock_);
427
+ return ret;
428
+ }
429
+
430
+ void set(grpc_error_handle error) {
431
+ gpr_spinlock_lock(&lock_);
432
+ GRPC_ERROR_UNREF(error_);
433
+ error_ = GRPC_ERROR_REF(error);
434
+ gpr_spinlock_unlock(&lock_);
435
+ }
436
+
437
+ private:
438
+ grpc_error_handle error_;
439
+ gpr_spinlock lock_;
440
+ };
441
+
401
442
  #endif /* GRPC_CORE_LIB_IOMGR_ERROR_H */
@@ -48,7 +48,12 @@ grpc_error_handle grpc_error_create_from_cferror(const char* file, int line,
48
48
  absl::StrFormat("%s (error domain:%s, code:%ld, description:%s)",
49
49
  custom_desc, buf_domain, code, buf_desc);
50
50
  CFRelease(desc);
51
+ #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
52
+ return StatusCreate(absl::StatusCode::kUnknown, error_msg,
53
+ grpc_core::DebugLocation(file, line), {});
54
+ #else
51
55
  return grpc_error_create(
52
56
  file, line, grpc_slice_from_copied_string(error_msg.c_str()), NULL, 0);
57
+ #endif
53
58
  }
54
59
  #endif /* GRPC_CFSTREAM */
@@ -195,7 +195,7 @@ struct grpc_pollset_worker {
195
195
  (worker)->kick_state_mutator = __LINE__; \
196
196
  } while (false)
197
197
 
198
- #define MAX_NEIGHBORHOODS 1024
198
+ #define MAX_NEIGHBORHOODS 1024u
199
199
 
200
200
  typedef struct pollset_neighborhood {
201
201
  union {
@@ -525,7 +525,8 @@ static grpc_error_handle pollset_global_init(void) {
525
525
  &ev) != 0) {
526
526
  return GRPC_OS_ERROR(errno, "epoll_ctl");
527
527
  }
528
- g_num_neighborhoods = GPR_CLAMP(gpr_cpu_num_cores(), 1, MAX_NEIGHBORHOODS);
528
+ g_num_neighborhoods =
529
+ grpc_core::Clamp(gpr_cpu_num_cores(), 1u, MAX_NEIGHBORHOODS);
529
530
  g_neighborhoods = static_cast<pollset_neighborhood*>(
530
531
  gpr_zalloc(sizeof(*g_neighborhoods) * g_num_neighborhoods));
531
532
  for (size_t i = 0; i < g_num_neighborhoods; i++) {
@@ -1071,7 +1071,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
1071
1071
  case WRR_EMPTIED:
1072
1072
  if (pollset->active_pollable != worker->pollable_obj) {
1073
1073
  // pollable no longer being polled: flush events
1074
- pollable_process_events(pollset, worker->pollable_obj, true);
1074
+ (void)pollable_process_events(pollset, worker->pollable_obj, true);
1075
1075
  }
1076
1076
  break;
1077
1077
  case WRR_REMOVED:
@@ -1357,7 +1357,7 @@ static void pollset_set_add_fd(grpc_pollset_set* pss, grpc_fd* fd) {
1357
1357
  err_desc);
1358
1358
  }
1359
1359
  if (pss->fd_count == pss->fd_capacity) {
1360
- pss->fd_capacity = GPR_MAX(pss->fd_capacity * 2, 8);
1360
+ pss->fd_capacity = std::max(pss->fd_capacity * 2, size_t(8));
1361
1361
  pss->fds = static_cast<grpc_fd**>(
1362
1362
  gpr_realloc(pss->fds, pss->fd_capacity * sizeof(*pss->fds)));
1363
1363
  }
@@ -1467,7 +1467,7 @@ static void pollset_set_add_pollset(grpc_pollset_set* pss, grpc_pollset* ps) {
1467
1467
  pss->fds, &pss->fd_count),
1468
1468
  err_desc);
1469
1469
  if (pss->pollset_count == pss->pollset_capacity) {
1470
- pss->pollset_capacity = GPR_MAX(pss->pollset_capacity * 2, 8);
1470
+ pss->pollset_capacity = std::max(pss->pollset_capacity * 2, size_t(8));
1471
1471
  pss->pollsets = static_cast<grpc_pollset**>(gpr_realloc(
1472
1472
  pss->pollsets, pss->pollset_capacity * sizeof(*pss->pollsets)));
1473
1473
  }
@@ -1492,7 +1492,7 @@ static void pollset_set_add_pollset_set(grpc_pollset_set* a,
1492
1492
  return;
1493
1493
  }
1494
1494
  if (a > b) {
1495
- GPR_SWAP(grpc_pollset_set*, a, b);
1495
+ std::swap(a, b);
1496
1496
  }
1497
1497
  gpr_mu* a_mu = &a->mu;
1498
1498
  gpr_mu* b_mu = &b->mu;
@@ -1513,7 +1513,7 @@ static void pollset_set_add_pollset_set(grpc_pollset_set* a,
1513
1513
  const size_t a_size = a->fd_count + a->pollset_count;
1514
1514
  const size_t b_size = b->fd_count + b->pollset_count;
1515
1515
  if (b_size > a_size) {
1516
- GPR_SWAP(grpc_pollset_set*, a, b);
1516
+ std::swap(a, b);
1517
1517
  }
1518
1518
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1519
1519
  gpr_log(GPR_INFO, "PSS: parent %p to %p", b, a);
@@ -1521,7 +1521,7 @@ static void pollset_set_add_pollset_set(grpc_pollset_set* a,
1521
1521
  a->refs.Ref();
1522
1522
  b->parent = a;
1523
1523
  if (a->fd_capacity < a->fd_count + b->fd_count) {
1524
- a->fd_capacity = GPR_MAX(2 * a->fd_capacity, a->fd_count + b->fd_count);
1524
+ a->fd_capacity = std::max(2 * a->fd_capacity, a->fd_count + b->fd_count);
1525
1525
  a->fds = static_cast<grpc_fd**>(
1526
1526
  gpr_realloc(a->fds, a->fd_capacity * sizeof(*a->fds)));
1527
1527
  }
@@ -1539,7 +1539,7 @@ static void pollset_set_add_pollset_set(grpc_pollset_set* a,
1539
1539
  err_desc);
1540
1540
  if (a->pollset_capacity < a->pollset_count + b->pollset_count) {
1541
1541
  a->pollset_capacity =
1542
- GPR_MAX(2 * a->pollset_capacity, a->pollset_count + b->pollset_count);
1542
+ std::max(2 * a->pollset_capacity, a->pollset_count + b->pollset_count);
1543
1543
  a->pollsets = static_cast<grpc_pollset**>(
1544
1544
  gpr_realloc(a->pollsets, a->pollset_capacity * sizeof(*a->pollsets)));
1545
1545
  }