grpc 0.12.0 → 0.13.0.pre1.1

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 (673) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +5707 -22222
  3. data/include/grpc/byte_buffer.h +2 -83
  4. data/include/grpc/census.h +191 -121
  5. data/include/grpc/compression.h +14 -38
  6. data/include/grpc/grpc.h +88 -434
  7. data/include/grpc/grpc_security.h +76 -46
  8. data/include/grpc/grpc_zookeeper.h +1 -1
  9. data/include/grpc/impl/codegen/alloc.h +74 -0
  10. data/include/grpc/impl/codegen/atm.h +92 -0
  11. data/include/grpc/impl/codegen/atm_gcc_atomic.h +72 -0
  12. data/include/grpc/impl/codegen/atm_gcc_sync.h +87 -0
  13. data/include/grpc/impl/codegen/atm_win32.h +125 -0
  14. data/include/grpc/impl/codegen/byte_buffer.h +121 -0
  15. data/include/grpc/impl/codegen/compression_types.h +73 -0
  16. data/include/grpc/impl/codegen/connectivity_state.h +59 -0
  17. data/include/grpc/impl/codegen/grpc_types.h +373 -0
  18. data/include/grpc/impl/codegen/log.h +110 -0
  19. data/include/grpc/impl/codegen/port_platform.h +362 -0
  20. data/include/grpc/impl/codegen/propagation_bits.h +67 -0
  21. data/include/grpc/impl/codegen/slice.h +182 -0
  22. data/include/grpc/impl/codegen/slice_buffer.h +105 -0
  23. data/include/grpc/impl/codegen/status.h +163 -0
  24. data/include/grpc/impl/codegen/sync.h +316 -0
  25. data/include/grpc/impl/codegen/sync_generic.h +55 -0
  26. data/{src/core/census/context.h → include/grpc/impl/codegen/sync_posix.h} +11 -11
  27. data/include/grpc/impl/codegen/sync_win32.h +49 -0
  28. data/include/grpc/impl/codegen/time.h +132 -0
  29. data/include/grpc/status.h +2 -126
  30. data/include/grpc/support/alloc.h +2 -35
  31. data/include/grpc/support/atm.h +2 -55
  32. data/include/grpc/support/atm_gcc_atomic.h +5 -38
  33. data/include/grpc/support/atm_gcc_sync.h +2 -50
  34. data/include/grpc/support/atm_win32.h +2 -88
  35. data/include/grpc/support/avl.h +7 -7
  36. data/include/grpc/support/cmdline.h +15 -13
  37. data/include/grpc/support/cpu.h +5 -3
  38. data/include/grpc/support/histogram.h +23 -20
  39. data/include/grpc/support/host_port.h +5 -3
  40. data/include/grpc/support/log.h +2 -71
  41. data/include/grpc/support/log_win32.h +2 -2
  42. data/include/grpc/support/port_platform.h +2 -319
  43. data/include/grpc/support/slice.h +2 -145
  44. data/include/grpc/support/slice_buffer.h +2 -65
  45. data/include/grpc/support/string_util.h +3 -3
  46. data/include/grpc/support/subprocess.h +8 -6
  47. data/include/grpc/support/sync.h +2 -278
  48. data/include/grpc/support/sync_generic.h +2 -18
  49. data/include/grpc/support/sync_posix.h +2 -10
  50. data/include/grpc/support/sync_win32.h +2 -12
  51. data/include/grpc/support/thd.h +11 -11
  52. data/include/grpc/support/time.h +2 -91
  53. data/include/grpc/support/tls.h +1 -1
  54. data/include/grpc/support/tls_gcc.h +1 -1
  55. data/include/grpc/support/tls_msvc.h +1 -1
  56. data/include/grpc/support/tls_pthread.h +2 -2
  57. data/src/boringssl/err_data.c +1252 -0
  58. data/src/core/census/context.c +492 -8
  59. data/src/core/census/grpc_filter.c +3 -3
  60. data/src/core/census/initialize.c +4 -7
  61. data/src/core/census/operation.c +2 -2
  62. data/src/core/census/placeholders.c +109 -0
  63. data/src/core/census/rpc_metric_id.h +6 -6
  64. data/src/core/census/tracing.c +1 -1
  65. data/src/core/channel/channel_args.c +4 -3
  66. data/src/core/channel/channel_stack.c +1 -1
  67. data/src/core/channel/client_channel.c +18 -14
  68. data/src/core/channel/client_uchannel.c +3 -3
  69. data/src/core/channel/compress_filter.c +8 -8
  70. data/src/core/channel/http_client_filter.c +2 -2
  71. data/src/core/channel/http_server_filter.c +9 -9
  72. data/src/core/channel/subchannel_call_holder.c +12 -10
  73. data/src/core/client_config/lb_policies/pick_first.c +49 -31
  74. data/src/core/client_config/lb_policies/round_robin.c +7 -7
  75. data/src/core/client_config/resolvers/dns_resolver.c +3 -3
  76. data/src/core/client_config/resolvers/sockaddr_resolver.c +5 -5
  77. data/src/core/client_config/subchannel.c +36 -25
  78. data/src/core/compression/algorithm.c +3 -3
  79. data/src/core/httpcli/format_request.c +1 -1
  80. data/src/core/httpcli/httpcli.c +5 -5
  81. data/src/core/httpcli/httpcli_security_connector.c +2 -3
  82. data/src/core/httpcli/parser.c +7 -7
  83. data/src/core/httpcli/parser.h +1 -1
  84. data/src/core/iomgr/closure.c +7 -7
  85. data/src/core/iomgr/closure.h +6 -5
  86. data/src/core/iomgr/exec_ctx.c +12 -8
  87. data/src/core/iomgr/exec_ctx.h +12 -5
  88. data/src/core/iomgr/executor.c +4 -4
  89. data/src/core/iomgr/executor.h +2 -2
  90. data/src/core/iomgr/fd_posix.c +28 -17
  91. data/src/core/iomgr/fd_posix.h +7 -4
  92. data/src/core/iomgr/iocp_windows.c +6 -8
  93. data/src/core/iomgr/pollset_multipoller_with_epoll.c +70 -5
  94. data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +4 -2
  95. data/src/core/iomgr/pollset_posix.c +15 -15
  96. data/src/core/iomgr/pollset_posix.h +4 -2
  97. data/src/core/iomgr/pollset_windows.c +3 -12
  98. data/src/core/iomgr/resolve_address_posix.c +2 -2
  99. data/src/core/iomgr/resolve_address_windows.c +2 -2
  100. data/src/core/iomgr/sockaddr_utils.c +6 -6
  101. data/src/core/iomgr/sockaddr_win32.h +1 -6
  102. data/src/core/iomgr/tcp_client_posix.c +7 -7
  103. data/src/core/iomgr/tcp_client_windows.c +4 -4
  104. data/src/core/iomgr/tcp_posix.c +14 -8
  105. data/src/core/iomgr/tcp_posix.h +7 -1
  106. data/src/core/iomgr/tcp_server.h +40 -20
  107. data/src/core/iomgr/tcp_server_posix.c +106 -49
  108. data/src/core/iomgr/tcp_server_windows.c +98 -49
  109. data/src/core/iomgr/tcp_windows.c +11 -15
  110. data/src/core/iomgr/timer.c +8 -8
  111. data/src/core/iomgr/timer.h +1 -1
  112. data/src/core/iomgr/timer_heap.c +10 -10
  113. data/src/core/iomgr/timer_heap.h +2 -2
  114. data/src/core/iomgr/udp_server.c +2 -12
  115. data/src/core/iomgr/udp_server.h +1 -9
  116. data/src/core/iomgr/workqueue.h +2 -4
  117. data/src/core/iomgr/workqueue_posix.c +3 -3
  118. data/src/core/json/json_reader.c +11 -12
  119. data/src/core/json/json_reader.h +4 -4
  120. data/src/core/json/json_string.c +19 -19
  121. data/src/core/json/json_writer.c +7 -9
  122. data/src/core/profiling/basic_timers.c +1 -1
  123. data/src/core/security/base64.c +9 -9
  124. data/src/core/security/client_auth_filter.c +4 -4
  125. data/src/core/security/credentials.c +5 -5
  126. data/src/core/security/google_default_credentials.c +3 -3
  127. data/src/core/security/handshake.c +6 -5
  128. data/src/core/security/json_token.c +13 -7
  129. data/src/core/security/jwt_verifier.c +3 -2
  130. data/src/core/security/secure_endpoint.c +16 -16
  131. data/src/core/security/security_connector.c +47 -17
  132. data/src/core/security/security_connector.h +5 -5
  133. data/src/core/security/server_auth_filter.c +3 -3
  134. data/src/core/security/server_secure_chttp2.c +30 -31
  135. data/src/core/statistics/census_interface.h +2 -2
  136. data/src/core/statistics/census_rpc_stats.h +3 -3
  137. data/src/core/support/alloc.c +1 -1
  138. data/src/core/support/cpu_posix.c +2 -2
  139. data/src/core/support/env_linux.c +12 -2
  140. data/src/core/support/env_win32.c +15 -7
  141. data/src/core/support/histogram.c +5 -5
  142. data/src/core/support/log_posix.c +1 -1
  143. data/src/core/support/log_win32.c +4 -3
  144. data/src/core/support/murmur_hash.c +11 -11
  145. data/src/core/support/murmur_hash.h +1 -1
  146. data/src/core/support/slice.c +11 -11
  147. data/src/core/support/slice_buffer.c +6 -6
  148. data/src/core/support/stack_lockfree.c +20 -10
  149. data/src/core/support/string.c +15 -15
  150. data/src/core/support/string.h +5 -5
  151. data/src/core/support/string_win32.c +5 -5
  152. data/src/core/support/subprocess_windows.c +141 -0
  153. data/src/core/support/sync.c +4 -4
  154. data/src/core/support/sync_posix.c +2 -2
  155. data/src/core/support/sync_win32.c +10 -5
  156. data/src/core/support/time.c +29 -29
  157. data/src/core/support/time_posix.c +15 -6
  158. data/src/core/support/time_precise.c +2 -2
  159. data/src/core/support/time_win32.c +18 -9
  160. data/src/core/support/tls_pthread.c +1 -1
  161. data/src/core/support/wrap_memcpy.c +53 -0
  162. data/src/core/surface/alarm.c +83 -0
  163. data/src/core/surface/byte_buffer_reader.c +1 -1
  164. data/src/core/surface/call.c +78 -69
  165. data/src/core/surface/call.h +2 -2
  166. data/src/core/surface/call_test_only.h +2 -2
  167. data/src/core/surface/channel.c +9 -9
  168. data/src/core/surface/channel.h +1 -1
  169. data/src/core/surface/channel_connectivity.c +3 -3
  170. data/src/core/surface/channel_create.c +3 -3
  171. data/src/core/surface/channel_ping.c +2 -2
  172. data/src/core/surface/completion_queue.c +11 -12
  173. data/src/core/surface/completion_queue.h +1 -1
  174. data/src/core/surface/init.c +7 -5
  175. data/src/core/surface/lame_client.c +3 -3
  176. data/src/core/surface/secure_channel_create.c +3 -3
  177. data/src/core/surface/server.c +28 -28
  178. data/src/core/surface/server_chttp2.c +8 -8
  179. data/src/core/surface/server_create.c +1 -4
  180. data/src/core/surface/validate_metadata.c +3 -3
  181. data/src/core/surface/version.c +2 -2
  182. data/src/core/transport/byte_stream.c +8 -6
  183. data/src/core/transport/byte_stream.h +6 -5
  184. data/src/core/transport/chttp2/bin_encoder.c +29 -29
  185. data/src/core/transport/chttp2/frame_data.c +29 -26
  186. data/src/core/transport/chttp2/frame_data.h +6 -6
  187. data/src/core/transport/chttp2/frame_goaway.c +30 -30
  188. data/src/core/transport/chttp2/frame_goaway.h +6 -6
  189. data/src/core/transport/chttp2/frame_ping.c +6 -6
  190. data/src/core/transport/chttp2/frame_ping.h +5 -5
  191. data/src/core/transport/chttp2/frame_rst_stream.c +18 -19
  192. data/src/core/transport/chttp2/frame_rst_stream.h +4 -4
  193. data/src/core/transport/chttp2/frame_settings.c +30 -30
  194. data/src/core/transport/chttp2/frame_settings.h +13 -13
  195. data/src/core/transport/chttp2/frame_window_update.c +17 -18
  196. data/src/core/transport/chttp2/frame_window_update.h +5 -7
  197. data/src/core/transport/chttp2/hpack_encoder.c +69 -73
  198. data/src/core/transport/chttp2/hpack_encoder.h +16 -16
  199. data/src/core/transport/chttp2/hpack_parser.c +167 -167
  200. data/src/core/transport/chttp2/hpack_parser.h +16 -16
  201. data/src/core/transport/chttp2/hpack_table.c +13 -13
  202. data/src/core/transport/chttp2/hpack_table.h +11 -11
  203. data/src/core/transport/chttp2/internal.h +97 -86
  204. data/src/core/transport/chttp2/parsing.c +25 -25
  205. data/src/core/transport/chttp2/stream_lists.c +26 -3
  206. data/src/core/transport/chttp2/stream_map.c +13 -14
  207. data/src/core/transport/chttp2/stream_map.h +6 -7
  208. data/src/core/transport/chttp2/timeout_encoding.c +19 -16
  209. data/src/core/transport/chttp2/varint.c +8 -9
  210. data/src/core/transport/chttp2/varint.h +7 -8
  211. data/src/core/transport/chttp2/writing.c +26 -23
  212. data/src/core/transport/chttp2_transport.c +133 -92
  213. data/src/core/transport/connectivity_state.c +6 -6
  214. data/src/core/transport/metadata.c +18 -18
  215. data/src/core/transport/metadata.h +5 -5
  216. data/src/core/transport/static_metadata.c +15 -16
  217. data/src/core/transport/static_metadata.h +5 -5
  218. data/src/core/transport/transport.c +5 -5
  219. data/src/core/transport/transport.h +14 -1
  220. data/src/core/tsi/fake_transport_security.c +7 -7
  221. data/src/core/tsi/ssl_transport_security.c +6 -4
  222. data/src/core/tsi/ssl_types.h +55 -0
  223. data/src/ruby/ext/grpc/extconf.rb +51 -14
  224. data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -1
  225. data/src/ruby/ext/grpc/rb_call.c +6 -3
  226. data/src/ruby/ext/grpc/rb_call_credentials.c +4 -0
  227. data/src/ruby/ext/grpc/rb_channel.c +4 -2
  228. data/src/ruby/ext/grpc/rb_channel_args.c +3 -1
  229. data/src/ruby/ext/grpc/rb_channel_credentials.c +3 -1
  230. data/src/ruby/ext/grpc/rb_completion_queue.c +3 -1
  231. data/src/ruby/ext/grpc/rb_event_thread.c +5 -0
  232. data/src/ruby/ext/grpc/rb_grpc.c +11 -3
  233. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +560 -0
  234. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +843 -0
  235. data/src/ruby/ext/grpc/rb_loader.c +72 -0
  236. data/src/ruby/ext/grpc/rb_loader.h +40 -0
  237. data/src/ruby/ext/grpc/rb_server.c +3 -1
  238. data/src/ruby/ext/grpc/rb_server_credentials.c +4 -2
  239. data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
  240. data/src/ruby/lib/grpc/generic/rpc_desc.rb +1 -1
  241. data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
  242. data/src/ruby/lib/grpc/grpc.rb +34 -0
  243. data/src/ruby/lib/grpc/version.rb +1 -1
  244. data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
  245. data/third_party/boringssl/crypto/aes/aes.c +1142 -0
  246. data/third_party/boringssl/crypto/aes/internal.h +87 -0
  247. data/third_party/boringssl/crypto/aes/mode_wrappers.c +108 -0
  248. data/third_party/boringssl/crypto/asn1/a_bitstr.c +255 -0
  249. data/third_party/boringssl/crypto/asn1/a_bool.c +112 -0
  250. data/third_party/boringssl/crypto/asn1/a_bytes.c +317 -0
  251. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +286 -0
  252. data/third_party/boringssl/crypto/asn1/a_dup.c +103 -0
  253. data/third_party/boringssl/crypto/asn1/a_enum.c +183 -0
  254. data/third_party/boringssl/crypto/asn1/a_gentm.c +255 -0
  255. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +154 -0
  256. data/third_party/boringssl/crypto/asn1/a_int.c +456 -0
  257. data/third_party/boringssl/crypto/asn1/a_mbstr.c +390 -0
  258. data/third_party/boringssl/crypto/asn1/a_object.c +412 -0
  259. data/third_party/boringssl/crypto/asn1/a_octet.c +70 -0
  260. data/third_party/boringssl/crypto/asn1/a_print.c +119 -0
  261. data/third_party/boringssl/crypto/asn1/a_strnid.c +286 -0
  262. data/third_party/boringssl/crypto/asn1/a_time.c +221 -0
  263. data/third_party/boringssl/crypto/asn1/a_type.c +160 -0
  264. data/third_party/boringssl/crypto/asn1/a_utctm.c +342 -0
  265. data/third_party/boringssl/crypto/asn1/a_utf8.c +210 -0
  266. data/third_party/boringssl/crypto/asn1/asn1_lib.c +510 -0
  267. data/third_party/boringssl/crypto/asn1/asn1_locl.h +73 -0
  268. data/third_party/boringssl/crypto/asn1/asn1_par.c +444 -0
  269. data/third_party/boringssl/crypto/asn1/asn_pack.c +104 -0
  270. data/third_party/boringssl/crypto/asn1/bio_asn1.c +496 -0
  271. data/third_party/boringssl/crypto/asn1/bio_ndef.c +254 -0
  272. data/third_party/boringssl/crypto/asn1/f_enum.c +206 -0
  273. data/third_party/boringssl/crypto/asn1/f_int.c +210 -0
  274. data/third_party/boringssl/crypto/asn1/f_string.c +204 -0
  275. data/third_party/boringssl/crypto/asn1/t_bitst.c +102 -0
  276. data/third_party/boringssl/crypto/asn1/t_pkey.c +112 -0
  277. data/third_party/boringssl/crypto/asn1/tasn_dec.c +1342 -0
  278. data/third_party/boringssl/crypto/asn1/tasn_enc.c +695 -0
  279. data/third_party/boringssl/crypto/asn1/tasn_fre.c +264 -0
  280. data/third_party/boringssl/crypto/asn1/tasn_new.c +398 -0
  281. data/third_party/boringssl/crypto/asn1/tasn_prn.c +642 -0
  282. data/third_party/boringssl/crypto/asn1/tasn_typ.c +137 -0
  283. data/third_party/boringssl/crypto/asn1/tasn_utl.c +266 -0
  284. data/third_party/boringssl/crypto/asn1/x_bignum.c +143 -0
  285. data/third_party/boringssl/crypto/asn1/x_long.c +182 -0
  286. data/third_party/boringssl/crypto/base64/base64.c +478 -0
  287. data/third_party/boringssl/crypto/bio/bio.c +608 -0
  288. data/third_party/boringssl/crypto/bio/bio_mem.c +327 -0
  289. data/third_party/boringssl/crypto/bio/buffer.c +496 -0
  290. data/third_party/boringssl/crypto/bio/connect.c +544 -0
  291. data/third_party/boringssl/crypto/bio/fd.c +270 -0
  292. data/third_party/boringssl/crypto/bio/file.c +349 -0
  293. data/third_party/boringssl/crypto/bio/hexdump.c +192 -0
  294. data/third_party/boringssl/crypto/bio/internal.h +108 -0
  295. data/third_party/boringssl/crypto/bio/pair.c +803 -0
  296. data/third_party/boringssl/crypto/bio/printf.c +119 -0
  297. data/third_party/boringssl/crypto/bio/socket.c +195 -0
  298. data/third_party/boringssl/crypto/bio/socket_helper.c +113 -0
  299. data/third_party/boringssl/crypto/bn/add.c +377 -0
  300. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +599 -0
  301. data/third_party/boringssl/crypto/bn/bn.c +341 -0
  302. data/third_party/boringssl/crypto/bn/bn_asn1.c +93 -0
  303. data/third_party/boringssl/crypto/bn/cmp.c +200 -0
  304. data/third_party/boringssl/crypto/bn/convert.c +597 -0
  305. data/third_party/boringssl/crypto/bn/ctx.c +311 -0
  306. data/third_party/boringssl/crypto/bn/div.c +625 -0
  307. data/third_party/boringssl/crypto/bn/exponentiation.c +1544 -0
  308. data/third_party/boringssl/crypto/bn/gcd.c +711 -0
  309. data/third_party/boringssl/crypto/bn/generic.c +1019 -0
  310. data/third_party/boringssl/crypto/bn/internal.h +294 -0
  311. data/third_party/boringssl/crypto/bn/kronecker.c +175 -0
  312. data/third_party/boringssl/crypto/bn/montgomery.c +561 -0
  313. data/third_party/boringssl/crypto/bn/mul.c +888 -0
  314. data/third_party/boringssl/crypto/bn/prime.c +845 -0
  315. data/third_party/boringssl/crypto/bn/random.c +326 -0
  316. data/third_party/boringssl/crypto/bn/rsaz_exp.c +326 -0
  317. data/third_party/boringssl/crypto/bn/rsaz_exp.h +56 -0
  318. data/third_party/boringssl/crypto/bn/shift.c +299 -0
  319. data/third_party/boringssl/crypto/bn/sqrt.c +505 -0
  320. data/third_party/boringssl/crypto/buf/buf.c +235 -0
  321. data/third_party/boringssl/crypto/bytestring/ber.c +221 -0
  322. data/third_party/boringssl/crypto/bytestring/cbb.c +411 -0
  323. data/third_party/boringssl/crypto/bytestring/cbs.c +415 -0
  324. data/third_party/boringssl/crypto/bytestring/internal.h +46 -0
  325. data/third_party/boringssl/crypto/chacha/chacha_generic.c +140 -0
  326. data/third_party/boringssl/crypto/chacha/chacha_vec.c +323 -0
  327. data/third_party/boringssl/crypto/cipher/aead.c +167 -0
  328. data/third_party/boringssl/crypto/cipher/cipher.c +652 -0
  329. data/third_party/boringssl/crypto/cipher/derive_key.c +154 -0
  330. data/third_party/boringssl/crypto/cipher/e_aes.c +1767 -0
  331. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +311 -0
  332. data/third_party/boringssl/crypto/cipher/e_des.c +207 -0
  333. data/third_party/boringssl/crypto/cipher/e_null.c +85 -0
  334. data/third_party/boringssl/crypto/cipher/e_rc2.c +443 -0
  335. data/third_party/boringssl/crypto/cipher/e_rc4.c +87 -0
  336. data/third_party/boringssl/crypto/cipher/e_ssl3.c +463 -0
  337. data/third_party/boringssl/crypto/cipher/e_tls.c +673 -0
  338. data/third_party/boringssl/crypto/cipher/internal.h +164 -0
  339. data/third_party/boringssl/crypto/cipher/tls_cbc.c +495 -0
  340. data/third_party/boringssl/crypto/cmac/cmac.c +239 -0
  341. data/third_party/boringssl/crypto/conf/conf.c +778 -0
  342. data/third_party/boringssl/crypto/conf/conf_def.h +127 -0
  343. data/third_party/boringssl/crypto/conf/internal.h +31 -0
  344. data/third_party/boringssl/crypto/cpu-arm.c +199 -0
  345. data/third_party/boringssl/crypto/cpu-intel.c +261 -0
  346. data/third_party/boringssl/crypto/crypto.c +140 -0
  347. data/third_party/boringssl/crypto/curve25519/curve25519.c +4897 -0
  348. data/third_party/boringssl/crypto/des/des.c +771 -0
  349. data/third_party/boringssl/crypto/des/internal.h +212 -0
  350. data/third_party/boringssl/crypto/dh/check.c +180 -0
  351. data/third_party/boringssl/crypto/dh/dh.c +463 -0
  352. data/third_party/boringssl/crypto/dh/dh_asn1.c +84 -0
  353. data/third_party/boringssl/crypto/dh/internal.h +80 -0
  354. data/third_party/boringssl/crypto/dh/params.c +301 -0
  355. data/third_party/boringssl/crypto/digest/digest.c +248 -0
  356. data/third_party/boringssl/crypto/digest/digests.c +321 -0
  357. data/third_party/boringssl/crypto/digest/internal.h +112 -0
  358. data/third_party/boringssl/crypto/digest/md32_common.h +322 -0
  359. data/third_party/boringssl/crypto/directory.h +66 -0
  360. data/third_party/boringssl/crypto/directory_posix.c +108 -0
  361. data/third_party/boringssl/crypto/directory_win.c +144 -0
  362. data/third_party/boringssl/crypto/dsa/dsa.c +908 -0
  363. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +150 -0
  364. data/third_party/boringssl/crypto/dsa/internal.h +78 -0
  365. data/third_party/boringssl/crypto/ec/ec.c +889 -0
  366. data/third_party/boringssl/crypto/ec/ec_asn1.c +586 -0
  367. data/third_party/boringssl/crypto/ec/ec_key.c +482 -0
  368. data/third_party/boringssl/crypto/ec/ec_montgomery.c +280 -0
  369. data/third_party/boringssl/crypto/ec/internal.h +318 -0
  370. data/third_party/boringssl/crypto/ec/oct.c +416 -0
  371. data/third_party/boringssl/crypto/ec/p224-64.c +1305 -0
  372. data/third_party/boringssl/crypto/ec/p256-64.c +1878 -0
  373. data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +9548 -0
  374. data/third_party/boringssl/crypto/ec/p256-x86_64.c +596 -0
  375. data/third_party/boringssl/crypto/ec/simple.c +1313 -0
  376. data/third_party/boringssl/crypto/ec/util-64.c +183 -0
  377. data/third_party/boringssl/crypto/ec/wnaf.c +449 -0
  378. data/third_party/boringssl/crypto/ecdh/ecdh.c +153 -0
  379. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +496 -0
  380. data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +240 -0
  381. data/third_party/boringssl/crypto/engine/engine.c +96 -0
  382. data/third_party/boringssl/crypto/err/err.c +756 -0
  383. data/third_party/boringssl/crypto/evp/algorithm.c +153 -0
  384. data/third_party/boringssl/crypto/evp/digestsign.c +159 -0
  385. data/third_party/boringssl/crypto/evp/evp.c +411 -0
  386. data/third_party/boringssl/crypto/evp/evp_asn1.c +179 -0
  387. data/third_party/boringssl/crypto/evp/evp_ctx.c +477 -0
  388. data/third_party/boringssl/crypto/evp/internal.h +278 -0
  389. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +588 -0
  390. data/third_party/boringssl/crypto/evp/p_ec.c +283 -0
  391. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +562 -0
  392. data/third_party/boringssl/crypto/evp/p_rsa.c +596 -0
  393. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +737 -0
  394. data/third_party/boringssl/crypto/evp/pbkdf.c +151 -0
  395. data/third_party/boringssl/crypto/evp/sign.c +151 -0
  396. data/third_party/boringssl/crypto/ex_data.c +294 -0
  397. data/third_party/boringssl/crypto/hkdf/hkdf.c +89 -0
  398. data/third_party/boringssl/crypto/hmac/hmac.c +213 -0
  399. data/third_party/boringssl/crypto/internal.h +532 -0
  400. data/third_party/boringssl/crypto/lhash/lhash.c +346 -0
  401. data/third_party/boringssl/crypto/md4/md4.c +225 -0
  402. data/third_party/boringssl/crypto/md5/md5.c +275 -0
  403. data/third_party/boringssl/crypto/mem.c +200 -0
  404. data/third_party/boringssl/crypto/modes/cbc.c +216 -0
  405. data/third_party/boringssl/crypto/modes/cfb.c +231 -0
  406. data/third_party/boringssl/crypto/modes/ctr.c +226 -0
  407. data/third_party/boringssl/crypto/modes/gcm.c +1252 -0
  408. data/third_party/boringssl/crypto/modes/internal.h +370 -0
  409. data/third_party/boringssl/crypto/modes/ofb.c +108 -0
  410. data/third_party/boringssl/crypto/obj/obj.c +664 -0
  411. data/third_party/boringssl/crypto/obj/obj_dat.h +5257 -0
  412. data/third_party/boringssl/crypto/obj/obj_xref.c +124 -0
  413. data/third_party/boringssl/crypto/obj/obj_xref.h +96 -0
  414. data/third_party/boringssl/crypto/pem/pem_all.c +281 -0
  415. data/third_party/boringssl/crypto/pem/pem_info.c +404 -0
  416. data/third_party/boringssl/crypto/pem/pem_lib.c +835 -0
  417. data/third_party/boringssl/crypto/pem/pem_oth.c +89 -0
  418. data/third_party/boringssl/crypto/pem/pem_pk8.c +244 -0
  419. data/third_party/boringssl/crypto/pem/pem_pkey.c +312 -0
  420. data/third_party/boringssl/crypto/pem/pem_x509.c +65 -0
  421. data/third_party/boringssl/crypto/pem/pem_xaux.c +66 -0
  422. data/third_party/boringssl/crypto/pkcs8/internal.h +83 -0
  423. data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +150 -0
  424. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +440 -0
  425. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +85 -0
  426. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +1217 -0
  427. data/third_party/boringssl/crypto/poly1305/poly1305.c +331 -0
  428. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +301 -0
  429. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +892 -0
  430. data/third_party/boringssl/crypto/rand/internal.h +32 -0
  431. data/third_party/boringssl/crypto/rand/rand.c +239 -0
  432. data/third_party/boringssl/crypto/rand/urandom.c +223 -0
  433. data/third_party/boringssl/crypto/rand/windows.c +56 -0
  434. data/third_party/boringssl/crypto/rc4/rc4.c +283 -0
  435. data/third_party/boringssl/crypto/refcount_c11.c +67 -0
  436. data/third_party/boringssl/crypto/refcount_lock.c +53 -0
  437. data/third_party/boringssl/crypto/rsa/blinding.c +462 -0
  438. data/third_party/boringssl/crypto/rsa/internal.h +164 -0
  439. data/third_party/boringssl/crypto/rsa/padding.c +711 -0
  440. data/third_party/boringssl/crypto/rsa/rsa.c +808 -0
  441. data/third_party/boringssl/crypto/rsa/rsa_asn1.c +473 -0
  442. data/third_party/boringssl/crypto/rsa/rsa_impl.c +1138 -0
  443. data/third_party/boringssl/crypto/sha/sha1.c +337 -0
  444. data/third_party/boringssl/crypto/sha/sha256.c +327 -0
  445. data/third_party/boringssl/crypto/sha/sha512.c +607 -0
  446. data/third_party/boringssl/crypto/stack/stack.c +386 -0
  447. data/third_party/boringssl/crypto/test/scoped_types.h +137 -0
  448. data/third_party/boringssl/crypto/test/test_util.h +35 -0
  449. data/third_party/boringssl/crypto/thread.c +101 -0
  450. data/third_party/boringssl/crypto/thread_none.c +55 -0
  451. data/third_party/boringssl/crypto/thread_pthread.c +167 -0
  452. data/third_party/boringssl/crypto/thread_win.c +282 -0
  453. data/third_party/boringssl/crypto/time_support.c +212 -0
  454. data/third_party/boringssl/crypto/x509/a_digest.c +97 -0
  455. data/third_party/boringssl/crypto/x509/a_sign.c +136 -0
  456. data/third_party/boringssl/crypto/x509/a_strex.c +564 -0
  457. data/third_party/boringssl/crypto/x509/a_verify.c +133 -0
  458. data/third_party/boringssl/crypto/x509/asn1_gen.c +873 -0
  459. data/third_party/boringssl/crypto/x509/by_dir.c +491 -0
  460. data/third_party/boringssl/crypto/x509/by_file.c +295 -0
  461. data/third_party/boringssl/crypto/x509/charmap.h +15 -0
  462. data/third_party/boringssl/crypto/x509/i2d_pr.c +84 -0
  463. data/third_party/boringssl/crypto/x509/pkcs7.c +353 -0
  464. data/third_party/boringssl/crypto/x509/t_crl.c +129 -0
  465. data/third_party/boringssl/crypto/x509/t_req.c +246 -0
  466. data/third_party/boringssl/crypto/x509/t_x509.c +500 -0
  467. data/third_party/boringssl/crypto/x509/t_x509a.c +109 -0
  468. data/third_party/boringssl/crypto/x509/vpm_int.h +70 -0
  469. data/third_party/boringssl/crypto/x509/x509.c +152 -0
  470. data/third_party/boringssl/crypto/x509/x509_att.c +353 -0
  471. data/third_party/boringssl/crypto/x509/x509_cmp.c +490 -0
  472. data/third_party/boringssl/crypto/x509/x509_d2.c +105 -0
  473. data/third_party/boringssl/crypto/x509/x509_def.c +88 -0
  474. data/third_party/boringssl/crypto/x509/x509_ext.c +206 -0
  475. data/third_party/boringssl/crypto/x509/x509_lu.c +738 -0
  476. data/third_party/boringssl/crypto/x509/x509_obj.c +191 -0
  477. data/third_party/boringssl/crypto/x509/x509_r2x.c +113 -0
  478. data/third_party/boringssl/crypto/x509/x509_req.c +315 -0
  479. data/third_party/boringssl/crypto/x509/x509_set.c +154 -0
  480. data/third_party/boringssl/crypto/x509/x509_trs.c +304 -0
  481. data/third_party/boringssl/crypto/x509/x509_txt.c +209 -0
  482. data/third_party/boringssl/crypto/x509/x509_v3.c +271 -0
  483. data/third_party/boringssl/crypto/x509/x509_vfy.c +2456 -0
  484. data/third_party/boringssl/crypto/x509/x509_vpm.c +672 -0
  485. data/third_party/boringssl/crypto/x509/x509cset.c +172 -0
  486. data/third_party/boringssl/crypto/x509/x509name.c +381 -0
  487. data/third_party/boringssl/crypto/x509/x509rset.c +80 -0
  488. data/third_party/boringssl/crypto/x509/x509spki.c +135 -0
  489. data/third_party/boringssl/crypto/x509/x509type.c +128 -0
  490. data/third_party/boringssl/crypto/x509/x_algor.c +154 -0
  491. data/third_party/boringssl/crypto/x509/x_all.c +547 -0
  492. data/third_party/boringssl/crypto/x509/x_attrib.c +117 -0
  493. data/third_party/boringssl/crypto/x509/x_crl.c +560 -0
  494. data/third_party/boringssl/crypto/x509/x_exten.c +75 -0
  495. data/third_party/boringssl/crypto/x509/x_info.c +95 -0
  496. data/third_party/boringssl/crypto/x509/x_name.c +538 -0
  497. data/third_party/boringssl/crypto/x509/x_pkey.c +100 -0
  498. data/third_party/boringssl/crypto/x509/x_pubkey.c +384 -0
  499. data/third_party/boringssl/crypto/x509/x_req.c +112 -0
  500. data/third_party/boringssl/crypto/x509/x_sig.c +69 -0
  501. data/third_party/boringssl/crypto/x509/x_spki.c +78 -0
  502. data/third_party/boringssl/crypto/x509/x_val.c +69 -0
  503. data/third_party/boringssl/crypto/x509/x_x509.c +227 -0
  504. data/third_party/boringssl/crypto/x509/x_x509a.c +197 -0
  505. data/third_party/boringssl/crypto/x509v3/ext_dat.h +129 -0
  506. data/third_party/boringssl/crypto/x509v3/pcy_cache.c +299 -0
  507. data/third_party/boringssl/crypto/x509v3/pcy_data.c +137 -0
  508. data/third_party/boringssl/crypto/x509v3/pcy_int.h +212 -0
  509. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +165 -0
  510. data/third_party/boringssl/crypto/x509v3/pcy_map.c +133 -0
  511. data/third_party/boringssl/crypto/x509v3/pcy_node.c +197 -0
  512. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +876 -0
  513. data/third_party/boringssl/crypto/x509v3/v3_akey.c +212 -0
  514. data/third_party/boringssl/crypto/x509v3/v3_akeya.c +71 -0
  515. data/third_party/boringssl/crypto/x509v3/v3_alt.c +622 -0
  516. data/third_party/boringssl/crypto/x509v3/v3_bcons.c +126 -0
  517. data/third_party/boringssl/crypto/x509v3/v3_bitst.c +141 -0
  518. data/third_party/boringssl/crypto/x509v3/v3_conf.c +459 -0
  519. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +475 -0
  520. data/third_party/boringssl/crypto/x509v3/v3_crld.c +616 -0
  521. data/third_party/boringssl/crypto/x509v3/v3_enum.c +98 -0
  522. data/third_party/boringssl/crypto/x509v3/v3_extku.c +145 -0
  523. data/third_party/boringssl/crypto/x509v3/v3_genn.c +252 -0
  524. data/third_party/boringssl/crypto/x509v3/v3_ia5.c +117 -0
  525. data/third_party/boringssl/crypto/x509v3/v3_info.c +200 -0
  526. data/third_party/boringssl/crypto/x509v3/v3_int.c +87 -0
  527. data/third_party/boringssl/crypto/x509v3/v3_lib.c +335 -0
  528. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +510 -0
  529. data/third_party/boringssl/crypto/x509v3/v3_pci.c +335 -0
  530. data/third_party/boringssl/crypto/x509v3/v3_pcia.c +56 -0
  531. data/third_party/boringssl/crypto/x509v3/v3_pcons.c +142 -0
  532. data/third_party/boringssl/crypto/x509v3/v3_pku.c +109 -0
  533. data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +156 -0
  534. data/third_party/boringssl/crypto/x509v3/v3_prn.c +207 -0
  535. data/third_party/boringssl/crypto/x509v3/v3_purp.c +805 -0
  536. data/third_party/boringssl/crypto/x509v3/v3_skey.c +148 -0
  537. data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +266 -0
  538. data/third_party/boringssl/crypto/x509v3/v3_utl.c +1322 -0
  539. data/third_party/boringssl/include/openssl/aead.h +346 -0
  540. data/third_party/boringssl/include/openssl/aes.h +158 -0
  541. data/third_party/boringssl/include/openssl/arm_arch.h +127 -0
  542. data/third_party/boringssl/include/openssl/asn1.h +1168 -0
  543. data/third_party/boringssl/include/openssl/asn1_mac.h +75 -0
  544. data/third_party/boringssl/include/openssl/asn1t.h +906 -0
  545. data/third_party/boringssl/include/openssl/base.h +261 -0
  546. data/third_party/boringssl/include/openssl/base64.h +184 -0
  547. data/third_party/boringssl/include/openssl/bio.h +902 -0
  548. data/third_party/boringssl/include/openssl/blowfish.h +93 -0
  549. data/third_party/boringssl/include/openssl/bn.h +885 -0
  550. data/third_party/boringssl/include/openssl/buf.h +118 -0
  551. data/third_party/boringssl/include/openssl/buffer.h +18 -0
  552. data/third_party/boringssl/include/openssl/bytestring.h +360 -0
  553. data/third_party/boringssl/include/openssl/cast.h +96 -0
  554. data/third_party/boringssl/include/openssl/chacha.h +37 -0
  555. data/third_party/boringssl/include/openssl/cipher.h +571 -0
  556. data/third_party/boringssl/include/openssl/cmac.h +76 -0
  557. data/third_party/boringssl/include/openssl/conf.h +145 -0
  558. data/third_party/boringssl/include/openssl/cpu.h +184 -0
  559. data/third_party/boringssl/include/openssl/crypto.h +68 -0
  560. data/third_party/boringssl/include/openssl/curve25519.h +88 -0
  561. data/third_party/boringssl/include/openssl/des.h +177 -0
  562. data/third_party/boringssl/include/openssl/dh.h +238 -0
  563. data/third_party/boringssl/include/openssl/digest.h +258 -0
  564. data/third_party/boringssl/include/openssl/dsa.h +343 -0
  565. data/third_party/boringssl/include/openssl/dtls1.h +16 -0
  566. data/third_party/boringssl/include/openssl/ec.h +355 -0
  567. data/third_party/boringssl/include/openssl/ec_key.h +280 -0
  568. data/third_party/boringssl/include/openssl/ecdh.h +102 -0
  569. data/third_party/boringssl/include/openssl/ecdsa.h +206 -0
  570. data/third_party/boringssl/include/openssl/engine.h +98 -0
  571. data/third_party/boringssl/include/openssl/err.h +487 -0
  572. data/third_party/boringssl/include/openssl/evp.h +750 -0
  573. data/third_party/boringssl/include/openssl/ex_data.h +213 -0
  574. data/third_party/boringssl/include/openssl/hkdf.h +44 -0
  575. data/third_party/boringssl/include/openssl/hmac.h +160 -0
  576. data/third_party/boringssl/include/openssl/lhash.h +192 -0
  577. data/third_party/boringssl/include/openssl/lhash_macros.h +132 -0
  578. data/third_party/boringssl/include/openssl/md4.h +102 -0
  579. data/third_party/boringssl/include/openssl/md5.h +107 -0
  580. data/third_party/boringssl/include/openssl/mem.h +140 -0
  581. data/third_party/boringssl/include/openssl/obj.h +198 -0
  582. data/third_party/boringssl/include/openssl/obj_mac.h +4140 -0
  583. data/third_party/boringssl/include/openssl/objects.h +18 -0
  584. data/third_party/boringssl/include/openssl/opensslfeatures.h +60 -0
  585. data/third_party/boringssl/include/openssl/opensslv.h +18 -0
  586. data/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  587. data/third_party/boringssl/include/openssl/pem.h +521 -0
  588. data/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  589. data/third_party/boringssl/include/openssl/pkcs7.h +16 -0
  590. data/third_party/boringssl/include/openssl/pkcs8.h +220 -0
  591. data/third_party/boringssl/include/openssl/poly1305.h +51 -0
  592. data/third_party/boringssl/include/openssl/pqueue.h +146 -0
  593. data/third_party/boringssl/include/openssl/rand.h +113 -0
  594. data/third_party/boringssl/include/openssl/rc4.h +90 -0
  595. data/third_party/boringssl/include/openssl/rsa.h +637 -0
  596. data/third_party/boringssl/include/openssl/safestack.h +16 -0
  597. data/third_party/boringssl/include/openssl/sha.h +256 -0
  598. data/third_party/boringssl/include/openssl/srtp.h +18 -0
  599. data/third_party/boringssl/include/openssl/ssl.h +4466 -0
  600. data/third_party/boringssl/include/openssl/ssl3.h +441 -0
  601. data/third_party/boringssl/include/openssl/stack.h +298 -0
  602. data/third_party/boringssl/include/openssl/stack_macros.h +4190 -0
  603. data/third_party/boringssl/include/openssl/thread.h +173 -0
  604. data/third_party/boringssl/include/openssl/time_support.h +90 -0
  605. data/third_party/boringssl/include/openssl/tls1.h +653 -0
  606. data/third_party/boringssl/include/openssl/type_check.h +91 -0
  607. data/third_party/boringssl/include/openssl/x509.h +1258 -0
  608. data/third_party/boringssl/include/openssl/x509_vfy.h +611 -0
  609. data/third_party/boringssl/include/openssl/x509v3.h +798 -0
  610. data/third_party/boringssl/ssl/custom_extensions.c +257 -0
  611. data/third_party/boringssl/ssl/d1_both.c +880 -0
  612. data/third_party/boringssl/ssl/d1_clnt.c +566 -0
  613. data/third_party/boringssl/ssl/d1_lib.c +340 -0
  614. data/third_party/boringssl/ssl/d1_meth.c +130 -0
  615. data/third_party/boringssl/ssl/d1_pkt.c +578 -0
  616. data/third_party/boringssl/ssl/d1_srtp.c +234 -0
  617. data/third_party/boringssl/ssl/d1_srvr.c +485 -0
  618. data/third_party/boringssl/ssl/dtls_record.c +308 -0
  619. data/third_party/boringssl/ssl/internal.h +1276 -0
  620. data/third_party/boringssl/ssl/pqueue/pqueue.c +197 -0
  621. data/third_party/boringssl/ssl/s3_both.c +571 -0
  622. data/third_party/boringssl/ssl/s3_clnt.c +2241 -0
  623. data/third_party/boringssl/ssl/s3_enc.c +494 -0
  624. data/third_party/boringssl/ssl/s3_lib.c +587 -0
  625. data/third_party/boringssl/ssl/s3_meth.c +166 -0
  626. data/third_party/boringssl/ssl/s3_pkt.c +732 -0
  627. data/third_party/boringssl/ssl/s3_srvr.c +2536 -0
  628. data/third_party/boringssl/ssl/ssl_aead_ctx.c +300 -0
  629. data/third_party/boringssl/ssl/ssl_asn1.c +718 -0
  630. data/third_party/boringssl/ssl/ssl_buffer.c +319 -0
  631. data/third_party/boringssl/ssl/ssl_cert.c +539 -0
  632. data/third_party/boringssl/ssl/ssl_cipher.c +2003 -0
  633. data/third_party/boringssl/ssl/ssl_file.c +633 -0
  634. data/third_party/boringssl/ssl/ssl_lib.c +2653 -0
  635. data/third_party/boringssl/ssl/ssl_rsa.c +423 -0
  636. data/third_party/boringssl/ssl/ssl_session.c +764 -0
  637. data/third_party/boringssl/ssl/ssl_stat.c +591 -0
  638. data/third_party/boringssl/ssl/t1_enc.c +708 -0
  639. data/third_party/boringssl/ssl/t1_lib.c +2905 -0
  640. data/third_party/boringssl/ssl/test/async_bio.h +45 -0
  641. data/third_party/boringssl/ssl/test/packeted_bio.h +44 -0
  642. data/third_party/boringssl/ssl/test/scoped_types.h +28 -0
  643. data/third_party/boringssl/ssl/test/test_config.h +108 -0
  644. data/third_party/boringssl/ssl/tls_record.c +342 -0
  645. data/third_party/zlib/adler32.c +179 -0
  646. data/third_party/zlib/compress.c +80 -0
  647. data/third_party/zlib/crc32.c +425 -0
  648. data/third_party/zlib/crc32.h +441 -0
  649. data/third_party/zlib/deflate.c +1967 -0
  650. data/third_party/zlib/deflate.h +346 -0
  651. data/third_party/zlib/gzclose.c +25 -0
  652. data/third_party/zlib/gzguts.h +209 -0
  653. data/third_party/zlib/gzlib.c +634 -0
  654. data/third_party/zlib/gzread.c +594 -0
  655. data/third_party/zlib/gzwrite.c +577 -0
  656. data/third_party/zlib/infback.c +640 -0
  657. data/third_party/zlib/inffast.c +340 -0
  658. data/third_party/zlib/inffast.h +11 -0
  659. data/third_party/zlib/inffixed.h +94 -0
  660. data/third_party/zlib/inflate.c +1512 -0
  661. data/third_party/zlib/inflate.h +122 -0
  662. data/third_party/zlib/inftrees.c +306 -0
  663. data/third_party/zlib/inftrees.h +62 -0
  664. data/third_party/zlib/trees.c +1226 -0
  665. data/third_party/zlib/trees.h +128 -0
  666. data/third_party/zlib/uncompr.c +59 -0
  667. data/third_party/zlib/zconf.h +511 -0
  668. data/third_party/zlib/zlib.h +1768 -0
  669. data/third_party/zlib/zutil.c +324 -0
  670. data/third_party/zlib/zutil.h +253 -0
  671. metadata +492 -25
  672. data/Rakefile +0 -63
  673. data/src/ruby/lib/grpc/grpc.so +0 -0
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -57,22 +57,29 @@ struct grpc_exec_ctx {
57
57
  grpc_closure_list closure_list;
58
58
  };
