grpc 1.9.1 → 1.10.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 (637) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2654 -953
  3. data/etc/roots.pem +282 -683
  4. data/include/grpc/compression.h +9 -26
  5. data/include/grpc/grpc.h +10 -24
  6. data/include/grpc/grpc_security.h +7 -1
  7. data/include/grpc/impl/codegen/compression_types.h +5 -62
  8. data/include/grpc/impl/codegen/grpc_types.h +10 -6
  9. data/include/grpc/module.modulemap +1 -10
  10. data/include/grpc/support/alloc.h +3 -2
  11. data/include/grpc/support/log.h +1 -2
  12. data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
  13. data/src/boringssl/err_data.c +550 -496
  14. data/src/core/ext/census/grpc_context.cc +2 -1
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
  17. data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
  18. data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
  20. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
  21. data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
  22. data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
  23. data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
  30. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
  31. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
  32. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
  34. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
  35. data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
  36. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
  37. data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
  38. data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
  39. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
  40. data/src/core/ext/filters/client_channel/resolver.cc +6 -52
  41. data/src/core/ext/filters/client_channel/resolver.h +98 -55
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
  45. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
  46. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
  47. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
  48. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
  49. data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
  50. data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
  51. data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
  52. data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
  53. data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
  54. data/src/core/ext/filters/client_channel/subchannel.h +38 -45
  55. data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
  56. data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
  57. data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
  58. data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
  59. data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
  60. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
  61. data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
  62. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
  63. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
  64. data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
  65. data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
  66. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
  67. data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
  68. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  69. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
  70. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
  71. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
  72. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
  73. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
  74. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
  75. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
  76. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
  77. data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
  78. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
  79. data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
  80. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
  81. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
  82. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
  83. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
  84. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
  85. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
  86. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
  87. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
  88. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
  89. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  90. data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
  91. data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
  92. data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
  93. data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
  94. data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
  95. data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
  96. data/src/core/lib/{gpr → avl}/avl.cc +61 -57
  97. data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
  98. data/src/core/lib/backoff/backoff.cc +6 -5
  99. data/src/core/lib/channel/channel_args.cc +23 -109
  100. data/src/core/lib/channel/channel_args.h +5 -31
  101. data/src/core/lib/channel/channel_stack.cc +11 -8
  102. data/src/core/lib/channel/channel_stack_builder.cc +10 -7
  103. data/src/core/lib/channel/connected_channel.cc +18 -17
  104. data/src/core/lib/channel/handshaker.cc +8 -8
  105. data/src/core/lib/channel/handshaker_registry.cc +3 -2
  106. data/src/core/lib/compression/algorithm_metadata.h +13 -6
  107. data/src/core/lib/compression/compression.cc +72 -183
  108. data/src/core/lib/compression/compression_internal.cc +274 -0
  109. data/src/core/lib/compression/compression_internal.h +86 -0
  110. data/src/core/lib/compression/message_compress.cc +15 -15
  111. data/src/core/lib/compression/message_compress.h +4 -3
  112. data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
  113. data/src/core/lib/compression/stream_compression_identity.cc +1 -1
  114. data/src/core/lib/debug/stats.cc +10 -8
  115. data/src/core/lib/debug/stats_data.cc +2 -1
  116. data/src/core/lib/debug/trace.cc +3 -3
  117. data/src/core/lib/gpr/alloc.cc +7 -11
  118. data/src/core/lib/gpr/arena.cc +34 -12
  119. data/src/core/lib/gpr/atm.cc +2 -1
  120. data/src/core/lib/gpr/cpu_linux.cc +3 -3
  121. data/src/core/lib/gpr/cpu_posix.cc +2 -1
  122. data/src/core/lib/gpr/env.h +1 -1
  123. data/src/core/lib/gpr/env_linux.cc +1 -1
  124. data/src/core/lib/gpr/env_windows.cc +4 -4
  125. data/src/core/lib/gpr/fork.cc +16 -2
  126. data/src/core/lib/gpr/host_port.cc +5 -4
  127. data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
  128. data/src/core/lib/gpr/log.cc +5 -4
  129. data/src/core/lib/gpr/log_linux.cc +1 -1
  130. data/src/core/lib/gpr/mpscq.cc +1 -0
  131. data/src/core/lib/gpr/murmur_hash.cc +4 -4
  132. data/src/core/lib/gpr/string.cc +19 -16
  133. data/src/core/lib/gpr/string_posix.cc +3 -3
  134. data/src/core/lib/gpr/sync_posix.cc +5 -9
  135. data/src/core/lib/gpr/thd.cc +3 -3
  136. data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
  137. data/src/core/lib/gpr/thd_posix.cc +6 -4
  138. data/src/core/lib/gpr/thd_windows.cc +3 -1
  139. data/src/core/lib/gpr/time.cc +6 -4
  140. data/src/core/lib/gpr/time_posix.cc +2 -2
  141. data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
  142. data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
  143. data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
  144. data/src/core/lib/gpr/tls_pthread.cc +1 -1
  145. data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
  146. data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
  147. data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
  148. data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
  149. data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
  150. data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
  151. data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
  152. data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
  153. data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
  154. data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
  155. data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
  156. data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
  157. data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
  158. data/src/core/lib/http/format_request.cc +3 -3
  159. data/src/core/lib/http/httpcli.cc +6 -7
  160. data/src/core/lib/http/httpcli_security_connector.cc +10 -10
  161. data/src/core/lib/http/parser.cc +16 -12
  162. data/src/core/lib/iomgr/call_combiner.cc +12 -13
  163. data/src/core/lib/iomgr/closure.h +4 -6
  164. data/src/core/lib/iomgr/combiner.cc +10 -21
  165. data/src/core/lib/iomgr/error.cc +50 -55
  166. data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
  167. data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
  168. data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
  169. data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
  170. data/src/core/lib/iomgr/ev_posix.cc +47 -6
  171. data/src/core/lib/iomgr/exec_ctx.cc +10 -10
  172. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  173. data/src/core/lib/iomgr/executor.cc +16 -13
  174. data/src/core/lib/iomgr/fork_posix.cc +1 -3
  175. data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
  176. data/src/core/lib/iomgr/iocp_windows.cc +1 -2
  177. data/src/core/lib/iomgr/iomgr.cc +2 -2
  178. data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
  179. data/src/core/lib/iomgr/iomgr_uv.h +1 -1
  180. data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
  181. data/src/core/lib/iomgr/load_file.cc +3 -3
  182. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  183. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
  184. data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
  185. data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
  186. data/src/core/lib/iomgr/resource_quota.cc +36 -34
  187. data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
  188. data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
  189. data/src/core/lib/iomgr/socket_mutator.cc +7 -7
  190. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
  191. data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
  192. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
  193. data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
  194. data/src/core/lib/iomgr/tcp_posix.cc +47 -55
  195. data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
  196. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
  197. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
  198. data/src/core/lib/iomgr/tcp_windows.cc +1 -1
  199. data/src/core/lib/iomgr/timer_generic.cc +16 -14
  200. data/src/core/lib/iomgr/timer_heap.cc +8 -7
  201. data/src/core/lib/iomgr/timer_manager.cc +4 -3
  202. data/src/core/lib/iomgr/udp_server.cc +24 -16
  203. data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
  204. data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
  205. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
  206. data/src/core/lib/json/json.cc +1 -1
  207. data/src/core/lib/json/json_reader.cc +8 -6
  208. data/src/core/lib/json/json_string.cc +19 -18
  209. data/src/core/lib/json/json_writer.cc +10 -8
  210. data/src/core/lib/profiling/basic_timers.cc +1 -1
  211. data/src/core/lib/profiling/timers.h +3 -20
  212. data/src/core/lib/security/context/security_context.cc +16 -14
  213. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
  214. data/src/core/lib/security/credentials/credentials.cc +9 -8
  215. data/src/core/lib/security/credentials/credentials.h +1 -1
  216. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  217. data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
  218. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
  219. data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
  220. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
  221. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
  222. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
  223. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
  224. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
  225. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
  226. data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
  227. data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
  228. data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
  229. data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
  230. data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
  231. data/src/core/lib/security/transport/security_handshaker.cc +19 -18
  232. data/src/core/lib/security/transport/security_handshaker.h +1 -1
  233. data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
  234. data/src/core/lib/slice/b64.cc +19 -16
  235. data/src/core/lib/slice/percent_encoding.cc +5 -5
  236. data/src/core/lib/slice/slice.cc +35 -33
  237. data/src/core/lib/slice/slice_buffer.cc +16 -14
  238. data/src/core/lib/slice/slice_hash_table.cc +3 -2
  239. data/src/core/lib/slice/slice_intern.cc +21 -25
  240. data/src/core/lib/slice/slice_string_helpers.cc +45 -9
  241. data/src/core/lib/slice/slice_string_helpers.h +6 -0
  242. data/src/core/lib/surface/byte_buffer.cc +2 -2
  243. data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
  244. data/src/core/lib/surface/call.cc +171 -260
  245. data/src/core/lib/surface/call_test_only.h +1 -13
  246. data/src/core/lib/surface/channel.cc +20 -43
  247. data/src/core/lib/surface/channel_init.cc +7 -7
  248. data/src/core/lib/surface/channel_ping.cc +2 -2
  249. data/src/core/lib/surface/completion_queue.cc +69 -75
  250. data/src/core/lib/surface/init.cc +4 -5
  251. data/src/core/lib/surface/init_secure.cc +1 -1
  252. data/src/core/lib/surface/lame_client.cc +1 -1
  253. data/src/core/lib/surface/server.cc +64 -59
  254. data/src/core/lib/surface/version.cc +2 -2
  255. data/src/core/lib/transport/bdp_estimator.cc +6 -5
  256. data/src/core/lib/transport/byte_stream.cc +23 -14
  257. data/src/core/lib/transport/byte_stream.h +1 -1
  258. data/src/core/lib/transport/connectivity_state.cc +9 -13
  259. data/src/core/lib/transport/error_utils.cc +10 -7
  260. data/src/core/lib/transport/metadata.cc +27 -26
  261. data/src/core/lib/transport/metadata.h +1 -1
  262. data/src/core/lib/transport/pid_controller.cc +2 -1
  263. data/src/core/lib/transport/service_config.cc +5 -5
  264. data/src/core/lib/transport/static_metadata.cc +225 -222
  265. data/src/core/lib/transport/static_metadata.h +77 -76
  266. data/src/core/lib/transport/timeout_encoding.cc +3 -2
  267. data/src/core/lib/transport/transport.cc +6 -5
  268. data/src/core/lib/transport/transport_op_string.cc +0 -1
  269. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
  270. data/src/core/tsi/alts_transport_security.cc +61 -0
  271. data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
  272. data/src/core/tsi/fake_transport_security.cc +59 -43
  273. data/src/core/tsi/ssl_transport_security.cc +122 -107
  274. data/src/core/tsi/transport_security.cc +3 -3
  275. data/src/core/tsi/transport_security_adapter.cc +16 -10
  276. data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
  277. data/src/ruby/ext/grpc/rb_channel.c +3 -4
  278. data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
  279. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
  280. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
  281. data/src/ruby/ext/grpc/rb_server.c +52 -28
  282. data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
  283. data/src/ruby/lib/grpc/version.rb +1 -1
  284. data/src/ruby/pb/test/client.rb +1 -1
  285. data/src/ruby/pb/test/server.rb +1 -1
  286. data/src/ruby/spec/client_server_spec.rb +4 -2
  287. data/src/ruby/spec/generic/active_call_spec.rb +2 -1
  288. data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
  289. data/src/ruby/spec/server_spec.rb +26 -7
  290. data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
  291. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
  292. data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
  293. data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
  294. data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
  295. data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
  296. data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
  297. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
  298. data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
  299. data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
  300. data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
  301. data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
  302. data/third_party/boringssl/crypto/base64/base64.c +65 -43
  303. data/third_party/boringssl/crypto/bio/bio.c +134 -110
  304. data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
  305. data/third_party/boringssl/crypto/bio/connect.c +17 -17
  306. data/third_party/boringssl/crypto/bio/fd.c +2 -1
  307. data/third_party/boringssl/crypto/bio/file.c +14 -14
  308. data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
  309. data/third_party/boringssl/crypto/bio/internal.h +14 -14
  310. data/third_party/boringssl/crypto/bio/pair.c +45 -45
  311. data/third_party/boringssl/crypto/bio/printf.c +6 -10
  312. data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
  313. data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
  314. data/third_party/boringssl/crypto/buf/buf.c +20 -44
  315. data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
  316. data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
  317. data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
  318. data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
  319. data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
  320. data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
  321. data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
  322. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
  323. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
  324. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
  325. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
  326. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
  327. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
  328. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
  329. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
  330. data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
  331. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
  332. data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
  333. data/third_party/boringssl/crypto/conf/conf.c +32 -20
  334. data/third_party/boringssl/crypto/conf/internal.h +3 -3
  335. data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
  336. data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
  337. data/third_party/boringssl/crypto/cpu-intel.c +68 -43
  338. data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
  339. data/third_party/boringssl/crypto/crypto.c +54 -32
  340. data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
  341. data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
  342. data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
  343. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
  344. data/third_party/boringssl/crypto/dh/check.c +33 -34
  345. data/third_party/boringssl/crypto/dh/dh.c +72 -36
  346. data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
  347. data/third_party/boringssl/crypto/dh/params.c +1 -161
  348. data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
  349. data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
  350. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
  351. data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
  352. data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
  353. data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
  354. data/third_party/boringssl/crypto/engine/engine.c +6 -6
  355. data/third_party/boringssl/crypto/err/err.c +197 -106
  356. data/third_party/boringssl/crypto/err/internal.h +58 -0
  357. data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
  358. data/third_party/boringssl/crypto/evp/evp.c +6 -11
  359. data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
  360. data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
  361. data/third_party/boringssl/crypto/evp/internal.h +66 -51
  362. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
  363. data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
  364. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
  365. data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
  366. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
  367. data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
  368. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
  369. data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
  370. data/third_party/boringssl/crypto/evp/print.c +5 -36
  371. data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
  372. data/third_party/boringssl/crypto/ex_data.c +15 -45
  373. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
  374. data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
  375. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
  376. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
  377. data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
  378. data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
  379. data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
  380. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
  381. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
  382. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
  383. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
  384. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
  385. data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
  386. data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
  387. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
  388. data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
  389. data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
  390. data/third_party/boringssl/crypto/internal.h +301 -233
  391. data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
  392. data/third_party/boringssl/crypto/mem.c +76 -33
  393. data/third_party/boringssl/crypto/obj/obj.c +44 -28
  394. data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
  395. data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
  396. data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
  397. data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
  398. data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
  399. data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
  400. data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
  401. data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
  402. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
  403. data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
  404. data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
  405. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
  406. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
  407. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
  408. data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
  409. data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
  410. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
  411. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
  412. data/third_party/boringssl/crypto/pool/internal.h +2 -2
  413. data/third_party/boringssl/crypto/pool/pool.c +15 -15
  414. data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
  415. data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
  416. data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
  417. data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
  418. data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
  419. data/third_party/boringssl/crypto/refcount_c11.c +2 -2
  420. data/third_party/boringssl/crypto/refcount_lock.c +1 -1
  421. data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
  422. data/third_party/boringssl/crypto/stack/stack.c +13 -13
  423. data/third_party/boringssl/crypto/thread_none.c +1 -1
  424. data/third_party/boringssl/crypto/thread_pthread.c +1 -1
  425. data/third_party/boringssl/crypto/thread_win.c +40 -40
  426. data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
  427. data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
  428. data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
  429. data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
  430. data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
  431. data/third_party/boringssl/crypto/x509/by_file.c +2 -2
  432. data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
  433. data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
  434. data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
  435. data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
  436. data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
  437. data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
  438. data/third_party/boringssl/crypto/x509/x_name.c +13 -16
  439. data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
  440. data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
  441. data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
  442. data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
  443. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
  444. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
  445. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
  446. data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
  447. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
  448. data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
  449. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
  450. data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
  451. data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
  452. data/third_party/boringssl/include/openssl/aead.h +280 -191
  453. data/third_party/boringssl/include/openssl/aes.h +50 -50
  454. data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
  455. data/third_party/boringssl/include/openssl/asn1.h +14 -77
  456. data/third_party/boringssl/include/openssl/asn1t.h +11 -15
  457. data/third_party/boringssl/include/openssl/base.h +78 -51
  458. data/third_party/boringssl/include/openssl/base64.h +68 -68
  459. data/third_party/boringssl/include/openssl/bio.h +472 -406
  460. data/third_party/boringssl/include/openssl/blowfish.h +1 -1
  461. data/third_party/boringssl/include/openssl/bn.h +454 -435
  462. data/third_party/boringssl/include/openssl/buf.h +27 -27
  463. data/third_party/boringssl/include/openssl/bytestring.h +282 -267
  464. data/third_party/boringssl/include/openssl/cast.h +2 -2
  465. data/third_party/boringssl/include/openssl/chacha.h +5 -5
  466. data/third_party/boringssl/include/openssl/cipher.h +209 -200
  467. data/third_party/boringssl/include/openssl/cmac.h +27 -27
  468. data/third_party/boringssl/include/openssl/conf.h +49 -46
  469. data/third_party/boringssl/include/openssl/cpu.h +60 -45
  470. data/third_party/boringssl/include/openssl/crypto.h +59 -35
  471. data/third_party/boringssl/include/openssl/curve25519.h +97 -92
  472. data/third_party/boringssl/include/openssl/des.h +25 -25
  473. data/third_party/boringssl/include/openssl/dh.h +98 -97
  474. data/third_party/boringssl/include/openssl/digest.h +143 -114
  475. data/third_party/boringssl/include/openssl/dsa.h +217 -202
  476. data/third_party/boringssl/include/openssl/ec.h +132 -131
  477. data/third_party/boringssl/include/openssl/ec_key.h +132 -128
  478. data/third_party/boringssl/include/openssl/ecdh.h +9 -9
  479. data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
  480. data/third_party/boringssl/include/openssl/engine.h +38 -38
  481. data/third_party/boringssl/include/openssl/err.h +189 -219
  482. data/third_party/boringssl/include/openssl/evp.h +473 -397
  483. data/third_party/boringssl/include/openssl/ex_data.h +46 -56
  484. data/third_party/boringssl/include/openssl/hkdf.h +17 -17
  485. data/third_party/boringssl/include/openssl/hmac.h +55 -43
  486. data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  487. data/third_party/boringssl/include/openssl/lhash.h +67 -67
  488. data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
  489. data/third_party/boringssl/include/openssl/md4.h +14 -14
  490. data/third_party/boringssl/include/openssl/md5.h +14 -14
  491. data/third_party/boringssl/include/openssl/mem.h +39 -33
  492. data/third_party/boringssl/include/openssl/nid.h +43 -0
  493. data/third_party/boringssl/include/openssl/obj.h +93 -87
  494. data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
  495. data/third_party/boringssl/include/openssl/pem.h +2 -122
  496. data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
  497. data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
  498. data/third_party/boringssl/include/openssl/poly1305.h +11 -11
  499. data/third_party/boringssl/include/openssl/pool.h +29 -25
  500. data/third_party/boringssl/include/openssl/rand.h +48 -45
  501. data/third_party/boringssl/include/openssl/rc4.h +9 -9
  502. data/third_party/boringssl/include/openssl/ripemd.h +13 -13
  503. data/third_party/boringssl/include/openssl/rsa.h +371 -340
  504. data/third_party/boringssl/include/openssl/sha.h +71 -71
  505. data/third_party/boringssl/include/openssl/span.h +191 -0
  506. data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
  507. data/third_party/boringssl/include/openssl/ssl3.h +39 -122
  508. data/third_party/boringssl/include/openssl/stack.h +355 -164
  509. data/third_party/boringssl/include/openssl/thread.h +43 -43
  510. data/third_party/boringssl/include/openssl/tls1.h +60 -63
  511. data/third_party/boringssl/include/openssl/type_check.h +10 -14
  512. data/third_party/boringssl/include/openssl/x509.h +41 -116
  513. data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
  514. data/third_party/boringssl/include/openssl/x509v3.h +27 -21
  515. data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
  516. data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
  517. data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
  518. data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
  519. data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
  520. data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
  521. data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
  522. data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
  523. data/third_party/boringssl/ssl/handshake.cc +547 -0
  524. data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
  525. data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
  526. data/third_party/boringssl/ssl/internal.h +2027 -1280
  527. data/third_party/boringssl/ssl/s3_both.cc +603 -0
  528. data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
  529. data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
  530. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
  531. data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
  532. data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
  533. data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
  534. data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
  535. data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
  536. data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
  537. data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
  538. data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
  539. data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
  540. data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
  541. data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
  542. data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
  543. data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
  544. data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
  545. data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
  546. data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
  547. data/third_party/boringssl/ssl/tls13_client.cc +842 -0
  548. data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
  549. data/third_party/boringssl/ssl/tls13_server.cc +967 -0
  550. data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
  551. data/third_party/boringssl/ssl/tls_record.cc +675 -0
  552. metadata +117 -168
  553. data/include/grpc/support/cmdline.h +0 -88
  554. data/include/grpc/support/subprocess.h +0 -44
  555. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
  556. data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
  557. data/src/core/lib/gpr/cmdline.cc +0 -330
  558. data/src/core/lib/gpr/subprocess_posix.cc +0 -99
  559. data/src/core/lib/gpr/subprocess_windows.cc +0 -126
  560. data/src/core/lib/surface/alarm.cc +0 -137
  561. data/src/core/lib/surface/alarm_internal.h +0 -40
  562. data/src/core/tsi/gts_transport_security.cc +0 -40
  563. data/third_party/boringssl/crypto/aes/aes.c +0 -1142
  564. data/third_party/boringssl/crypto/aes/internal.h +0 -87
  565. data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
  566. data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
  567. data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
  568. data/third_party/boringssl/crypto/bn/add.c +0 -377
  569. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
  570. data/third_party/boringssl/crypto/bn/bn.c +0 -365
  571. data/third_party/boringssl/crypto/bn/cmp.c +0 -239
  572. data/third_party/boringssl/crypto/bn/ctx.c +0 -313
  573. data/third_party/boringssl/crypto/bn/div.c +0 -728
  574. data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
  575. data/third_party/boringssl/crypto/bn/gcd.c +0 -635
  576. data/third_party/boringssl/crypto/bn/generic.c +0 -707
  577. data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
  578. data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
  579. data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
  580. data/third_party/boringssl/crypto/bn/mul.c +0 -871
  581. data/third_party/boringssl/crypto/bn/prime.c +0 -861
  582. data/third_party/boringssl/crypto/bn/random.c +0 -343
  583. data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
  584. data/third_party/boringssl/crypto/bn/shift.c +0 -307
  585. data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
  586. data/third_party/boringssl/crypto/cipher/aead.c +0 -156
  587. data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
  588. data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
  589. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
  590. data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
  591. data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
  592. data/third_party/boringssl/crypto/des/des.c +0 -771
  593. data/third_party/boringssl/crypto/digest/digest.c +0 -251
  594. data/third_party/boringssl/crypto/digest/digests.c +0 -358
  595. data/third_party/boringssl/crypto/ec/ec.c +0 -847
  596. data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
  597. data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
  598. data/third_party/boringssl/crypto/ec/oct.c +0 -416
  599. data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
  600. data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
  601. data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
  602. data/third_party/boringssl/crypto/ec/simple.c +0 -1118
  603. data/third_party/boringssl/crypto/ec/util-64.c +0 -109
  604. data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
  605. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
  606. data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
  607. data/third_party/boringssl/crypto/md4/md4.c +0 -236
  608. data/third_party/boringssl/crypto/md5/md5.c +0 -285
  609. data/third_party/boringssl/crypto/modes/cbc.c +0 -212
  610. data/third_party/boringssl/crypto/modes/cfb.c +0 -230
  611. data/third_party/boringssl/crypto/modes/ctr.c +0 -219
  612. data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
  613. data/third_party/boringssl/crypto/modes/ofb.c +0 -95
  614. data/third_party/boringssl/crypto/modes/polyval.c +0 -94
  615. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
  616. data/third_party/boringssl/crypto/rand/rand.c +0 -244
  617. data/third_party/boringssl/crypto/rand/urandom.c +0 -335
  618. data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
  619. data/third_party/boringssl/crypto/rsa/padding.c +0 -708
  620. data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
  621. data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
  622. data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
  623. data/third_party/boringssl/crypto/sha/sha1.c +0 -355
  624. data/third_party/boringssl/crypto/sha/sha256.c +0 -329
  625. data/third_party/boringssl/crypto/sha/sha512.c +0 -609
  626. data/third_party/boringssl/crypto/x509/x509type.c +0 -126
  627. data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
  628. data/third_party/boringssl/ssl/handshake_client.c +0 -1883
  629. data/third_party/boringssl/ssl/handshake_server.c +0 -1950
  630. data/third_party/boringssl/ssl/s3_both.c +0 -895
  631. data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
  632. data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
  633. data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
  634. data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
  635. data/third_party/boringssl/ssl/tls13_client.c +0 -712
  636. data/third_party/boringssl/ssl/tls13_server.c +0 -680
  637. data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -39,12 +39,12 @@