59
59
 
60
+ /** A workqueue represents a list of work to be executed asynchronously.
61
+ Forward declared here to avoid a circular dependency with workqueue.h. */
62
+ struct grpc_workqueue;
63
+ typedef struct grpc_workqueue grpc_workqueue;
64
+
60
65
  #define GRPC_EXEC_CTX_INIT \
61
66
  { GRPC_CLOSURE_LIST_INIT }
62
67
 
63
68
  /** Flush any work that has been enqueued onto this grpc_exec_ctx.
64
69
  * Caller must guarantee that no interfering locks are held.
65
- * Returns 1 if work was performed, 0 otherwise. */
66
- int grpc_exec_ctx_flush(grpc_exec_ctx *exec_ctx);
70
+ * Returns true if work was performed, false otherwise. */
71
+ bool grpc_exec_ctx_flush(grpc_exec_ctx *exec_ctx);
67
72
  /** Finish any pending work for a grpc_exec_ctx. Must be called before
68
73
  * the instance is destroyed, or work may be lost. */
69
74
  void grpc_exec_ctx_finish(grpc_exec_ctx *exec_ctx);
70
75
  /** Add a closure to be executed at the next flush/finish point */
71
76
  void grpc_exec_ctx_enqueue(grpc_exec_ctx *exec_ctx, grpc_closure *closure,
72
- int success);
77
+ bool success,
78
+ grpc_workqueue *offload_target_or_null);
73
79
  /** Add a list of closures to be executed at the next flush/finish point.
74
80
  * Leaves \a list empty. */
75
81
  void grpc_exec_ctx_enqueue_list(grpc_exec_ctx *exec_ctx,
76
- grpc_closure_list *list);
82
+ grpc_closure_list *list,
83
+ grpc_workqueue *offload_target_or_null);
77
84
 
78
85
  #endif
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -77,7 +77,7 @@ static void closure_exec_thread_func(void *ignored) {
77
77
  gpr_mu_unlock(&g_executor.mu);
78
78
  break;
79
79
  } else {
80
- grpc_exec_ctx_enqueue_list(&exec_ctx, &g_executor.closures);
80
+ grpc_exec_ctx_enqueue_list(&exec_ctx, &g_executor.closures, NULL);
81
81
  }
82
82
  gpr_mu_unlock(&g_executor.mu);
83
83
  grpc_exec_ctx_flush(&exec_ctx);
@@ -112,7 +112,7 @@ static void maybe_spawn_locked() {
112
112
  g_executor.pending_join = 1;
113
113
  }
114
114
 
115
- void grpc_executor_enqueue(grpc_closure *closure, int success) {
115
+ void grpc_executor_enqueue(grpc_closure *closure, bool success) {
116
116
  gpr_mu_lock(&g_executor.mu);
117
117
  if (g_executor.shutting_down == 0) {
118
118
  grpc_closure_list_add(&g_executor.closures, closure, success);
@@ -133,7 +133,7 @@ void grpc_executor_shutdown() {
133
133
  * list below because we aren't accepting new work */
134
134
 
135
135
  /* Execute pending callbacks, some may be performing cleanups */
136
- grpc_exec_ctx_enqueue_list(&exec_ctx, &g_executor.closures);
136
+ grpc_exec_ctx_enqueue_list(&exec_ctx, &g_executor.closures, NULL);
137
137
  grpc_exec_ctx_finish(&exec_ctx);
138
138
  GPR_ASSERT(grpc_closure_list_empty(g_executor.closures));
139
139
  if (pending_join) {
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -45,7 +45,7 @@ void grpc_executor_init();
45
45
 
46
46
  /** Enqueue \a closure for its eventual execution of \a f(arg) on a separate
47
47
  * thread */
48
- void grpc_executor_enqueue(grpc_closure *closure, int success);
48
+ void grpc_executor_enqueue(grpc_closure *closure, bool success);
49
49
 
50
50
  /** Shutdown the executor, running all pending work as part of the call */
51
51
  void grpc_executor_shutdown();
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -101,6 +101,7 @@ static grpc_fd *alloc_fd(int fd) {
101
101
  r->read_watcher = r->write_watcher = NULL;
102
102
  r->on_done_closure = NULL;
103
103
  r->closed = 0;
104
+ r->released = 0;
104
105
  return r;
105
106
  }
106
107
 
@@ -210,6 +211,24 @@ static int has_watchers(grpc_fd *fd) {
210
211
  fd->inactive_watcher_root.next != &fd->inactive_watcher_root;
211
212
  }
212
213
 
214
+ static void close_fd_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
215
+ fd->closed = 1;
216
+ if (!fd->released) {
217
+ close(fd->fd);
218
+ } else {
219
+ grpc_remove_fd_from_all_epoll_sets(fd->fd);
220
+ }
221
+ grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, true, NULL);
222
+ }
223
+
224
+ int grpc_fd_wrapped_fd(grpc_fd *fd) {
225
+ if (fd->released || fd->closed) {
226
+ return -1;
227
+ } else {
228
+ return fd->fd;
229
+ }
230
+ }
231
+
213
232
  void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
214
233
  int *release_fd, const char *reason) {
215
234
  fd->on_done_closure = on_done;
@@ -222,11 +241,7 @@ void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
222
241
  gpr_mu_lock(&fd->mu);
223
242
  REF_BY(fd, 1, reason); /* remove active status, but keep referenced */
224
243
  if (!has_watchers(fd)) {
225
- fd->closed = 1;
226
- if (!fd->released) {
227
- close(fd->fd);
228
- }
229
- grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, 1);
244
+ close_fd_locked(exec_ctx, fd);
230
245
  } else {
231
246
  wake_all_watchers_locked(fd);
232
247
  }
@@ -258,7 +273,7 @@ static void notify_on_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
258
273
  } else if (*st == CLOSURE_READY) {
259
274
  /* already ready ==> queue the closure to run immediately */
260
275
  *st = CLOSURE_NOT_READY;
261
- grpc_exec_ctx_enqueue(exec_ctx, closure, !fd->shutdown);
276
+ grpc_exec_ctx_enqueue(exec_ctx, closure, !fd->shutdown, NULL);
262
277
  maybe_wake_one_watcher_locked(fd);
263
278
  } else {
264
279
  /* upcallptr was set to a different closure. This is an error! */
@@ -281,7 +296,7 @@ static int set_ready_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
281
296
  return 0;
282
297
  } else {
283
298
  /* waiting ==> queue closure */
284
- grpc_exec_ctx_enqueue(exec_ctx, *st, !fd->shutdown);
299
+ grpc_exec_ctx_enqueue(exec_ctx, *st, !fd->shutdown, NULL);
285
300
  *st = CLOSURE_NOT_READY;
286
301
  return 1;
287
302
  }
@@ -318,10 +333,10 @@ void grpc_fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
318
333
  gpr_mu_unlock(&fd->mu);
319
334
  }