39
39
  #include <grpc/support/alloc.h>
40
40
  #include <grpc/support/cpu.h>
41
41
  #include <grpc/support/string_util.h>
42
- #include <grpc/support/tls.h>
43
- #include <grpc/support/useful.h>
44
42
 
45
43
  #include "src/core/lib/debug/stats.h"
46
- #include "src/core/lib/gpr++/manual_constructor.h"
47
44
  #include "src/core/lib/gpr/string.h"
45
+ #include "src/core/lib/gpr/tls.h"
46
+ #include "src/core/lib/gpr/useful.h"
47
+ #include "src/core/lib/gprpp/manual_constructor.h"
48
48
  #include "src/core/lib/iomgr/block_annotate.h"
49
49
  #include "src/core/lib/iomgr/ev_posix.h"
50
50
  #include "src/core/lib/iomgr/iomgr_internal.h"
@@ -281,7 +281,7 @@ static grpc_fd* fd_create(int fd, const char* name) {
281
281
  gpr_mu_unlock(&fd_freelist_mu);
282
282
 
283
283
  if (new_fd == nullptr) {
284
- new_fd = (grpc_fd*)gpr_malloc(sizeof(grpc_fd));
284
+ new_fd = static_cast<grpc_fd*>(gpr_malloc(sizeof(grpc_fd)));
285
285
  new_fd->read_closure.Init();
286
286
  new_fd->write_closure.Init();
287
287
  }
@@ -304,7 +304,7 @@ static grpc_fd* fd_create(int fd, const char* name) {
304
304
  gpr_free(fd_name);
305
305
 
306
306
  struct epoll_event ev;
307
- ev.events = (uint32_t)(EPOLLIN | EPOLLOUT | EPOLLET);
307
+ ev.events = static_cast<uint32_t>(EPOLLIN | EPOLLOUT | EPOLLET);
308
308
  ev.data.ptr = new_fd;
309
309
  if (epoll_ctl(g_epoll_set.epfd, EPOLL_CTL_ADD, fd, &ev) != 0) {
310
310
  gpr_log(GPR_ERROR, "epoll_ctl failed: %s", strerror(errno));
@@ -440,7 +440,7 @@ static worker_remove_result worker_remove(grpc_pollset* pollset,
440
440
  }
441
441
 
442
442
  static size_t choose_neighborhood(void) {
443
- return (size_t)gpr_cpu_current_cpu() % g_num_neighborhoods;
443
+ return static_cast<size_t>(gpr_cpu_current_cpu()) % g_num_neighborhoods;
444
444
  }
445
445
 
446
446
  static grpc_error* pollset_global_init(void) {
@@ -451,15 +451,15 @@ static grpc_error* pollset_global_init(void) {
451
451
  grpc_error* err = grpc_wakeup_fd_init(&global_wakeup_fd);
452
452
  if (err != GRPC_ERROR_NONE) return err;
453
453
  struct epoll_event ev;
454
- ev.events = (uint32_t)(EPOLLIN | EPOLLET);
454
+ ev.events = static_cast<uint32_t>(EPOLLIN | EPOLLET);
455
455
  ev.data.ptr = &global_wakeup_fd;
456
456
  if (epoll_ctl(g_epoll_set.epfd, EPOLL_CTL_ADD, global_wakeup_fd.read_fd,
457
457
  &ev) != 0) {
458
458
  return GRPC_OS_ERROR(errno, "epoll_ctl");
459
459
  }
460
460
  g_num_neighborhoods = GPR_CLAMP(gpr_cpu_num_cores(), 1, MAX_NEIGHBORHOODS);
461
- g_neighborhoods = (pollset_neighborhood*)gpr_zalloc(sizeof(*g_neighborhoods) *
462
- g_num_neighborhoods);
461
+ g_neighborhoods = static_cast<pollset_neighborhood*>(
462
+ gpr_zalloc(sizeof(*g_neighborhoods) * g_num_neighborhoods));
463
463
  for (size_t i = 0; i < g_num_neighborhoods; i++) {
464
464
  gpr_mu_init(&g_neighborhoods[i].mu);
465
465
  }
@@ -519,7 +519,7 @@ static void pollset_destroy(grpc_pollset* pollset) {
519
519
  }
520
520
 
521
521
  static grpc_error* pollset_kick_all(grpc_pollset* pollset) {
522
- GPR_TIMER_BEGIN("pollset_kick_all", 0);
522
+ GPR_TIMER_SCOPE("pollset_kick_all", 0);
523
523
  grpc_error* error = GRPC_ERROR_NONE;
524
524
  if (pollset->root_worker != nullptr) {
525
525
  grpc_pollset_worker* worker = pollset->root_worker;
@@ -549,7 +549,6 @@ static grpc_error* pollset_kick_all(grpc_pollset* pollset) {
549
549
  }
550
550
  // TODO: sreek. Check if we need to set 'kicked_without_poller' to true here
551
551
  // in the else case
552
- GPR_TIMER_END("pollset_kick_all", 0);
553
552
  return error;
554
553
  }
555
554
 
@@ -563,14 +562,13 @@ static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
563
562
  }
564
563
 
565
564
  static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
566
- GPR_TIMER_BEGIN("pollset_shutdown", 0);
565
+ GPR_TIMER_SCOPE("pollset_shutdown", 0);
567
566
  GPR_ASSERT(pollset->shutdown_closure == nullptr);
568
567
  GPR_ASSERT(!pollset->shutting_down);
569
568
  pollset->shutdown_closure = closure;
570
569
  pollset->shutting_down = true;
571
570
  GRPC_LOG_IF_ERROR("pollset_shutdown", pollset_kick_all(pollset));
572
571
  pollset_maybe_finish_shutdown(pollset);
573
- GPR_TIMER_END("pollset_shutdown", 0);
574
572
  }
575
573
 
576
574
  static int poll_deadline_to_millis_timeout(grpc_millis millis) {
@@ -581,7 +579,7 @@ static int poll_deadline_to_millis_timeout(grpc_millis millis) {
581
579
  } else if (delta < 0) {
582
580
  return 0;
583
581
  } else {
584
- return (int)delta;
582
+ return static_cast<int>(delta);
585
583
  }
586
584
  }
587
585
 
@@ -594,10 +592,10 @@ static int poll_deadline_to_millis_timeout(grpc_millis millis) {
594
592
  called by g_active_poller thread. So there is no need for synchronization
595
593
  when accessing fields in g_epoll_set */
596
594
  static grpc_error* process_epoll_events(grpc_pollset* pollset) {
595
+ GPR_TIMER_SCOPE("process_epoll_events", 0);
596
+
597
597
  static const char* err_desc = "process_events";
598
598
  grpc_error* error = GRPC_ERROR_NONE;
599
-
600
- GPR_TIMER_BEGIN("process_epoll_events", 0);
601
599
  long num_events = gpr_atm_acq_load(&g_epoll_set.num_events);
602
600
  long cursor = gpr_atm_acq_load(&g_epoll_set.cursor);
603
601
  for (int idx = 0;
@@ -611,7 +609,7 @@ static grpc_error* process_epoll_events(grpc_pollset* pollset) {
611
609
  append_error(&error, grpc_wakeup_fd_consume_wakeup(&global_wakeup_fd),
612
610
  err_desc);
613
611
  } else {
614
- grpc_fd* fd = (grpc_fd*)(data_ptr);
612
+ grpc_fd* fd = static_cast<grpc_fd*>(data_ptr);
615
613
  bool cancel = (ev->events & (EPOLLERR | EPOLLHUP)) != 0;
616
614
  bool read_ev = (ev->events & (EPOLLIN | EPOLLPRI)) != 0;
617
615
  bool write_ev = (ev->events & EPOLLOUT) != 0;
@@ -626,7 +624,6 @@ static grpc_error* process_epoll_events(grpc_pollset* pollset) {
626
624
  }
627
625
  }
628
626
  gpr_atm_rel_store(&g_epoll_set.cursor, cursor);
629
- GPR_TIMER_END("process_epoll_events", 0);
630
627
  return error;
631
628
  }
632
629
 
@@ -638,7 +635,7 @@ static grpc_error* process_epoll_events(grpc_pollset* pollset) {
638
635
  (i.e the designated poller thread) will be calling this function. So there is
639
636
  no need for any synchronization when accesing fields in g_epoll_set */
640
637
  static grpc_error* do_epoll_wait(grpc_pollset* ps, grpc_millis deadline) {
641
- GPR_TIMER_BEGIN("do_epoll_wait", 0);
638
+ GPR_TIMER_SCOPE("do_epoll_wait", 0);
642
639
 
643
640
  int r;
644
641
  int timeout = poll_deadline_to_millis_timeout(deadline);
@@ -665,14 +662,13 @@ static grpc_error* do_epoll_wait(grpc_pollset* ps, grpc_millis deadline) {
665
662
  gpr_atm_rel_store(&g_epoll_set.num_events, r);
666
663
  gpr_atm_rel_store(&g_epoll_set.cursor, 0);
667
664
 
668
- GPR_TIMER_END("do_epoll_wait", 0);
669
665
  return GRPC_ERROR_NONE;
670
666
  }
671
667
 
672
668
  static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
673
669
  grpc_pollset_worker** worker_hdl,
674
670
  grpc_millis deadline) {
675
- GPR_TIMER_BEGIN("begin_worker", 0);
671
+ GPR_TIMER_SCOPE("begin_worker", 0);
676
672
  if (worker_hdl != nullptr) *worker_hdl = worker;
677
673
  worker->initialized_cv = false;
678
674
  SET_KICK_STATE(worker, UNKICKED);
@@ -680,7 +676,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
680
676
  pollset->begin_refs++;
681
677
 
682
678
  if (grpc_polling_trace.enabled()) {
683
- gpr_log(GPR_ERROR, "PS:%p BEGIN_STARTS:%p", pollset, worker);
679
+ gpr_log(GPR_DEBUG, "PS:%p BEGIN_STARTS:%p", pollset, worker);
684
680
  }
685
681
 
686
682
  if (pollset->seen_inactive) {
@@ -699,7 +695,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
699
695
  gpr_mu_lock(&neighborhood->mu);
700
696
  gpr_mu_lock(&pollset->mu);
701
697
  if (grpc_polling_trace.enabled()) {
702
- gpr_log(GPR_ERROR, "PS:%p BEGIN_REORG:%p kick_state=%s is_reassigning=%d",
698
+ gpr_log(GPR_DEBUG, "PS:%p BEGIN_REORG:%p kick_state=%s is_reassigning=%d",
703
699
  pollset, worker, kick_state_string(worker->state),
704
700
  is_reassigning);
705
701
  }
@@ -751,7 +747,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
751
747
  gpr_cv_init(&worker->cv);
752
748
  while (worker->state == UNKICKED && !pollset->shutting_down) {
753
749
  if (grpc_polling_trace.enabled()) {
754
- gpr_log(GPR_ERROR, "PS:%p BEGIN_WAIT:%p kick_state=%s shutdown=%d",
750
+ gpr_log(GPR_DEBUG, "PS:%p BEGIN_WAIT:%p kick_state=%s shutdown=%d",
755
751
  pollset, worker, kick_state_string(worker->state),
756
752
  pollset->shutting_down);
757
753
  }
@@ -768,7 +764,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
768
764
  }
769
765
 
770
766
  if (grpc_polling_trace.enabled()) {
771
- gpr_log(GPR_ERROR,
767
+ gpr_log(GPR_DEBUG,
772
768
  "PS:%p BEGIN_DONE:%p kick_state=%s shutdown=%d "
773
769
  "kicked_without_poller: %d",
774
770
  pollset, worker, kick_state_string(worker->state),
@@ -786,17 +782,15 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
786
782
 
787
783
  if (pollset->kicked_without_poller) {
788
784
  pollset->kicked_without_poller = false;
789
- GPR_TIMER_END("begin_worker", 0);
790
785
  return false;
791
786
  }
792
787
 
793
- GPR_TIMER_END("begin_worker", 0);
794
788
  return worker->state == DESIGNATED_POLLER && !pollset->shutting_down;
795
789
  }
796
790
 
797
791
  static bool check_neighborhood_for_available_poller(
798
792
  pollset_neighborhood* neighborhood) {
799
- GPR_TIMER_BEGIN("check_neighborhood_for_available_poller", 0);
793
+ GPR_TIMER_SCOPE("check_neighborhood_for_available_poller", 0);
800
794
  bool found_worker = false;
801
795
  do {
802
796
  grpc_pollset* inspect = neighborhood->active_root;
@@ -855,13 +849,12 @@ static bool check_neighborhood_for_available_poller(
855
849
  }
856
850
  gpr_mu_unlock(&inspect->mu);
857
851
  } while (!found_worker);
858
- GPR_TIMER_END("check_neighborhood_for_available_poller", 0);
859
852
  return found_worker;
860
853
  }
861
854
 
862
855
  static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
863
856
  grpc_pollset_worker** worker_hdl) {
864
- GPR_TIMER_BEGIN("end_worker", 0);
857
+ GPR_TIMER_SCOPE("end_worker", 0);
865
858
  if (grpc_polling_trace.enabled()) {
866
859
  gpr_log(GPR_DEBUG, "PS:%p END_WORKER:%p", pollset, worker);
867
860
  }
@@ -888,7 +881,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
888
881
  } else {
889
882
  gpr_atm_no_barrier_store(&g_active_poller, 0);
890
883
  size_t poller_neighborhood_idx =
891
- (size_t)(pollset->neighborhood - g_neighborhoods);
884
+ static_cast<size_t>(pollset->neighborhood - g_neighborhoods);
892
885
  gpr_mu_unlock(&pollset->mu);
893
886
  bool found_worker = false;
894
887
  bool scan_state[MAX_NEIGHBORHOODS];
@@ -931,7 +924,6 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
931
924
  pollset_maybe_finish_shutdown(pollset);
932
925
  }
933
926
  GPR_ASSERT(gpr_atm_no_barrier_load(&g_active_poller) != (gpr_atm)worker);
934
- GPR_TIMER_END("end_worker", 0);
935
927
  }
936
928
 
937
929
  /* pollset->po.mu lock must be held by the caller before calling this.
@@ -941,13 +933,12 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
941
933
  static grpc_error* pollset_work(grpc_pollset* ps,
942
934
  grpc_pollset_worker** worker_hdl,
943
935
  grpc_millis deadline) {
936
+ GPR_TIMER_SCOPE("pollset_work", 0);
944
937
  grpc_pollset_worker worker;
945
938
  grpc_error* error = GRPC_ERROR_NONE;
946
939
  static const char* err_desc = "pollset_work";
947
- GPR_TIMER_BEGIN("pollset_work", 0);
948
940
  if (ps->kicked_without_poller) {
949
941
  ps->kicked_without_poller = false;
950
- GPR_TIMER_END("pollset_work", 0);
951
942
  return GRPC_ERROR_NONE;
952
943
  }
953
944
 
@@ -987,13 +978,12 @@ static grpc_error* pollset_work(grpc_pollset* ps,
987
978
  end_worker(ps, &worker, worker_hdl);
988
979
 
989
980
  gpr_tls_set(&g_current_thread_pollset, 0);
990
- GPR_TIMER_END("pollset_work", 0);
991
981
  return error;
992
982
  }
993
983
 
994
984
  static grpc_error* pollset_kick(grpc_pollset* pollset,
995
985
  grpc_pollset_worker* specific_worker) {
996
- GPR_TIMER_BEGIN("pollset_kick", 0);
986
+ GPR_TIMER_SCOPE("pollset_kick", 0);
997
987
  GRPC_STATS_INC_POLLSET_KICK();
998
988
  grpc_error* ret_err = GRPC_ERROR_NONE;
999
989
  if (grpc_polling_trace.enabled()) {
@@ -1019,7 +1009,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1019
1009
  }
1020
1010
  tmp = gpr_strvec_flatten(&log, nullptr);
1021
1011
  gpr_strvec_destroy(&log);
1022
- gpr_log(GPR_ERROR, "%s", tmp);
1012
+ gpr_log(GPR_DEBUG, "%s", tmp);
1023
1013
  gpr_free(tmp);
1024
1014
  }
1025
1015
 
@@ -1030,7 +1020,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1030
1020
  GRPC_STATS_INC_POLLSET_KICKED_WITHOUT_POLLER();
1031
1021
  pollset->kicked_without_poller = true;
1032
1022
  if (grpc_polling_trace.enabled()) {
1033
- gpr_log(GPR_ERROR, " .. kicked_without_poller");
1023
+ gpr_log(GPR_DEBUG, " .. kicked_without_poller");
1034
1024
  }
1035
1025
  goto done;
1036
1026
  }
@@ -1038,14 +1028,14 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1038
1028
  if (root_worker->state == KICKED) {
1039
1029
  GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
1040
1030
  if (grpc_polling_trace.enabled()) {
1041
- gpr_log(GPR_ERROR, " .. already kicked %p", root_worker);
1031
+ gpr_log(GPR_DEBUG, " .. already kicked %p", root_worker);
1042
1032
  }
1043
1033
  SET_KICK_STATE(root_worker, KICKED);
1044
1034
  goto done;
1045
1035
  } else if (next_worker->state == KICKED) {
1046
1036
  GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
1047
1037
  if (grpc_polling_trace.enabled()) {
1048
- gpr_log(GPR_ERROR, " .. already kicked %p", next_worker);
1038
+ gpr_log(GPR_DEBUG, " .. already kicked %p", next_worker);
1049
1039
  }
1050
1040
  SET_KICK_STATE(next_worker, KICKED);
1051
1041
  goto done;
@@ -1056,7 +1046,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1056
1046
  &g_active_poller)) {
1057
1047
  GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
1058
1048
  if (grpc_polling_trace.enabled()) {
1059
- gpr_log(GPR_ERROR, " .. kicked %p", root_worker);
1049
+ gpr_log(GPR_DEBUG, " .. kicked %p", root_worker);
1060
1050
  }
1061
1051
  SET_KICK_STATE(root_worker, KICKED);
1062
1052
  ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
@@ -1064,7 +1054,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1064
1054
  } else if (next_worker->state == UNKICKED) {
1065
1055
  GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
1066
1056
  if (grpc_polling_trace.enabled()) {
1067
- gpr_log(GPR_ERROR, " .. kicked %p", next_worker);
1057
+ gpr_log(GPR_DEBUG, " .. kicked %p", next_worker);
1068
1058
  }
1069
1059
  GPR_ASSERT(next_worker->initialized_cv);
1070
1060
  SET_KICK_STATE(next_worker, KICKED);
@@ -1074,7 +1064,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1074
1064
  if (root_worker->state != DESIGNATED_POLLER) {
1075
1065
  if (grpc_polling_trace.enabled()) {
1076
1066
  gpr_log(
1077
- GPR_ERROR,
1067
+ GPR_DEBUG,
1078
1068
  " .. kicked root non-poller %p (initialized_cv=%d) (poller=%p)",
1079
1069
  root_worker, root_worker->initialized_cv, next_worker);
1080
1070
  }
@@ -1087,7 +1077,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1087
1077
  } else {
1088
1078
  GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
1089
1079
  if (grpc_polling_trace.enabled()) {
1090
- gpr_log(GPR_ERROR, " .. non-root poller %p (root=%p)", next_worker,
1080
+ gpr_log(GPR_DEBUG, " .. non-root poller %p (root=%p)", next_worker,
1091
1081
  root_worker);
1092
1082
  }
1093
1083
  SET_KICK_STATE(next_worker, KICKED);
@@ -1103,7 +1093,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1103
1093
  } else {
1104
1094
  GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
1105
1095
  if (grpc_polling_trace.enabled()) {
1106
- gpr_log(GPR_ERROR, " .. kicked while waking up");
1096
+ gpr_log(GPR_DEBUG, " .. kicked while waking up");
1107
1097
  }
1108
1098
  goto done;
1109
1099
  }
@@ -1113,14 +1103,14 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1113
1103
 
1114
1104
  if (specific_worker->state == KICKED) {
1115
1105
  if (grpc_polling_trace.enabled()) {
1116
- gpr_log(GPR_ERROR, " .. specific worker already kicked");
1106
+ gpr_log(GPR_DEBUG, " .. specific worker already kicked");
1117
1107
  }
1118
1108
  goto done;
1119
1109
  } else if (gpr_tls_get(&g_current_thread_worker) ==
1120
1110
  (intptr_t)specific_worker) {
1121
1111
  GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
1122
1112
  if (grpc_polling_trace.enabled()) {
1123
- gpr_log(GPR_ERROR, " .. mark %p kicked", specific_worker);
1113
+ gpr_log(GPR_DEBUG, " .. mark %p kicked", specific_worker);
1124
1114
  }
1125
1115
  SET_KICK_STATE(specific_worker, KICKED);
1126
1116
  goto done;
@@ -1128,7 +1118,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1128
1118
  (grpc_pollset_worker*)gpr_atm_no_barrier_load(&g_active_poller)) {
1129
1119
  GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
1130
1120
  if (grpc_polling_trace.enabled()) {
1131
- gpr_log(GPR_ERROR, " .. kick active poller");
1121
+ gpr_log(GPR_DEBUG, " .. kick active poller");
1132
1122
  }
1133
1123
  SET_KICK_STATE(specific_worker, KICKED);
1134
1124
  ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
@@ -1136,7 +1126,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1136
1126
  } else if (specific_worker->initialized_cv) {
1137
1127
  GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
1138
1128
  if (grpc_polling_trace.enabled()) {
1139
- gpr_log(GPR_ERROR, " .. kick waiting worker");
1129
+ gpr_log(GPR_DEBUG, " .. kick waiting worker");
1140
1130
  }
1141
1131
  SET_KICK_STATE(specific_worker, KICKED);
1142
1132
  gpr_cv_signal(&specific_worker->cv);
@@ -1144,13 +1134,12 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
1144
1134
  } else {
1145
1135
  GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
1146
1136
  if (grpc_polling_trace.enabled()) {
1147
- gpr_log(GPR_ERROR, " .. kick non-waiting worker");
1137
+ gpr_log(GPR_DEBUG, " .. kick non-waiting worker");
1148
1138
  }
1149
1139
  SET_KICK_STATE(specific_worker, KICKED);
1150
1140
  goto done;
1151
1141
  }
1152
1142
  done:
1153
- GPR_TIMER_END("pollset_kick", 0);
1154
1143
  return ret_err;
1155
1144
  }
1156
1145
 
@@ -1161,7 +1150,7 @@ static void pollset_add_fd(grpc_pollset* pollset, grpc_fd* fd) {}
1161
1150
  */
1162
1151
 
1163
1152
  static grpc_pollset_set* pollset_set_create(void) {
1164
- return (grpc_pollset_set*)((intptr_t)0xdeafbeef);
1153
+ return (grpc_pollset_set*)(static_cast<intptr_t>(0xdeafbeef));
1165
1154
  }
1166
1155
 
1167
1156
  static void pollset_set_destroy(grpc_pollset_set* pss) {}
@@ -37,12 +37,12 @@
37
37
 
38
38
  #include <grpc/support/alloc.h>
39
39
  #include <grpc/support/string_util.h>
40
- #include <grpc/support/tls.h>
41
- #include <grpc/support/useful.h>
42
40
 
43
41
  #include "src/core/lib/debug/stats.h"
44
- #include "src/core/lib/gpr++/manual_constructor.h"
45
42
  #include "src/core/lib/gpr/spinlock.h"
43
+ #include "src/core/lib/gpr/tls.h"
44
+ #include "src/core/lib/gpr/useful.h"
45
+ #include "src/core/lib/gprpp/manual_constructor.h"
46
46
  #include "src/core/lib/iomgr/block_annotate.h"
47
47
  #include "src/core/lib/iomgr/iomgr_internal.h"
48
48
  #include "src/core/lib/iomgr/is_epollexclusive_available.h"
@@ -57,7 +57,7 @@
57
57
  //#define GRPC_EPOLLEX_CREATE_WORKERS_ON_HEAP 1
58
58
 
59
59
  #define MAX_EPOLL_EVENTS 100
60
- #define MAX_EPOLL_EVENTS_HANDLED_EACH_POLL_CALL 5
60
+ #define MAX_EPOLL_EVENTS_HANDLED_EACH_POLL_CALL 16
61
61
 
62
62
  grpc_core::DebugOnlyTraceFlag grpc_trace_pollable_refcount(false,
63
63
  "pollable_refcount");
@@ -196,9 +196,11 @@ struct grpc_pollset_worker {
196
196
 
197
197
  struct grpc_pollset {
198
198
  gpr_mu mu;
199
+ gpr_atm worker_count;
199
200
  pollable* active_pollable;
200
201
  bool kicked_without_poller;
201
202
  grpc_closure* shutdown_closure;
203
+ bool already_shutdown;
202
204
  grpc_pollset_worker* root_worker;
203
205
  int containing_pollset_set_count;
204
206
  };
@@ -275,7 +277,7 @@ static void ref_by(grpc_fd* fd, int n) {
275
277
  }
276
278
 
277
279
  static void fd_destroy(void* arg, grpc_error* error) {
278
- grpc_fd* fd = (grpc_fd*)arg;
280
+ grpc_fd* fd = static_cast<grpc_fd*>(arg);
279
281
  /* Add the fd to the freelist */
280
282
  grpc_iomgr_unregister_object(&fd->iomgr_object);
281
283
  POLLABLE_UNREF(fd->pollable_obj, "fd_pollable");
@@ -337,7 +339,7 @@ static grpc_fd* fd_create(int fd, const char* name) {
337
339
  gpr_mu_unlock(&fd_freelist_mu);
338
340
 
339
341
  if (new_fd == nullptr) {
340
- new_fd = (grpc_fd*)gpr_malloc(sizeof(grpc_fd));
342
+ new_fd = static_cast<grpc_fd*>(gpr_malloc(sizeof(grpc_fd)));
341
343
  new_fd->read_closure.Init();
342
344
  new_fd->write_closure.Init();
343
345
  }
@@ -440,7 +442,7 @@ static grpc_error* pollable_create(pollable_type type, pollable** p) {
440
442
  if (epfd == -1) {
441
443
  return GRPC_OS_ERROR(errno, "epoll_create1");
442
444
  }
443
- *p = (pollable*)gpr_malloc(sizeof(**p));
445
+ *p = static_cast<pollable*>(gpr_malloc(sizeof(**p)));
444
446
  grpc_error* err = grpc_wakeup_fd_init(&(*p)->wakeup);
445
447
  if (err != GRPC_ERROR_NONE) {
446
448
  close(epfd);
@@ -449,7 +451,7 @@ static grpc_error* pollable_create(pollable_type type, pollable** p) {
449
451
  return err;
450
452
  }
451
453
  struct epoll_event ev;
452
- ev.events = (uint32_t)(EPOLLIN | EPOLLET);
454
+ ev.events = static_cast<uint32_t>(EPOLLIN | EPOLLET);
453
455
  ev.data.ptr = (void*)(1 | (intptr_t) & (*p)->wakeup);
454
456
  if (epoll_ctl(epfd, EPOLL_CTL_ADD, (*p)->wakeup.read_fd, &ev) != 0) {
455
457
  err = GRPC_OS_ERROR(errno, "epoll_ctl");
@@ -478,7 +480,7 @@ static pollable* pollable_ref(pollable* p) {
478
480
  #else
479
481
  static pollable* pollable_ref(pollable* p, int line, const char* reason) {
480
482
  if (grpc_trace_pollable_refcount.enabled()) {
481
- int r = (int)gpr_atm_no_barrier_load(&p->refs.count);
483
+ int r = static_cast<int> gpr_atm_no_barrier_load(&p->refs.count);
482
484
  gpr_log(__FILE__, line, GPR_LOG_SEVERITY_DEBUG,
483
485
  "POLLABLE:%p ref %d->%d %s", p, r, r + 1, reason);
484
486
  }
@@ -493,7 +495,7 @@ static void pollable_unref(pollable* p) {
493
495
  static void pollable_unref(pollable* p, int line, const char* reason) {
494
496
  if (p == nullptr) return;
495
497
  if (grpc_trace_pollable_refcount.enabled()) {
496
- int r = (int)gpr_atm_no_barrier_load(&p->refs.count);
498
+ int r = static_cast<int> gpr_atm_no_barrier_load(&p->refs.count);
497
499
  gpr_log(__FILE__, line, GPR_LOG_SEVERITY_DEBUG,
498
500
  "POLLABLE:%p unref %d->%d %s", p, r, r - 1, reason);
499
501
  }
@@ -515,7 +517,8 @@ static grpc_error* pollable_add_fd(pollable* p, grpc_fd* fd) {
515
517
  }
516
518
 
517
519
  struct epoll_event ev_fd;
518
- ev_fd.events = (uint32_t)(EPOLLET | EPOLLIN | EPOLLOUT | EPOLLEXCLUSIVE);
520
+ ev_fd.events =
521
+ static_cast<uint32_t>(EPOLLET | EPOLLIN | EPOLLOUT | EPOLLEXCLUSIVE);
519
522
  ev_fd.data.ptr = fd;
520
523
  if (epoll_ctl(epfd, EPOLL_CTL_ADD, fd->fd, &ev_fd) != 0) {
521
524
  switch (errno) {
@@ -560,8 +563,10 @@ static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
560
563
  }
561
564
  if (pollset->shutdown_closure != nullptr && pollset->root_worker == nullptr &&
562
565
  pollset->containing_pollset_set_count == 0) {
566
+ GPR_TIMER_MARK("pollset_finish_shutdown", 0);
563
567
  GRPC_CLOSURE_SCHED(pollset->shutdown_closure, GRPC_ERROR_NONE);
564
568
  pollset->shutdown_closure = nullptr;
569
+ pollset->already_shutdown = true;
565
570
  }
566
571
  }
567
572
 
@@ -569,6 +574,7 @@ static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
569
574
  * pollset->active_pollable->mu & specific_worker->pollable_obj->mu must not be
570
575
  * held */
571
576
  static grpc_error* kick_one_worker(grpc_pollset_worker* specific_worker) {
577
+ GPR_TIMER_SCOPE("kick_one_worker", 0);
572
578
  pollable* p = specific_worker->pollable_obj;
573
579
  grpc_core::mu_guard lock(&p->mu);
574
580
  GPR_ASSERT(specific_worker != nullptr);
@@ -612,6 +618,7 @@ static grpc_error* kick_one_worker(grpc_pollset_worker* specific_worker) {
612
618
 
613
619
  static grpc_error* pollset_kick(grpc_pollset* pollset,
614
620
  grpc_pollset_worker* specific_worker) {
621
+ GPR_TIMER_SCOPE("pollset_kick", 0);
615
622
  GRPC_STATS_INC_POLLSET_KICK();
616
623
  if (grpc_polling_trace.enabled()) {
617
624
  gpr_log(GPR_DEBUG,
@@ -661,6 +668,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset,
661
668
  }
662
669
 
663
670
  static grpc_error* pollset_kick_all(grpc_pollset* pollset) {
671
+ GPR_TIMER_SCOPE("pollset_kick_all", 0);
664
672
  grpc_error* error = GRPC_ERROR_NONE;
665
673
  const char* err_desc = "pollset_kick_all";
666
674
  grpc_pollset_worker* w = pollset->root_worker;
@@ -676,7 +684,13 @@ static grpc_error* pollset_kick_all(grpc_pollset* pollset) {
676
684
 
677
685
  static void pollset_init(grpc_pollset* pollset, gpr_mu** mu) {
678
686
  gpr_mu_init(&pollset->mu);
687
+ gpr_atm_no_barrier_store(&pollset->worker_count, 0);
679
688
  pollset->active_pollable = POLLABLE_REF(g_empty_pollable, "pollset");
689
+ pollset->kicked_without_poller = false;
690
+ pollset->shutdown_closure = nullptr;
691
+ pollset->already_shutdown = false;
692
+ pollset->root_worker = nullptr;
693
+ pollset->containing_pollset_set_count = 0;
680
694
  *mu = &pollset->mu;
681
695
  }
682
696
 
@@ -688,7 +702,7 @@ static int poll_deadline_to_millis_timeout(grpc_millis millis) {
688
702
  else if (delta < 0)
689
703
  return 0;
690
704
  else
691
- return (int)delta;
705
+ return static_cast<int>(delta);
692
706
  }
693
707
 
694
708
  static void fd_become_readable(grpc_fd* fd, grpc_pollset* notifier) {
@@ -733,6 +747,7 @@ static grpc_error* fd_get_or_become_pollable(grpc_fd* fd, pollable** p) {
733
747
 
734
748
  /* pollset->po.mu lock must be held by the caller before calling this */
735
749
  static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
750
+ GPR_TIMER_SCOPE("pollset_shutdown", 0);
736
751
  GPR_ASSERT(pollset->shutdown_closure == nullptr);
737
752
  pollset->shutdown_closure = closure;
738
753
  GRPC_LOG_IF_ERROR("pollset_shutdown", pollset_kick_all(pollset));
@@ -741,9 +756,22 @@ static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
741
756
 
742
757
  static grpc_error* pollable_process_events(grpc_pollset* pollset,
743
758
  pollable* pollable_obj, bool drain) {
759
+ GPR_TIMER_SCOPE("pollable_process_events", 0);
744
760
  static const char* err_desc = "pollset_process_events";
761
+ // Use a simple heuristic to determine how many fd events to process
762
+ // per loop iteration. (events/workers)
763
+ int handle_count = 1;
764
+ int worker_count = gpr_atm_no_barrier_load(&pollset->worker_count);
765
+ GPR_ASSERT(worker_count > 0);
766
+ handle_count =
767
+ (pollable_obj->event_count - pollable_obj->event_cursor) / worker_count;
768
+ if (handle_count == 0) {
769
+ handle_count = 1;
770
+ } else if (handle_count > MAX_EPOLL_EVENTS_HANDLED_EACH_POLL_CALL) {
771
+ handle_count = MAX_EPOLL_EVENTS_HANDLED_EACH_POLL_CALL;
772
+ }
745
773
  grpc_error* error = GRPC_ERROR_NONE;
746
- for (int i = 0; (drain || i < MAX_EPOLL_EVENTS_HANDLED_EACH_POLL_CALL) &&
774
+ for (int i = 0; (drain || i < handle_count) &&
747
775
  pollable_obj->event_cursor != pollable_obj->event_count;
748
776
  i++) {
749
777
  int n = pollable_obj->event_cursor++;
@@ -755,10 +783,11 @@ static grpc_error* pollable_process_events(grpc_pollset* pollset,
755
783
  }
756
784
  append_error(&error,
757
785
  grpc_wakeup_fd_consume_wakeup(
758
- (grpc_wakeup_fd*)((~(intptr_t)1) & (intptr_t)data_ptr)),
786
+ (grpc_wakeup_fd*)((~static_cast<intptr_t>(1)) &
787
+ (intptr_t)data_ptr)),
759
788
  err_desc);
760
789
  } else {
761
- grpc_fd* fd = (grpc_fd*)data_ptr;
790
+ grpc_fd* fd = static_cast<grpc_fd*>(data_ptr);
762
791
  bool cancel = (ev->events & (EPOLLERR | EPOLLHUP)) != 0;
763
792
  bool read_ev = (ev->events & (EPOLLIN | EPOLLPRI)) != 0;
764
793
  bool write_ev = (ev->events & EPOLLOUT) != 0;
@@ -784,9 +813,11 @@ static grpc_error* pollable_process_events(grpc_pollset* pollset,
784
813
  static void pollset_destroy(grpc_pollset* pollset) {
785
814
  POLLABLE_UNREF(pollset->active_pollable, "pollset");
786
815
  pollset->active_pollable = nullptr;
816
+ gpr_mu_destroy(&pollset->mu);
787
817
  }
788
818
 
789
819
  static grpc_error* pollable_epoll(pollable* p, grpc_millis deadline) {
820
+ GPR_TIMER_SCOPE("pollable_epoll", 0);
790
821
  int timeout = poll_deadline_to_millis_timeout(deadline);
791
822
 
792
823
  if (grpc_polling_trace.enabled()) {
@@ -862,7 +893,10 @@ static worker_remove_result worker_remove(grpc_pollset_worker** root_worker,
862
893
  static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
863
894
  grpc_pollset_worker** worker_hdl,
864
895
  grpc_millis deadline) {
865
- bool do_poll = (pollset->shutdown_closure == nullptr);
896
+ GPR_TIMER_SCOPE("begin_worker", 0);
897
+ bool do_poll =
898
+ (pollset->shutdown_closure == nullptr && !pollset->already_shutdown);
899
+ gpr_atm_no_barrier_fetch_add(&pollset->worker_count, 1);
866
900
  if (worker_hdl != nullptr) *worker_hdl = worker;
867
901
  worker->initialized_cv = false;
868
902
  worker->kicked = false;
@@ -913,6 +947,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
913
947
 
914
948
  static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
915
949
  grpc_pollset_worker** worker_hdl) {
950
+ GPR_TIMER_SCOPE("end_worker", 0);
916
951
  gpr_mu_lock(&pollset->mu);
917
952
  gpr_mu_lock(&worker->pollable_obj->mu);
918
953
  switch (worker_remove(&worker->pollable_obj->root_worker, worker,
@@ -942,6 +977,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
942
977
  if (worker->initialized_cv) {
943
978
  gpr_cv_destroy(&worker->cv);
944
979
  }
980
+ gpr_atm_no_barrier_fetch_add(&pollset->worker_count, -1);
945
981
  }
946
982
 
947
983
  #ifndef NDEBUG
@@ -955,6 +991,7 @@ static long gettid(void) { return syscall(__NR_gettid); }
955
991
  static grpc_error* pollset_work(grpc_pollset* pollset,
956
992
  grpc_pollset_worker** worker_hdl,
957
993
  grpc_millis deadline) {
994
+ GPR_TIMER_SCOPE("pollset_work", 0);
958
995
  #ifdef GRPC_EPOLLEX_CREATE_WORKERS_ON_HEAP
959
996
  grpc_pollset_worker* worker =
960
997
  (grpc_pollset_worker*)gpr_malloc(sizeof(*worker));
@@ -1092,6 +1129,16 @@ static grpc_error* pollset_as_multipollable_locked(grpc_pollset* pollset,
1092
1129
  case PO_EMPTY:
1093
1130
  POLLABLE_UNREF(pollset->active_pollable, "pollset");
1094
1131
  error = pollable_create(PO_MULTI, &pollset->active_pollable);
1132
+ /* Any workers currently polling on this pollset must now be woked up so
1133
+ * that they can pick up the new active_pollable */
1134
+ if (grpc_polling_trace.enabled()) {
1135
+ gpr_log(GPR_DEBUG,
1136
+ "PS:%p active pollable transition from empty to multi",
1137
+ pollset);
1138
+ }
1139
+ static const char* err_desc =
1140
+ "pollset_as_multipollable_locked: empty -> multi";
1141
+ append_error(&error, pollset_kick_all(pollset), err_desc);
1095
1142
  break;
1096
1143
  case PO_FD:
1097
1144
  gpr_mu_lock(&po_at_start->owner_fd->orphan_mu);
@@ -1120,6 +1167,7 @@ static grpc_error* pollset_as_multipollable_locked(grpc_pollset* pollset,
1120
1167
  }
1121
1168
 
1122
1169
  static void pollset_add_fd(grpc_pollset* pollset, grpc_fd* fd) {
1170
+ GPR_TIMER_SCOPE("pollset_add_fd", 0);
1123
1171
  gpr_mu_lock(&pollset->mu);
1124
1172
  grpc_error* error = pollset_add_fd_locked(pollset, fd);
1125
1173
  gpr_mu_unlock(&pollset->mu);
@@ -1141,7 +1189,8 @@ static grpc_pollset_set* pss_lock_adam(grpc_pollset_set* pss) {
1141
1189
  }
1142
1190
 
1143
1191
  static grpc_pollset_set* pollset_set_create(void) {
1144
- grpc_pollset_set* pss = (grpc_pollset_set*)gpr_zalloc(sizeof(*pss));
1192
+ grpc_pollset_set* pss =
1193
+ static_cast<grpc_pollset_set*>(gpr_zalloc(sizeof(*pss)));
1145
1194
  gpr_mu_init(&pss->mu);
1146
1195
  gpr_ref_init(&pss->refs, 1);
1147
1196
  return pss;
@@ -1168,6 +1217,7 @@ static void pollset_set_unref(grpc_pollset_set* pss) {
1168
1217
  }
1169
1218
 
1170
1219
  static void pollset_set_add_fd(grpc_pollset_set* pss, grpc_fd* fd) {
1220
+ GPR_TIMER_SCOPE("pollset_set_add_fd", 0);
1171
1221
  if (grpc_polling_trace.enabled()) {
1172
1222
  gpr_log(GPR_DEBUG, "PSS:%p: add fd %p (%d)", pss, fd, fd->fd);
1173
1223
  }
@@ -1180,8 +1230,8 @@ static void pollset_set_add_fd(grpc_pollset_set* pss, grpc_fd* fd) {
1180
1230
  }
1181
1231
  if (pss->fd_count == pss->fd_capacity) {
1182
1232
  pss->fd_capacity = GPR_MAX(pss->fd_capacity * 2, 8);
1183
- pss->fds =
1184
- (grpc_fd**)gpr_realloc(pss->fds, pss->fd_capacity * sizeof(*pss->fds));
1233
+ pss->fds = static_cast<grpc_fd**>(
1234
+ gpr_realloc(pss->fds, pss->fd_capacity * sizeof(*pss->fds)));
1185
1235
  }
1186
1236
  REF_BY(fd, 2, "pollset_set");
1187
1237
  pss->fds[pss->fd_count++] = fd;
@@ -1191,6 +1241,7 @@ static void pollset_set_add_fd(grpc_pollset_set* pss, grpc_fd* fd) {
1191
1241
  }
1192
1242
 
1193
1243
  static void pollset_set_del_fd(grpc_pollset_set* pss, grpc_fd* fd) {
1244
+ GPR_TIMER_SCOPE("pollset_set_del_fd", 0);
1194
1245
  if (grpc_polling_trace.enabled()) {
1195
1246
  gpr_log(GPR_DEBUG, "PSS:%p: del fd %p", pss, fd);
1196
1247
  }
@@ -1211,6 +1262,7 @@ static void pollset_set_del_fd(grpc_pollset_set* pss, grpc_fd* fd) {
1211
1262
  }
1212
1263
 
1213
1264
  static void pollset_set_del_pollset(grpc_pollset_set* pss, grpc_pollset* ps) {
1265
+ GPR_TIMER_SCOPE("pollset_set_del_pollset", 0);
1214
1266
  if (grpc_polling_trace.enabled()) {
1215
1267
  gpr_log(GPR_DEBUG, "PSS:%p: del pollset %p", pss, ps);
1216
1268
  }
@@ -1241,6 +1293,7 @@ static grpc_error* add_fds_to_pollsets(grpc_fd** fds, size_t fd_count,
1241
1293
  size_t pollset_count,
1242
1294
  const char* err_desc, grpc_fd** out_fds,
1243
1295
  size_t* out_fd_count) {
1296
+ GPR_TIMER_SCOPE("add_fds_to_pollsets", 0);
1244
1297
  grpc_error* error = GRPC_ERROR_NONE;
1245
1298
  for (size_t i = 0; i < fd_count; i++) {
1246
1299
  gpr_mu_lock(&fds[i]->orphan_mu);
@@ -1261,6 +1314,7 @@ static grpc_error* add_fds_to_pollsets(grpc_fd** fds, size_t fd_count,
1261
1314
  }
1262
1315
 
1263
1316
  static void pollset_set_add_pollset(grpc_pollset_set* pss, grpc_pollset* ps) {
1317
+ GPR_TIMER_SCOPE("pollset_set_add_pollset", 0);
1264
1318
  if (grpc_polling_trace.enabled()) {
1265
1319
  gpr_log(GPR_DEBUG, "PSS:%p: add pollset %p", pss, ps);
1266
1320
  }
@@ -1285,8 +1339,8 @@ static void pollset_set_add_pollset(grpc_pollset_set* pss, grpc_pollset* ps) {
1285
1339
  err_desc);
1286
1340
  if (pss->pollset_count == pss->pollset_capacity) {
1287
1341
  pss->pollset_capacity = GPR_MAX(pss->pollset_capacity * 2, 8);
1288
- pss->pollsets = (grpc_pollset**)gpr_realloc(
1289
- pss->pollsets, pss->pollset_capacity * sizeof(*pss->pollsets));
1342
+ pss->pollsets = static_cast<grpc_pollset**>(gpr_realloc(
1343
+ pss->pollsets, pss->pollset_capacity * sizeof(*pss->pollsets)));
1290
1344
  }
1291
1345
  pss->pollsets[pss->pollset_count++] = ps;
1292
1346
  gpr_mu_unlock(&pss->mu);
@@ -1297,6 +1351,7 @@ static void pollset_set_add_pollset(grpc_pollset_set* pss, grpc_pollset* ps) {
1297
1351
 
1298
1352
  static void pollset_set_add_pollset_set(grpc_pollset_set* a,
1299
1353
  grpc_pollset_set* b) {
1354
+ GPR_TIMER_SCOPE("pollset_set_add_pollset_set", 0);
1300
1355
  if (grpc_polling_trace.enabled()) {
1301
1356
  gpr_log(GPR_DEBUG, "PSS: merge (%p, %p)", a, b);
1302
1357
  }
@@ -1338,7 +1393,8 @@ static void pollset_set_add_pollset_set(grpc_pollset_set* a,
1338
1393
  b->parent = a;
1339
1394
  if (a->fd_capacity < a->fd_count + b->fd_count) {
1340
1395
  a->fd_capacity = GPR_MAX(2 * a->fd_capacity, a->fd_count + b->fd_count);
1341
- a->fds = (grpc_fd**)gpr_realloc(a->fds, a->fd_capacity * sizeof(*a->fds));
1396
+ a->fds = static_cast<grpc_fd**>(
1397
+ gpr_realloc(a->fds, a->fd_capacity * sizeof(*a->fds)));
1342
1398
  }
1343
1399
  size_t initial_a_fd_count = a->fd_count;
1344
1400
  a->fd_count = 0;
@@ -1355,8 +1411,8 @@ static void pollset_set_add_pollset_set(grpc_pollset_set* a,
1355
1411
  if (a->pollset_capacity < a->pollset_count + b->pollset_count) {
1356
1412
  a->pollset_capacity =
1357
1413
  GPR_MAX(2 * a->pollset_capacity, a->pollset_count + b->pollset_count);
1358
- a->pollsets = (grpc_pollset**)gpr_realloc(
1359
- a->pollsets, a->pollset_capacity * sizeof(*a->pollsets));
1414
+ a->pollsets = static_cast<grpc_pollset**>(
1415
+ gpr_realloc(a->pollsets, a->pollset_capacity * sizeof(*a->pollsets)));
1360
1416
  }
1361
1417
  if (b->pollset_count > 0) {
1362
1418
  memcpy(a->pollsets + a->pollset_count, b->pollsets,
@@ -1417,10 +1473,6 @@ static const grpc_event_engine_vtable vtable = {
1417
1473
 
1418
1474
  const grpc_event_engine_vtable* grpc_init_epollex_linux(
1419
1475
  bool explicitly_requested) {
1420
- if (!explicitly_requested) {
1421
- return nullptr;
1422
- }
1423
-
1424
1476
  if (!grpc_has_wakeup_fd()) {
1425
1477
  gpr_log(GPR_ERROR, "Skipping epollex because of no wakeup fd.");
1426
1478
  return nullptr;