320
335
 
321
- gpr_uint32 grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
322
- grpc_pollset_worker *worker, gpr_uint32 read_mask,
323
- gpr_uint32 write_mask, grpc_fd_watcher *watcher) {
324
- gpr_uint32 mask = 0;
336
+ uint32_t grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
337
+ grpc_pollset_worker *worker, uint32_t read_mask,
338
+ uint32_t write_mask, grpc_fd_watcher *watcher) {
339
+ uint32_t mask = 0;
325
340
  grpc_closure *cur;
326
341
  int requested;
327
342
  /* keep track of pollers that have requested our events, in case they change
@@ -416,11 +431,7 @@ void grpc_fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *watcher,
416
431
  maybe_wake_one_watcher_locked(fd);
417
432
  }
418
433
  if (grpc_fd_is_orphaned(fd) && !has_watchers(fd) && !fd->closed) {
419
- fd->closed = 1;
420
- if (!fd->released) {
421
- close(fd->fd);
422
- }
423
- grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, 1);
434
+ close_fd_locked(exec_ctx, fd);
424
435
  }
425
436
  gpr_mu_unlock(&fd->mu);
426
437
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -105,6 +105,9 @@ struct grpc_fd {
105
105
  This takes ownership of closing fd. */
106
106
  grpc_fd *grpc_fd_create(int fd, const char *name);
107
107
 
108
+ /* Return the wrapped fd, or -1 if it has been released or closed. */
109
+ int grpc_fd_wrapped_fd(grpc_fd *fd);
110
+
108
111
  /* Releases fd to be asynchronously destroyed.
109
112
  on_done is called when the underlying file descriptor is definitely close()d.
110
113
  If on_done is NULL, no callback will be made.
@@ -126,9 +129,9 @@ void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
126
129
  Polling strategies that do not need to alter their behavior depending on the
127
130
  fd's current interest (such as epoll) do not need to call this function.
128
131
  MUST NOT be called with a pollset lock taken */
129
- gpr_uint32 grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
130
- grpc_pollset_worker *worker, gpr_uint32 read_mask,
131
- gpr_uint32 write_mask, grpc_fd_watcher *rec);
132
+ uint32_t grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
133
+ grpc_pollset_worker *worker, uint32_t read_mask,
134
+ uint32_t write_mask, grpc_fd_watcher *rec);
132
135
  /* Complete polling previously started with grpc_fd_begin_poll
133
136
  MUST NOT be called with a pollset lock taken
134
137
  if got_read or got_write are 1, also does the become_{readable,writable} as
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -57,7 +57,7 @@ static HANDLE g_iocp;
57
57
  static DWORD deadline_to_millis_timeout(gpr_timespec deadline,
58
58
  gpr_timespec now) {
59
59
  gpr_timespec timeout;
60
- static const int max_spin_polling_us = 10;
60
+ static const int64_t max_spin_polling_us = 10;
61
61
  if (gpr_time_cmp(deadline, gpr_inf_future(deadline.clock_type)) == 0) {
62
62
  return INFINITE;
63
63
  }
@@ -67,7 +67,7 @@ static DWORD deadline_to_millis_timeout(gpr_timespec deadline,
67
67
  return 0;
68
68
  }
69
69
  timeout = gpr_time_sub(deadline, now);
70
- return gpr_time_to_millis(gpr_time_add(
70
+ return (DWORD)gpr_time_to_millis(gpr_time_add(
71
71
  timeout, gpr_time_from_nanos(GPR_NS_PER_MS - 1, GPR_TIMESPAN)));
72
72
  }
73
73
 
@@ -120,7 +120,7 @@ void grpc_iocp_work(grpc_exec_ctx *exec_ctx, gpr_timespec deadline) {
120
120
  info->has_pending_iocp = 1;
121
121
  }
122
122
  gpr_mu_unlock(&socket->state_mu);
123
- grpc_exec_ctx_enqueue(exec_ctx, closure, 1);
123
+ grpc_exec_ctx_enqueue(exec_ctx, closure, true, NULL);
124
124
  }
125
125
 
126
126
  void grpc_iocp_init(void) {
@@ -160,7 +160,7 @@ void grpc_iocp_add_socket(grpc_winsocket *socket) {
160
160
  HANDLE ret;
161
161
  if (socket->added_to_iocp) return;
162
162
  ret = CreateIoCompletionPort((HANDLE)socket->socket, g_iocp,
163
- (gpr_uintptr)socket, 0);
163
+ (uintptr_t)socket, 0);
164
164
  if (!ret) {
165
165
  char *utf8_message = gpr_format_message(WSAGetLastError());
166
166
  gpr_log(GPR_ERROR, "Unable to add socket to iocp: %s", utf8_message);
@@ -179,13 +179,11 @@ void grpc_iocp_add_socket(grpc_winsocket *socket) {
179
179
  static void socket_notify_on_iocp(grpc_exec_ctx *exec_ctx,
180
180
  grpc_winsocket *socket, grpc_closure *closure,
181
181
  grpc_winsocket_callback_info *info) {
182
- int run_now = 0;
183
182
  GPR_ASSERT(info->closure == NULL);
184
183
  gpr_mu_lock(&socket->state_mu);
185
184
  if (info->has_pending_iocp) {
186
- run_now = 1;
187
185
  info->has_pending_iocp = 0;
188
- grpc_exec_ctx_enqueue(exec_ctx, closure, 1);
186
+ grpc_exec_ctx_enqueue(exec_ctx, closure, true, NULL);
189
187
  } else {
190
188
  info->closure = closure;
191
189
  }
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -43,9 +43,68 @@
43
43
 
44
44
  #include <grpc/support/alloc.h>
45
45
  #include <grpc/support/log.h>
46
+ #include <grpc/support/useful.h>
46
47
  #include "src/core/iomgr/fd_posix.h"
47
- #include "src/core/support/block_annotate.h"
48
48
  #include "src/core/profiling/timers.h"
49
+ #include "src/core/support/block_annotate.h"
50
+
51
+ struct epoll_fd_list {
52
+ int *epoll_fds;
53
+ size_t count;
54
+ size_t capacity;
55
+ };
56
+
57
+ static struct epoll_fd_list epoll_fd_global_list;
58
+ static gpr_once init_epoll_fd_list_mu = GPR_ONCE_INIT;
59
+ static gpr_mu epoll_fd_list_mu;
60
+
61
+ static void init_mu(void) { gpr_mu_init(&epoll_fd_list_mu); }
62
+
63
+ static void add_epoll_fd_to_global_list(int epoll_fd) {
64
+ gpr_once_init(&init_epoll_fd_list_mu, init_mu);
65
+
66
+ gpr_mu_lock(&epoll_fd_list_mu);
67
+ if (epoll_fd_global_list.count == epoll_fd_global_list.capacity) {
68
+ epoll_fd_global_list.capacity =
69
+ GPR_MAX((size_t)8, epoll_fd_global_list.capacity * 2);
70
+ epoll_fd_global_list.epoll_fds =
71
+ gpr_realloc(epoll_fd_global_list.epoll_fds,
72
+ epoll_fd_global_list.capacity * sizeof(int));
73
+ }
74
+ epoll_fd_global_list.epoll_fds[epoll_fd_global_list.count++] = epoll_fd;
75
+ gpr_mu_unlock(&epoll_fd_list_mu);
76
+ }
77
+
78
+ static void remove_epoll_fd_from_global_list(int epoll_fd) {
79
+ gpr_mu_lock(&epoll_fd_list_mu);
80
+ GPR_ASSERT(epoll_fd_global_list.count > 0);
81
+ for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
82
+ if (epoll_fd == epoll_fd_global_list.epoll_fds[i]) {
83
+ epoll_fd_global_list.epoll_fds[i] =
84
+ epoll_fd_global_list.epoll_fds[--(epoll_fd_global_list.count)];
85
+ break;
86
+ }
87
+ }
88
+ gpr_mu_unlock(&epoll_fd_list_mu);
89
+ }
90
+
91
+ void grpc_remove_fd_from_all_epoll_sets(int fd) {
92
+ int err;
93
+ gpr_once_init(&init_epoll_fd_list_mu, init_mu);
94
+ gpr_mu_lock(&epoll_fd_list_mu);
95
+ if (epoll_fd_global_list.count == 0) {
96
+ gpr_mu_unlock(&epoll_fd_list_mu);
97
+ return;
98
+ }
99
+ for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
100
+ err = epoll_ctl(epoll_fd_global_list.epoll_fds[i], EPOLL_CTL_DEL, fd, NULL);
101
+ if (err < 0 && errno != ENOENT) {
102
+ gpr_log(GPR_ERROR, "epoll_ctl del for %d failed: %s", fd,
103
+ strerror(errno));
104
+ }
105
+ }
106
+ gpr_mu_unlock(&epoll_fd_list_mu);
107
+ }
49
108
 
50
109
  typedef struct {
51
110
  grpc_pollset *pollset;
@@ -82,7 +141,7 @@ static void finally_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
82
141
  }
83
142
 
84
143
  static void perform_delayed_add(grpc_exec_ctx *exec_ctx, void *arg,
85
- int iomgr_status) {
144
+ bool iomgr_status) {
86
145
  delayed_add *da = arg;
87
146
 
88
147
  if (!grpc_fd_is_orphaned(da->fd)) {
@@ -95,7 +154,7 @@ static void perform_delayed_add(grpc_exec_ctx *exec_ctx, void *arg,
95
154
  /* We don't care about this pollset anymore. */
96
155
  if (da->pollset->in_flight_cbs == 0 && !da->pollset->called_shutdown) {
97
156
  da->pollset->called_shutdown = 1;
98
- grpc_exec_ctx_enqueue(exec_ctx, da->pollset->shutdown_done, 1);
157
+ grpc_exec_ctx_enqueue(exec_ctx, da->pollset->shutdown_done, true, NULL);
99
158
  }
100
159
  }
101
160
  gpr_mu_unlock(&da->pollset->mu);
@@ -119,7 +178,7 @@ static void multipoll_with_epoll_pollset_add_fd(grpc_exec_ctx *exec_ctx,
119
178
  GRPC_FD_REF(fd, "delayed_add");
120
179
  grpc_closure_init(&da->closure, perform_delayed_add, da);
121
180
  pollset->in_flight_cbs++;
122
- grpc_exec_ctx_enqueue(exec_ctx, &da->closure, 1);
181
+ grpc_exec_ctx_enqueue(exec_ctx, &da->closure, true, NULL);
123
182
  }
124
183
  }
125
184
 
@@ -211,6 +270,7 @@ static void multipoll_with_epoll_pollset_finish_shutdown(
211
270
  static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) {
212
271
  pollset_hdr *h = pollset->data.ptr;
213
272
  close(h->epoll_fd);
273
+ remove_epoll_fd_from_global_list(h->epoll_fd);
214
274
  gpr_free(h);
215
275
  }
216
276
 
@@ -236,6 +296,7 @@ static void epoll_become_multipoller(grpc_exec_ctx *exec_ctx,
236
296
  gpr_log(GPR_ERROR, "epoll_create1 failed: %s", strerror(errno));
237
297
  abort();
238
298
  }
299
+ add_epoll_fd_to_global_list(h->epoll_fd);
239
300
 
240
301
  ev.events = (uint32_t)(EPOLLIN | EPOLLET);
241
302
  ev.data.ptr = NULL;
@@ -255,4 +316,8 @@ static void epoll_become_multipoller(grpc_exec_ctx *exec_ctx,
255
316
  grpc_platform_become_multipoller_type grpc_platform_become_multipoller =
256
317
  epoll_become_multipoller;
257
318
 
319
+ #else /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
320
+
321
+ void grpc_remove_fd_from_all_epoll_sets(int fd) {}
322
+
258
323
  #endif /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -144,7 +144,9 @@ static void multipoll_with_poll_pollset_maybe_work_and_unlock(
144
144
  GRPC_SCHEDULING_END_BLOCKING_REGION;
145
145
 
146
146
  if (r < 0) {
147
- gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
147
+ if (errno != EINTR) {
148
+ gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
149
+ }
148
150
  for (i = 2; i < pfd_count; i++) {
149
151
  grpc_fd_end_poll(exec_ctx, &watchers[i], 0, 0);
150
152
  }
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -100,7 +100,7 @@ static void push_front_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
100
100
 
101
101
  void grpc_pollset_kick_ext(grpc_pollset *p,
102
102
  grpc_pollset_worker *specific_worker,
103
- gpr_uint32 flags) {
103
+ uint32_t flags) {
104
104
  GPR_TIMER_BEGIN("grpc_pollset_kick_ext", 0);
105
105
 
106
106
  /* pollset->mu already held */
@@ -116,7 +116,7 @@ void grpc_pollset_kick_ext(grpc_pollset *p,
116
116
  p->kicked_without_pollers = 1;
117
117
  GPR_TIMER_END("grpc_pollset_kick_ext.broadcast", 0);
118
118
  } else if (gpr_tls_get(&g_current_thread_worker) !=
119
- (gpr_intptr)specific_worker) {
119
+ (intptr_t)specific_worker) {
120
120
  GPR_TIMER_MARK("different_thread_worker", 0);
121
121
  if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
122
122
  specific_worker->reevaluate_polling_on_wakeup = 1;
@@ -131,19 +131,18 @@ void grpc_pollset_kick_ext(grpc_pollset *p,
131
131
  specific_worker->kicked_specifically = 1;
132
132
  grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
133
133
  }
134
- } else if (gpr_tls_get(&g_current_thread_poller) != (gpr_intptr)p) {
134
+ } else if (gpr_tls_get(&g_current_thread_poller) != (intptr_t)p) {
135
135
  GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
136
136
  GPR_TIMER_MARK("kick_anonymous", 0);
137
137
  specific_worker = pop_front_worker(p);
138
138
  if (specific_worker != NULL) {
139
- if (gpr_tls_get(&g_current_thread_worker) ==
140
- (gpr_intptr)specific_worker) {
139
+ if (gpr_tls_get(&g_current_thread_worker) == (intptr_t)specific_worker) {
141
140
  GPR_TIMER_MARK("kick_anonymous_not_self", 0);
142
141
  push_back_worker(p, specific_worker);
143
142
  specific_worker = pop_front_worker(p);
144
143
  if ((flags & GRPC_POLLSET_CAN_KICK_SELF) == 0 &&
145
144
  gpr_tls_get(&g_current_thread_worker) ==
146
- (gpr_intptr)specific_worker) {
145
+ (intptr_t)specific_worker) {
147
146
  push_back_worker(p, specific_worker);
148
147
  specific_worker = NULL;
149
148
  }
@@ -244,7 +243,7 @@ void grpc_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
244
243
  static void finish_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset) {
245
244
  GPR_ASSERT(grpc_closure_list_empty(pollset->idle_jobs));
246
245
  pollset->vtable->finish_shutdown(pollset);
247
- grpc_exec_ctx_enqueue(exec_ctx, pollset->shutdown_done, 1);
246
+ grpc_exec_ctx_enqueue(exec_ctx, pollset->shutdown_done, true, NULL);
248
247
  }
249
248
 
250
249
  void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
@@ -272,7 +271,7 @@ void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
272
271
  if (!grpc_pollset_has_workers(pollset) &&
273
272
  !grpc_closure_list_empty(pollset->idle_jobs)) {
274
273
  GPR_TIMER_MARK("grpc_pollset_work.idle_jobs", 0);
275
- grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs);
274
+ grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
276
275
  goto done;
277
276
  }
278
277
  /* Check alarms - these are a global resource so we just ping
@@ -307,9 +306,9 @@ void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
307
306
  if (!added_worker) {
308
307
  push_front_worker(pollset, worker);
309
308
  added_worker = 1;
310
- gpr_tls_set(&g_current_thread_worker, (gpr_intptr)worker);
309
+ gpr_tls_set(&g_current_thread_worker, (intptr_t)worker);
311
310
  }
312
- gpr_tls_set(&g_current_thread_poller, (gpr_intptr)pollset);
311
+ gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
313
312
  GPR_TIMER_BEGIN("maybe_work_and_unlock", 0);
314
313
  pollset->vtable->maybe_work_and_unlock(exec_ctx, pollset, worker,
315
314
  deadline, now);
@@ -366,7 +365,7 @@ void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
366
365
  * TODO(dklempner): Can we refactor the shutdown logic to avoid this? */
367
366
  gpr_mu_lock(&pollset->mu);
368
367
  } else if (!grpc_closure_list_empty(pollset->idle_jobs)) {
369
- grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs);
368
+ grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
370
369
  gpr_mu_unlock(&pollset->mu);
371
370
  grpc_exec_ctx_flush(exec_ctx);
372
371
  gpr_mu_lock(&pollset->mu);
@@ -382,7 +381,7 @@ void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
382
381
  pollset->shutdown_done = closure;
383
382
  grpc_pollset_kick(pollset, GRPC_POLLSET_KICK_BROADCAST);
384
383
  if (!grpc_pollset_has_workers(pollset)) {
385
- grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs);
384
+ grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
386
385
  }
387
386
  if (!pollset->called_shutdown && pollset->in_flight_cbs == 0 &&
388
387
  !grpc_pollset_has_workers(pollset)) {
@@ -394,7 +393,7 @@ void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
394
393
  int grpc_poll_deadline_to_millis_timeout(gpr_timespec deadline,
395
394
  gpr_timespec now) {
396
395
  gpr_timespec timeout;
397
- static const int max_spin_polling_us = 10;
396
+ static const int64_t max_spin_polling_us = 10;
398
397
  if (gpr_time_cmp(deadline, gpr_inf_future(deadline.clock_type)) == 0) {
399
398
  return -1;
400
399
  }
@@ -420,7 +419,8 @@ typedef struct grpc_unary_promote_args {
420
419
  grpc_closure promotion_closure;
421
420
  } grpc_unary_promote_args;
422
421
 
423
- static void basic_do_promote(grpc_exec_ctx *exec_ctx, void *args, int success) {
422
+ static void basic_do_promote(grpc_exec_ctx *exec_ctx, void *args,
423
+ bool success) {
424
424
  grpc_unary_promote_args *up_args = args;
425
425
  const grpc_pollset_vtable *original_vtable = up_args->original_vtable;
426
426
  grpc_pollset *pollset = up_args->pollset;