awesome-grpc-that-works 0.12.2 → 0.14.0.dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardopts +1 -0
- data/Makefile +5783 -22121
- data/include/grpc/byte_buffer.h +2 -83
- data/include/grpc/census.h +173 -121
- data/include/grpc/compression.h +14 -38
- data/include/grpc/grpc.h +85 -434
- data/include/grpc/grpc_security.h +76 -46
- data/include/grpc/grpc_zookeeper.h +1 -1
- data/include/grpc/impl/codegen/alloc.h +74 -0
- data/include/grpc/impl/codegen/atm.h +92 -0
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +72 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +87 -0
- data/include/grpc/impl/codegen/atm_win32.h +125 -0
- data/include/grpc/impl/codegen/byte_buffer.h +121 -0
- data/include/grpc/impl/codegen/compression_types.h +73 -0
- data/include/grpc/impl/codegen/connectivity_state.h +59 -0
- data/include/grpc/impl/codegen/grpc_types.h +378 -0
- data/include/grpc/impl/codegen/log.h +110 -0
- data/include/grpc/impl/codegen/port_platform.h +370 -0
- data/include/grpc/impl/codegen/propagation_bits.h +67 -0
- data/include/grpc/impl/codegen/slice.h +182 -0
- data/include/grpc/impl/codegen/slice_buffer.h +105 -0
- data/include/grpc/impl/codegen/status.h +163 -0
- data/include/grpc/impl/codegen/sync.h +316 -0
- data/include/grpc/impl/codegen/sync_generic.h +55 -0
- data/{src/core/census/context.h → include/grpc/impl/codegen/sync_posix.h} +11 -11
- data/include/grpc/impl/codegen/sync_win32.h +49 -0
- data/include/grpc/impl/codegen/time.h +130 -0
- data/include/grpc/status.h +2 -126
- data/include/grpc/support/alloc.h +2 -35
- data/include/grpc/support/atm.h +2 -55
- data/include/grpc/support/atm_gcc_atomic.h +5 -38
- data/include/grpc/support/atm_gcc_sync.h +2 -50
- data/include/grpc/support/atm_win32.h +2 -88
- data/include/grpc/support/avl.h +10 -9
- data/include/grpc/support/cmdline.h +15 -13
- data/include/grpc/support/cpu.h +5 -3
- data/include/grpc/support/histogram.h +23 -20
- data/include/grpc/support/host_port.h +5 -3
- data/include/grpc/support/log.h +2 -71
- data/include/grpc/support/log_win32.h +2 -2
- data/include/grpc/support/port_platform.h +2 -319
- data/include/grpc/support/slice.h +2 -145
- data/include/grpc/support/slice_buffer.h +2 -65
- data/include/grpc/support/string_util.h +3 -3
- data/include/grpc/support/subprocess.h +8 -6
- data/include/grpc/support/sync.h +2 -278
- data/include/grpc/support/sync_generic.h +2 -18
- data/include/grpc/support/sync_posix.h +2 -10
- data/include/grpc/support/sync_win32.h +2 -12
- data/include/grpc/support/thd.h +11 -11
- data/include/grpc/support/time.h +2 -91
- data/include/grpc/support/tls.h +1 -1
- data/include/grpc/support/tls_gcc.h +1 -1
- data/include/grpc/support/tls_msvc.h +1 -1
- data/include/grpc/support/tls_pthread.h +2 -2
- data/include/grpc/support/useful.h +3 -1
- data/src/boringssl/err_data.c +1252 -0
- data/src/core/census/context.c +471 -8
- data/src/core/census/grpc_filter.c +5 -5
- data/src/core/census/initialize.c +4 -7
- data/src/core/census/mlog.c +600 -0
- data/src/core/census/mlog.h +95 -0
- data/src/core/census/operation.c +2 -2
- data/src/core/census/placeholders.c +109 -0
- data/src/core/census/rpc_metric_id.h +6 -6
- data/src/core/census/tracing.c +1 -1
- data/src/core/channel/channel_args.c +71 -9
- data/src/core/channel/channel_args.h +7 -1
- data/src/core/channel/channel_stack.c +1 -1
- data/src/core/channel/client_channel.c +33 -30
- data/src/core/channel/client_uchannel.c +3 -3
- data/src/core/channel/compress_filter.c +8 -8
- data/src/core/channel/http_client_filter.c +4 -4
- data/src/core/channel/http_server_filter.c +11 -11
- data/src/core/channel/subchannel_call_holder.c +11 -11
- data/src/core/client_config/connector.c +3 -2
- data/src/core/client_config/connector.h +2 -2
- data/src/core/client_config/lb_policies/load_balancer_api.c +163 -0
- data/src/core/client_config/lb_policies/load_balancer_api.h +85 -0
- data/src/core/client_config/lb_policies/pick_first.c +57 -40
- data/src/core/client_config/lb_policies/round_robin.c +14 -15
- data/src/core/client_config/lb_policy.c +3 -3
- data/src/core/client_config/lb_policy.h +3 -2
- data/src/core/client_config/resolvers/dns_resolver.c +3 -3
- data/src/core/client_config/resolvers/sockaddr_resolver.c +5 -5
- data/src/core/client_config/subchannel.c +84 -39
- data/src/core/client_config/subchannel.h +15 -6
- data/src/core/client_config/subchannel_index.c +261 -0
- data/src/core/client_config/subchannel_index.h +77 -0
- data/src/core/compression/{algorithm.c → compression_algorithm.c} +3 -3
- data/src/core/httpcli/format_request.c +1 -1
- data/src/core/httpcli/httpcli.c +18 -16
- data/src/core/httpcli/httpcli.h +3 -2
- data/src/core/httpcli/httpcli_security_connector.c +9 -10
- data/src/core/httpcli/parser.c +7 -7
- data/src/core/httpcli/parser.h +1 -1
- data/src/core/iomgr/closure.c +7 -7
- data/src/core/iomgr/closure.h +6 -5
- data/src/core/iomgr/exec_ctx.c +12 -8
- data/src/core/iomgr/exec_ctx.h +12 -5
- data/src/core/iomgr/executor.c +4 -4
- data/src/core/iomgr/executor.h +2 -2
- data/src/core/iomgr/fd_posix.c +32 -19
- data/src/core/iomgr/fd_posix.h +7 -4
- data/src/core/iomgr/iocp_windows.c +7 -9
- data/src/core/iomgr/iomgr.c +2 -2
- data/src/core/iomgr/pollset.h +9 -10
- data/src/core/iomgr/pollset_multipoller_with_epoll.c +71 -5
- data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +9 -5
- data/src/core/iomgr/pollset_posix.c +44 -49
- data/src/core/iomgr/pollset_posix.h +14 -8
- data/src/core/iomgr/pollset_set.h +3 -9
- data/src/core/iomgr/pollset_set_posix.c +23 -3
- data/src/core/iomgr/pollset_set_posix.h +2 -18
- data/src/core/iomgr/pollset_set_windows.c +3 -3
- data/src/core/iomgr/pollset_set_windows.h +2 -2
- data/src/core/iomgr/pollset_windows.c +29 -37
- data/src/core/iomgr/pollset_windows.h +1 -5
- data/src/core/iomgr/resolve_address_posix.c +2 -2
- data/src/core/iomgr/resolve_address_windows.c +2 -2
- data/src/core/iomgr/sockaddr_utils.c +6 -6
- data/src/core/iomgr/sockaddr_win32.h +1 -6
- data/src/core/iomgr/tcp_client_posix.c +14 -12
- data/src/core/iomgr/tcp_client_windows.c +4 -4
- data/src/core/iomgr/tcp_posix.c +18 -10
- data/src/core/iomgr/tcp_posix.h +7 -1
- data/src/core/iomgr/tcp_server.h +40 -20
- data/src/core/iomgr/tcp_server_posix.c +106 -49
- data/src/core/iomgr/tcp_server_windows.c +98 -49
- data/src/core/iomgr/tcp_windows.c +11 -15
- data/src/core/iomgr/timer.c +10 -11
- data/src/core/iomgr/timer.h +22 -2
- data/src/core/iomgr/timer_heap.c +10 -10
- data/src/core/iomgr/timer_heap.h +2 -2
- data/src/core/iomgr/udp_server.c +7 -16
- data/src/core/iomgr/udp_server.h +2 -9
- data/src/core/iomgr/workqueue.h +2 -4
- data/src/core/iomgr/workqueue_posix.c +4 -3
- data/src/core/iomgr/workqueue_posix.h +3 -1
- data/src/core/json/json_reader.c +11 -12
- data/src/core/json/json_reader.h +4 -4
- data/src/core/json/json_string.c +19 -19
- data/src/core/json/json_writer.c +7 -9
- data/src/core/profiling/basic_timers.c +1 -1
- data/src/core/proto/grpc/lb/v0/load_balancer.pb.c +119 -0
- data/src/core/proto/grpc/lb/v0/load_balancer.pb.h +182 -0
- data/src/core/security/{base64.c → b64.c} +10 -10
- data/src/core/security/{base64.h → b64.h} +1 -1
- data/src/core/security/client_auth_filter.c +4 -5
- data/src/core/security/credentials.c +17 -10
- data/src/core/security/credentials.h +3 -3
- data/src/core/security/google_default_credentials.c +27 -22
- data/src/core/security/handshake.c +21 -12
- data/src/core/security/handshake.h +2 -1
- data/src/core/security/json_token.c +14 -8
- data/src/core/security/jwt_verifier.c +4 -3
- data/src/core/security/secure_endpoint.c +16 -16
- data/src/core/security/security_connector.c +131 -81
- data/src/core/security/security_connector.h +47 -27
- data/src/core/security/security_context.c +8 -3
- data/src/core/security/server_auth_filter.c +5 -5
- data/src/core/security/server_secure_chttp2.c +36 -37
- data/src/core/statistics/census_interface.h +2 -2
- data/src/core/statistics/census_rpc_stats.h +3 -3
- data/src/core/support/alloc.c +1 -1
- data/src/core/support/avl.c +2 -2
- data/src/core/support/cpu_posix.c +2 -2
- data/src/core/support/env_linux.c +28 -1
- data/src/core/support/env_win32.c +15 -7
- data/src/core/support/histogram.c +5 -5
- data/src/core/support/{file.c → load_file.c} +2 -2
- data/src/core/support/{file.h → load_file.h} +4 -12
- data/src/core/support/log_posix.c +1 -1
- data/src/core/support/log_win32.c +4 -3
- data/src/core/support/murmur_hash.c +11 -11
- data/src/core/support/murmur_hash.h +1 -1
- data/src/core/support/slice.c +11 -11
- data/src/core/support/slice_buffer.c +6 -6
- data/src/core/support/stack_lockfree.c +20 -10
- data/src/core/support/string.c +15 -15
- data/src/core/support/string.h +5 -5
- data/src/core/support/string_win32.c +5 -5
- data/src/core/support/subprocess_windows.c +141 -0
- data/src/core/support/sync.c +4 -4
- data/src/core/support/sync_posix.c +2 -2
- data/src/core/support/sync_win32.c +10 -5
- data/src/core/support/time.c +29 -29
- data/src/core/support/time_posix.c +15 -6
- data/src/core/support/time_precise.c +2 -2
- data/src/core/support/time_win32.c +18 -9
- data/src/core/support/tls_pthread.c +1 -1
- data/src/core/support/tmpfile.h +55 -0
- data/src/core/support/{file_posix.c → tmpfile_posix.c} +2 -2
- data/src/core/support/{file_win32.c → tmpfile_win32.c} +2 -2
- data/src/core/support/wrap_memcpy.c +53 -0
- data/src/core/surface/alarm.c +84 -0
- data/src/core/surface/byte_buffer_reader.c +1 -1
- data/src/core/surface/call.c +175 -116
- data/src/core/surface/call.h +2 -2
- data/src/core/surface/call_test_only.h +2 -2
- data/src/core/surface/channel.c +9 -9
- data/src/core/surface/channel.h +1 -1
- data/src/core/surface/channel_connectivity.c +3 -3
- data/src/core/surface/channel_create.c +4 -4
- data/src/core/surface/channel_ping.c +2 -2
- data/src/core/surface/completion_queue.c +84 -53
- data/src/core/surface/completion_queue.h +1 -1
- data/src/core/surface/init.c +11 -5
- data/src/core/surface/lame_client.c +2 -3
- data/src/core/surface/secure_channel_create.c +9 -10
- data/src/core/surface/server.c +30 -30
- data/src/core/surface/server_chttp2.c +8 -8
- data/src/core/surface/server_create.c +1 -4
- data/src/core/surface/validate_metadata.c +4 -4
- data/src/core/surface/version.c +2 -2
- data/src/core/transport/byte_stream.c +8 -6
- data/src/core/transport/byte_stream.h +6 -5
- data/src/core/transport/chttp2/bin_encoder.c +29 -29
- data/src/core/transport/chttp2/frame_data.c +29 -26
- data/src/core/transport/chttp2/frame_data.h +6 -6
- data/src/core/transport/chttp2/frame_goaway.c +30 -30
- data/src/core/transport/chttp2/frame_goaway.h +6 -6
- data/src/core/transport/chttp2/frame_ping.c +6 -6
- data/src/core/transport/chttp2/frame_ping.h +5 -5
- data/src/core/transport/chttp2/frame_rst_stream.c +18 -19
- data/src/core/transport/chttp2/frame_rst_stream.h +4 -4
- data/src/core/transport/chttp2/frame_settings.c +30 -30
- data/src/core/transport/chttp2/frame_settings.h +13 -13
- data/src/core/transport/chttp2/frame_window_update.c +17 -18
- data/src/core/transport/chttp2/frame_window_update.h +5 -7
- data/src/core/transport/chttp2/hpack_encoder.c +69 -73
- data/src/core/transport/chttp2/hpack_encoder.h +16 -16
- data/src/core/transport/chttp2/hpack_parser.c +167 -167
- data/src/core/transport/chttp2/hpack_parser.h +16 -16
- data/src/core/transport/chttp2/hpack_table.c +13 -13
- data/src/core/transport/chttp2/hpack_table.h +11 -11
- data/src/core/transport/chttp2/internal.h +103 -87
- data/src/core/transport/chttp2/parsing.c +25 -25
- data/src/core/transport/chttp2/stream_lists.c +38 -1
- data/src/core/transport/chttp2/stream_map.c +13 -14
- data/src/core/transport/chttp2/stream_map.h +6 -7
- data/src/core/transport/chttp2/timeout_encoding.c +19 -16
- data/src/core/transport/chttp2/varint.c +8 -9
- data/src/core/transport/chttp2/varint.h +7 -8
- data/src/core/transport/chttp2/writing.c +25 -22
- data/src/core/transport/chttp2_transport.c +147 -100
- data/src/core/transport/connectivity_state.c +6 -6
- data/src/core/transport/metadata.c +18 -18
- data/src/core/transport/metadata.h +5 -5
- data/src/core/transport/static_metadata.c +32 -33
- data/src/core/transport/static_metadata.h +8 -8
- data/src/core/transport/transport.c +6 -5
- data/src/core/transport/transport.h +17 -1
- data/src/core/tsi/fake_transport_security.c +7 -7
- data/src/core/tsi/ssl_transport_security.c +6 -4
- data/src/core/{iomgr/timer_internal.h → tsi/ssl_types.h} +19 -25
- data/src/ruby/ext/grpc/extconf.rb +52 -14
- data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -1
- data/src/ruby/ext/grpc/rb_call.c +7 -3
- data/src/ruby/ext/grpc/rb_call_credentials.c +4 -0
- data/src/ruby/ext/grpc/rb_channel.c +4 -2
- data/src/ruby/ext/grpc/rb_channel_args.c +3 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +3 -1
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +5 -0
- data/src/ruby/ext/grpc/rb_grpc.c +28 -19
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +562 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +846 -0
- data/src/ruby/ext/grpc/rb_loader.c +72 -0
- data/src/ruby/ext/grpc/rb_loader.h +40 -0
- data/src/ruby/ext/grpc/rb_server.c +3 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +4 -2
- data/src/ruby/lib/grpc/core/time_consts.rb +2 -2
- data/src/ruby/lib/grpc/errors.rb +2 -2
- data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
- data/src/ruby/lib/grpc/grpc.rb +34 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/README.md +2 -2
- data/src/ruby/pb/generate_proto_ruby.sh +2 -2
- data/src/ruby/pb/grpc/health/checker.rb +11 -11
- data/src/ruby/pb/grpc/health/v1/health.rb +28 -0
- data/src/ruby/pb/grpc/health/{v1alpha → v1}/health_services.rb +4 -4
- data/src/ruby/spec/client_server_spec.rb +2 -1
- data/src/ruby/spec/pb/health/checker_spec.rb +23 -37
- data/third_party/boringssl/crypto/aes/aes.c +1142 -0
- data/third_party/boringssl/crypto/aes/internal.h +87 -0
- data/third_party/boringssl/crypto/aes/mode_wrappers.c +108 -0
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +255 -0
- data/third_party/boringssl/crypto/asn1/a_bool.c +112 -0
- data/third_party/boringssl/crypto/asn1/a_bytes.c +317 -0
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +286 -0
- data/third_party/boringssl/crypto/asn1/a_dup.c +103 -0
- data/third_party/boringssl/crypto/asn1/a_enum.c +183 -0
- data/third_party/boringssl/crypto/asn1/a_gentm.c +255 -0
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +154 -0
- data/third_party/boringssl/crypto/asn1/a_int.c +456 -0
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +390 -0
- data/third_party/boringssl/crypto/asn1/a_object.c +412 -0
- data/third_party/boringssl/crypto/asn1/a_octet.c +70 -0
- data/third_party/boringssl/crypto/asn1/a_print.c +119 -0
- data/third_party/boringssl/crypto/asn1/a_strnid.c +286 -0
- data/third_party/boringssl/crypto/asn1/a_time.c +221 -0
- data/third_party/boringssl/crypto/asn1/a_type.c +160 -0
- data/third_party/boringssl/crypto/asn1/a_utctm.c +342 -0
- data/third_party/boringssl/crypto/asn1/a_utf8.c +210 -0
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +510 -0
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +73 -0
- data/third_party/boringssl/crypto/asn1/asn1_par.c +444 -0
- data/third_party/boringssl/crypto/asn1/asn_pack.c +104 -0
- data/third_party/boringssl/crypto/asn1/bio_asn1.c +496 -0
- data/third_party/boringssl/crypto/asn1/bio_ndef.c +254 -0
- data/third_party/boringssl/crypto/asn1/f_enum.c +206 -0
- data/third_party/boringssl/crypto/asn1/f_int.c +210 -0
- data/third_party/boringssl/crypto/asn1/f_string.c +204 -0
- data/third_party/boringssl/crypto/asn1/t_bitst.c +102 -0
- data/third_party/boringssl/crypto/asn1/t_pkey.c +112 -0
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +1342 -0
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +695 -0
- data/third_party/boringssl/crypto/asn1/tasn_fre.c +264 -0
- data/third_party/boringssl/crypto/asn1/tasn_new.c +398 -0
- data/third_party/boringssl/crypto/asn1/tasn_prn.c +642 -0
- data/third_party/boringssl/crypto/asn1/tasn_typ.c +137 -0
- data/third_party/boringssl/crypto/asn1/tasn_utl.c +266 -0
- data/third_party/boringssl/crypto/asn1/x_bignum.c +143 -0
- data/third_party/boringssl/crypto/asn1/x_long.c +182 -0
- data/third_party/boringssl/crypto/base64/base64.c +478 -0
- data/third_party/boringssl/crypto/bio/bio.c +608 -0
- data/third_party/boringssl/crypto/bio/bio_mem.c +327 -0
- data/third_party/boringssl/crypto/bio/buffer.c +496 -0
- data/third_party/boringssl/crypto/bio/connect.c +544 -0
- data/third_party/boringssl/crypto/bio/fd.c +270 -0
- data/third_party/boringssl/crypto/bio/file.c +349 -0
- data/third_party/boringssl/crypto/bio/hexdump.c +192 -0
- data/third_party/boringssl/crypto/bio/internal.h +108 -0
- data/third_party/boringssl/crypto/bio/pair.c +803 -0
- data/third_party/boringssl/crypto/bio/printf.c +119 -0
- data/third_party/boringssl/crypto/bio/socket.c +195 -0
- data/third_party/boringssl/crypto/bio/socket_helper.c +113 -0
- data/third_party/boringssl/crypto/bn/add.c +377 -0
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +599 -0
- data/third_party/boringssl/crypto/bn/bn.c +341 -0
- data/third_party/boringssl/crypto/bn/bn_asn1.c +93 -0
- data/third_party/boringssl/crypto/bn/cmp.c +200 -0
- data/third_party/boringssl/crypto/bn/convert.c +597 -0
- data/third_party/boringssl/crypto/bn/ctx.c +311 -0
- data/third_party/boringssl/crypto/bn/div.c +625 -0
- data/third_party/boringssl/crypto/bn/exponentiation.c +1544 -0
- data/third_party/boringssl/crypto/bn/gcd.c +711 -0
- data/third_party/boringssl/crypto/bn/generic.c +1019 -0
- data/third_party/boringssl/crypto/bn/internal.h +294 -0
- data/third_party/boringssl/crypto/bn/kronecker.c +175 -0
- data/third_party/boringssl/crypto/bn/montgomery.c +561 -0
- data/third_party/boringssl/crypto/bn/mul.c +888 -0
- data/third_party/boringssl/crypto/bn/prime.c +845 -0
- data/third_party/boringssl/crypto/bn/random.c +326 -0
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +326 -0
- data/third_party/boringssl/crypto/bn/rsaz_exp.h +56 -0
- data/third_party/boringssl/crypto/bn/shift.c +299 -0
- data/third_party/boringssl/crypto/bn/sqrt.c +505 -0
- data/third_party/boringssl/crypto/buf/buf.c +235 -0
- data/third_party/boringssl/crypto/bytestring/ber.c +221 -0
- data/third_party/boringssl/crypto/bytestring/cbb.c +411 -0
- data/third_party/boringssl/crypto/bytestring/cbs.c +415 -0
- data/third_party/boringssl/crypto/bytestring/internal.h +46 -0
- data/third_party/boringssl/crypto/chacha/chacha_generic.c +140 -0
- data/third_party/boringssl/crypto/chacha/chacha_vec.c +323 -0
- data/third_party/boringssl/crypto/cipher/aead.c +167 -0
- data/third_party/boringssl/crypto/cipher/cipher.c +652 -0
- data/third_party/boringssl/crypto/cipher/derive_key.c +154 -0
- data/third_party/boringssl/crypto/cipher/e_aes.c +1767 -0
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +311 -0
- data/third_party/boringssl/crypto/cipher/e_des.c +207 -0
- data/third_party/boringssl/crypto/cipher/e_null.c +85 -0
- data/third_party/boringssl/crypto/cipher/e_rc2.c +443 -0
- data/third_party/boringssl/crypto/cipher/e_rc4.c +87 -0
- data/third_party/boringssl/crypto/cipher/e_ssl3.c +463 -0
- data/third_party/boringssl/crypto/cipher/e_tls.c +673 -0
- data/third_party/boringssl/crypto/cipher/internal.h +164 -0
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +495 -0
- data/third_party/boringssl/crypto/cmac/cmac.c +239 -0
- data/third_party/boringssl/crypto/conf/conf.c +778 -0
- data/third_party/boringssl/crypto/conf/conf_def.h +127 -0
- data/third_party/boringssl/crypto/conf/internal.h +31 -0
- data/third_party/boringssl/crypto/cpu-arm.c +199 -0
- data/third_party/boringssl/crypto/cpu-intel.c +261 -0
- data/third_party/boringssl/crypto/crypto.c +140 -0
- data/third_party/boringssl/crypto/curve25519/curve25519.c +4897 -0
- data/third_party/boringssl/crypto/des/des.c +771 -0
- data/third_party/boringssl/crypto/des/internal.h +212 -0
- data/third_party/boringssl/crypto/dh/check.c +180 -0
- data/third_party/boringssl/crypto/dh/dh.c +463 -0
- data/third_party/boringssl/crypto/dh/dh_asn1.c +84 -0
- data/third_party/boringssl/crypto/dh/internal.h +80 -0
- data/third_party/boringssl/crypto/dh/params.c +301 -0
- data/third_party/boringssl/crypto/digest/digest.c +248 -0
- data/third_party/boringssl/crypto/digest/digests.c +321 -0
- data/third_party/boringssl/crypto/digest/internal.h +112 -0
- data/third_party/boringssl/crypto/digest/md32_common.h +322 -0
- data/third_party/boringssl/crypto/directory.h +66 -0
- data/third_party/boringssl/crypto/directory_posix.c +108 -0
- data/third_party/boringssl/crypto/directory_win.c +144 -0
- data/third_party/boringssl/crypto/dsa/dsa.c +908 -0
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +150 -0
- data/third_party/boringssl/crypto/dsa/internal.h +78 -0
- data/third_party/boringssl/crypto/ec/ec.c +889 -0
- data/third_party/boringssl/crypto/ec/ec_asn1.c +586 -0
- data/third_party/boringssl/crypto/ec/ec_key.c +482 -0
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +280 -0
- data/third_party/boringssl/crypto/ec/internal.h +318 -0
- data/third_party/boringssl/crypto/ec/oct.c +416 -0
- data/third_party/boringssl/crypto/ec/p224-64.c +1305 -0
- data/third_party/boringssl/crypto/ec/p256-64.c +1878 -0
- data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +9548 -0
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +596 -0
- data/third_party/boringssl/crypto/ec/simple.c +1313 -0
- data/third_party/boringssl/crypto/ec/util-64.c +183 -0
- data/third_party/boringssl/crypto/ec/wnaf.c +449 -0
- data/third_party/boringssl/crypto/ecdh/ecdh.c +153 -0
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +496 -0
- data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +240 -0
- data/third_party/boringssl/crypto/engine/engine.c +96 -0
- data/third_party/boringssl/crypto/err/err.c +756 -0
- data/third_party/boringssl/crypto/evp/algorithm.c +153 -0
- data/third_party/boringssl/crypto/evp/digestsign.c +159 -0
- data/third_party/boringssl/crypto/evp/evp.c +411 -0
- data/third_party/boringssl/crypto/evp/evp_asn1.c +179 -0
- data/third_party/boringssl/crypto/evp/evp_ctx.c +477 -0
- data/third_party/boringssl/crypto/evp/internal.h +278 -0
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +588 -0
- data/third_party/boringssl/crypto/evp/p_ec.c +283 -0
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +562 -0
- data/third_party/boringssl/crypto/evp/p_rsa.c +596 -0
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +737 -0
- data/third_party/boringssl/crypto/evp/pbkdf.c +151 -0
- data/third_party/boringssl/crypto/evp/sign.c +151 -0
- data/third_party/boringssl/crypto/ex_data.c +294 -0
- data/third_party/boringssl/crypto/hkdf/hkdf.c +89 -0
- data/third_party/boringssl/crypto/hmac/hmac.c +213 -0
- data/third_party/boringssl/crypto/internal.h +532 -0
- data/third_party/boringssl/crypto/lhash/lhash.c +346 -0
- data/third_party/boringssl/crypto/md4/md4.c +225 -0
- data/third_party/boringssl/crypto/md5/md5.c +275 -0
- data/third_party/boringssl/crypto/mem.c +200 -0
- data/third_party/boringssl/crypto/modes/cbc.c +216 -0
- data/third_party/boringssl/crypto/modes/cfb.c +231 -0
- data/third_party/boringssl/crypto/modes/ctr.c +226 -0
- data/third_party/boringssl/crypto/modes/gcm.c +1252 -0
- data/third_party/boringssl/crypto/modes/internal.h +370 -0
- data/third_party/boringssl/crypto/modes/ofb.c +108 -0
- data/third_party/boringssl/crypto/obj/obj.c +664 -0
- data/third_party/boringssl/crypto/obj/obj_dat.h +5257 -0
- data/third_party/boringssl/crypto/obj/obj_xref.c +124 -0
- data/third_party/boringssl/crypto/obj/obj_xref.h +96 -0
- data/third_party/boringssl/crypto/pem/pem_all.c +281 -0
- data/third_party/boringssl/crypto/pem/pem_info.c +404 -0
- data/third_party/boringssl/crypto/pem/pem_lib.c +835 -0
- data/third_party/boringssl/crypto/pem/pem_oth.c +89 -0
- data/third_party/boringssl/crypto/pem/pem_pk8.c +244 -0
- data/third_party/boringssl/crypto/pem/pem_pkey.c +312 -0
- data/third_party/boringssl/crypto/pem/pem_x509.c +65 -0
- data/third_party/boringssl/crypto/pem/pem_xaux.c +66 -0
- data/third_party/boringssl/crypto/pkcs8/internal.h +83 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +150 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +440 -0
- data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +85 -0
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +1217 -0
- data/third_party/boringssl/crypto/poly1305/poly1305.c +331 -0
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +301 -0
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +892 -0
- data/third_party/boringssl/crypto/rand/internal.h +32 -0
- data/third_party/boringssl/crypto/rand/rand.c +239 -0
- data/third_party/boringssl/crypto/rand/urandom.c +223 -0
- data/third_party/boringssl/crypto/rand/windows.c +56 -0
- data/third_party/boringssl/crypto/rc4/rc4.c +283 -0
- data/third_party/boringssl/crypto/refcount_c11.c +67 -0
- data/third_party/boringssl/crypto/refcount_lock.c +53 -0
- data/third_party/boringssl/crypto/rsa/blinding.c +462 -0
- data/third_party/boringssl/crypto/rsa/internal.h +164 -0
- data/third_party/boringssl/crypto/rsa/padding.c +711 -0
- data/third_party/boringssl/crypto/rsa/rsa.c +808 -0
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +473 -0
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +1138 -0
- data/third_party/boringssl/crypto/sha/sha1.c +337 -0
- data/third_party/boringssl/crypto/sha/sha256.c +327 -0
- data/third_party/boringssl/crypto/sha/sha512.c +607 -0
- data/third_party/boringssl/crypto/stack/stack.c +386 -0
- data/third_party/boringssl/crypto/test/scoped_types.h +137 -0
- data/third_party/boringssl/crypto/test/test_util.h +35 -0
- data/third_party/boringssl/crypto/thread.c +101 -0
- data/third_party/boringssl/crypto/thread_none.c +55 -0
- data/third_party/boringssl/crypto/thread_pthread.c +167 -0
- data/third_party/boringssl/crypto/thread_win.c +282 -0
- data/third_party/boringssl/crypto/time_support.c +212 -0
- data/third_party/boringssl/crypto/x509/a_digest.c +97 -0
- data/third_party/boringssl/crypto/x509/a_sign.c +136 -0
- data/third_party/boringssl/crypto/x509/a_strex.c +564 -0
- data/third_party/boringssl/crypto/x509/a_verify.c +133 -0
- data/third_party/boringssl/crypto/x509/asn1_gen.c +873 -0
- data/third_party/boringssl/crypto/x509/by_dir.c +491 -0
- data/third_party/boringssl/crypto/x509/by_file.c +295 -0
- data/third_party/boringssl/crypto/x509/charmap.h +15 -0
- data/third_party/boringssl/crypto/x509/i2d_pr.c +84 -0
- data/third_party/boringssl/crypto/x509/pkcs7.c +353 -0
- data/third_party/boringssl/crypto/x509/t_crl.c +129 -0
- data/third_party/boringssl/crypto/x509/t_req.c +246 -0
- data/third_party/boringssl/crypto/x509/t_x509.c +500 -0
- data/third_party/boringssl/crypto/x509/t_x509a.c +109 -0
- data/third_party/boringssl/crypto/x509/vpm_int.h +70 -0
- data/third_party/boringssl/crypto/x509/x509.c +152 -0
- data/third_party/boringssl/crypto/x509/x509_att.c +353 -0
- data/third_party/boringssl/crypto/x509/x509_cmp.c +490 -0
- data/third_party/boringssl/crypto/x509/x509_d2.c +105 -0
- data/third_party/boringssl/crypto/x509/x509_def.c +88 -0
- data/third_party/boringssl/crypto/x509/x509_ext.c +206 -0
- data/third_party/boringssl/crypto/x509/x509_lu.c +738 -0
- data/third_party/boringssl/crypto/x509/x509_obj.c +191 -0
- data/third_party/boringssl/crypto/x509/x509_r2x.c +113 -0
- data/third_party/boringssl/crypto/x509/x509_req.c +315 -0
- data/third_party/boringssl/crypto/x509/x509_set.c +154 -0
- data/third_party/boringssl/crypto/x509/x509_trs.c +304 -0
- data/third_party/boringssl/crypto/x509/x509_txt.c +209 -0
- data/third_party/boringssl/crypto/x509/x509_v3.c +271 -0
- data/third_party/boringssl/crypto/x509/x509_vfy.c +2456 -0
- data/third_party/boringssl/crypto/x509/x509_vpm.c +672 -0
- data/third_party/boringssl/crypto/x509/x509cset.c +172 -0
- data/third_party/boringssl/crypto/x509/x509name.c +381 -0
- data/third_party/boringssl/crypto/x509/x509rset.c +80 -0
- data/third_party/boringssl/crypto/x509/x509spki.c +135 -0
- data/third_party/boringssl/crypto/x509/x509type.c +128 -0
- data/third_party/boringssl/crypto/x509/x_algor.c +154 -0
- data/third_party/boringssl/crypto/x509/x_all.c +547 -0
- data/third_party/boringssl/crypto/x509/x_attrib.c +117 -0
- data/third_party/boringssl/crypto/x509/x_crl.c +560 -0
- data/third_party/boringssl/crypto/x509/x_exten.c +75 -0
- data/third_party/boringssl/crypto/x509/x_info.c +95 -0
- data/third_party/boringssl/crypto/x509/x_name.c +538 -0
- data/third_party/boringssl/crypto/x509/x_pkey.c +100 -0
- data/third_party/boringssl/crypto/x509/x_pubkey.c +384 -0
- data/third_party/boringssl/crypto/x509/x_req.c +112 -0
- data/third_party/boringssl/crypto/x509/x_sig.c +69 -0
- data/third_party/boringssl/crypto/x509/x_spki.c +78 -0
- data/third_party/boringssl/crypto/x509/x_val.c +69 -0
- data/third_party/boringssl/crypto/x509/x_x509.c +227 -0
- data/third_party/boringssl/crypto/x509/x_x509a.c +197 -0
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +129 -0
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +299 -0
- data/third_party/boringssl/crypto/x509v3/pcy_data.c +137 -0
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +212 -0
- data/third_party/boringssl/crypto/x509v3/pcy_lib.c +165 -0
- data/third_party/boringssl/crypto/x509v3/pcy_map.c +133 -0
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +197 -0
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +876 -0
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +212 -0
- data/third_party/boringssl/crypto/x509v3/v3_akeya.c +71 -0
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +622 -0
- data/third_party/boringssl/crypto/x509v3/v3_bcons.c +126 -0
- data/third_party/boringssl/crypto/x509v3/v3_bitst.c +141 -0
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +459 -0
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +475 -0
- data/third_party/boringssl/crypto/x509v3/v3_crld.c +616 -0
- data/third_party/boringssl/crypto/x509v3/v3_enum.c +98 -0
- data/third_party/boringssl/crypto/x509v3/v3_extku.c +145 -0
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +252 -0
- data/third_party/boringssl/crypto/x509v3/v3_ia5.c +117 -0
- data/third_party/boringssl/crypto/x509v3/v3_info.c +200 -0
- data/third_party/boringssl/crypto/x509v3/v3_int.c +87 -0
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +335 -0
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +510 -0
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +335 -0
- data/third_party/boringssl/crypto/x509v3/v3_pcia.c +56 -0
- data/third_party/boringssl/crypto/x509v3/v3_pcons.c +142 -0
- data/third_party/boringssl/crypto/x509v3/v3_pku.c +109 -0
- data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +156 -0
- data/third_party/boringssl/crypto/x509v3/v3_prn.c +207 -0
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +805 -0
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +148 -0
- data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +266 -0
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +1322 -0
- data/third_party/boringssl/include/openssl/aead.h +346 -0
- data/third_party/boringssl/include/openssl/aes.h +158 -0
- data/third_party/boringssl/include/openssl/arm_arch.h +127 -0
- data/third_party/boringssl/include/openssl/asn1.h +1168 -0
- data/third_party/boringssl/include/openssl/asn1_mac.h +75 -0
- data/third_party/boringssl/include/openssl/asn1t.h +906 -0
- data/third_party/boringssl/include/openssl/base.h +261 -0
- data/third_party/boringssl/include/openssl/base64.h +184 -0
- data/third_party/boringssl/include/openssl/bio.h +902 -0
- data/third_party/boringssl/include/openssl/blowfish.h +93 -0
- data/third_party/boringssl/include/openssl/bn.h +885 -0
- data/third_party/boringssl/include/openssl/buf.h +118 -0
- data/third_party/boringssl/include/openssl/buffer.h +18 -0
- data/third_party/boringssl/include/openssl/bytestring.h +360 -0
- data/third_party/boringssl/include/openssl/cast.h +96 -0
- data/third_party/boringssl/include/openssl/chacha.h +37 -0
- data/third_party/boringssl/include/openssl/cipher.h +571 -0
- data/third_party/boringssl/include/openssl/cmac.h +76 -0
- data/third_party/boringssl/include/openssl/conf.h +145 -0
- data/third_party/boringssl/include/openssl/cpu.h +184 -0
- data/third_party/boringssl/include/openssl/crypto.h +68 -0
- data/third_party/boringssl/include/openssl/curve25519.h +88 -0
- data/third_party/boringssl/include/openssl/des.h +177 -0
- data/third_party/boringssl/include/openssl/dh.h +238 -0
- data/third_party/boringssl/include/openssl/digest.h +258 -0
- data/third_party/boringssl/include/openssl/dsa.h +343 -0
- data/third_party/boringssl/include/openssl/dtls1.h +16 -0
- data/third_party/boringssl/include/openssl/ec.h +355 -0
- data/third_party/boringssl/include/openssl/ec_key.h +280 -0
- data/third_party/boringssl/include/openssl/ecdh.h +102 -0
- data/third_party/boringssl/include/openssl/ecdsa.h +206 -0
- data/third_party/boringssl/include/openssl/engine.h +98 -0
- data/third_party/boringssl/include/openssl/err.h +487 -0
- data/third_party/boringssl/include/openssl/evp.h +750 -0
- data/third_party/boringssl/include/openssl/ex_data.h +213 -0
- data/third_party/boringssl/include/openssl/hkdf.h +44 -0
- data/third_party/boringssl/include/openssl/hmac.h +160 -0
- data/third_party/boringssl/include/openssl/lhash.h +192 -0
- data/third_party/boringssl/include/openssl/lhash_macros.h +132 -0
- data/third_party/boringssl/include/openssl/md4.h +102 -0
- data/third_party/boringssl/include/openssl/md5.h +107 -0
- data/third_party/boringssl/include/openssl/mem.h +140 -0
- data/third_party/boringssl/include/openssl/obj.h +198 -0
- data/third_party/boringssl/include/openssl/obj_mac.h +4140 -0
- data/third_party/boringssl/include/openssl/objects.h +18 -0
- data/third_party/boringssl/include/openssl/opensslfeatures.h +60 -0
- data/third_party/boringssl/include/openssl/opensslv.h +18 -0
- data/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
- data/third_party/boringssl/include/openssl/pem.h +521 -0
- data/third_party/boringssl/include/openssl/pkcs12.h +18 -0
- data/third_party/boringssl/include/openssl/pkcs7.h +16 -0
- data/third_party/boringssl/include/openssl/pkcs8.h +220 -0
- data/third_party/boringssl/include/openssl/poly1305.h +51 -0
- data/third_party/boringssl/include/openssl/pqueue.h +146 -0
- data/third_party/boringssl/include/openssl/rand.h +113 -0
- data/third_party/boringssl/include/openssl/rc4.h +90 -0
- data/third_party/boringssl/include/openssl/rsa.h +637 -0
- data/third_party/boringssl/include/openssl/safestack.h +16 -0
- data/third_party/boringssl/include/openssl/sha.h +256 -0
- data/third_party/boringssl/include/openssl/srtp.h +18 -0
- data/third_party/boringssl/include/openssl/ssl.h +4466 -0
- data/third_party/boringssl/include/openssl/ssl3.h +441 -0
- data/third_party/boringssl/include/openssl/stack.h +298 -0
- data/third_party/boringssl/include/openssl/stack_macros.h +4190 -0
- data/third_party/boringssl/include/openssl/thread.h +173 -0
- data/third_party/boringssl/include/openssl/time_support.h +90 -0
- data/third_party/boringssl/include/openssl/tls1.h +653 -0
- data/third_party/boringssl/include/openssl/type_check.h +91 -0
- data/third_party/boringssl/include/openssl/x509.h +1258 -0
- data/third_party/boringssl/include/openssl/x509_vfy.h +611 -0
- data/third_party/boringssl/include/openssl/x509v3.h +798 -0
- data/third_party/boringssl/ssl/custom_extensions.c +257 -0
- data/third_party/boringssl/ssl/d1_both.c +880 -0
- data/third_party/boringssl/ssl/d1_clnt.c +566 -0
- data/third_party/boringssl/ssl/d1_lib.c +340 -0
- data/third_party/boringssl/ssl/d1_meth.c +130 -0
- data/third_party/boringssl/ssl/d1_pkt.c +578 -0
- data/third_party/boringssl/ssl/d1_srtp.c +234 -0
- data/third_party/boringssl/ssl/d1_srvr.c +485 -0
- data/third_party/boringssl/ssl/dtls_record.c +308 -0
- data/third_party/boringssl/ssl/internal.h +1276 -0
- data/third_party/boringssl/ssl/pqueue/pqueue.c +197 -0
- data/third_party/boringssl/ssl/s3_both.c +571 -0
- data/third_party/boringssl/ssl/s3_clnt.c +2241 -0
- data/third_party/boringssl/ssl/s3_enc.c +494 -0
- data/third_party/boringssl/ssl/s3_lib.c +587 -0
- data/third_party/boringssl/ssl/s3_meth.c +166 -0
- data/third_party/boringssl/ssl/s3_pkt.c +732 -0
- data/third_party/boringssl/ssl/s3_srvr.c +2536 -0
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +300 -0
- data/third_party/boringssl/ssl/ssl_asn1.c +718 -0
- data/third_party/boringssl/ssl/ssl_buffer.c +319 -0
- data/third_party/boringssl/ssl/ssl_cert.c +539 -0
- data/third_party/boringssl/ssl/ssl_cipher.c +2003 -0
- data/third_party/boringssl/ssl/ssl_file.c +633 -0
- data/third_party/boringssl/ssl/ssl_lib.c +2653 -0
- data/third_party/boringssl/ssl/ssl_rsa.c +423 -0
- data/third_party/boringssl/ssl/ssl_session.c +764 -0
- data/third_party/boringssl/ssl/ssl_stat.c +591 -0
- data/third_party/boringssl/ssl/t1_enc.c +708 -0
- data/third_party/boringssl/ssl/t1_lib.c +2905 -0
- data/third_party/boringssl/ssl/test/async_bio.h +45 -0
- data/third_party/boringssl/ssl/test/packeted_bio.h +44 -0
- data/third_party/boringssl/ssl/test/scoped_types.h +28 -0
- data/third_party/boringssl/ssl/test/test_config.h +108 -0
- data/third_party/boringssl/ssl/tls_record.c +342 -0
- data/third_party/nanopb/pb.h +547 -0
- data/third_party/nanopb/pb_common.c +97 -0
- data/third_party/nanopb/pb_common.h +42 -0
- data/third_party/nanopb/pb_decode.c +1319 -0
- data/third_party/nanopb/pb_decode.h +149 -0
- data/third_party/nanopb/pb_encode.c +690 -0
- data/third_party/nanopb/pb_encode.h +154 -0
- data/third_party/zlib/adler32.c +179 -0
- data/third_party/zlib/compress.c +80 -0
- data/third_party/zlib/crc32.c +425 -0
- data/third_party/zlib/crc32.h +441 -0
- data/third_party/zlib/deflate.c +1967 -0
- data/third_party/zlib/deflate.h +346 -0
- data/third_party/zlib/gzclose.c +25 -0
- data/third_party/zlib/gzguts.h +209 -0
- data/third_party/zlib/gzlib.c +634 -0
- data/third_party/zlib/gzread.c +594 -0
- data/third_party/zlib/gzwrite.c +577 -0
- data/third_party/zlib/infback.c +640 -0
- data/third_party/zlib/inffast.c +340 -0
- data/third_party/zlib/inffast.h +11 -0
- data/third_party/zlib/inffixed.h +94 -0
- data/third_party/zlib/inflate.c +1512 -0
- data/third_party/zlib/inflate.h +122 -0
- data/third_party/zlib/inftrees.c +306 -0
- data/third_party/zlib/inftrees.h +62 -0
- data/third_party/zlib/trees.c +1226 -0
- data/third_party/zlib/trees.h +128 -0
- data/third_party/zlib/uncompr.c +59 -0
- data/third_party/zlib/zconf.h +511 -0
- data/third_party/zlib/zlib.h +1768 -0
- data/third_party/zlib/zutil.c +324 -0
- data/third_party/zlib/zutil.h +253 -0
- metadata +504 -20
- data/Rakefile +0 -63
- data/src/ruby/pb/grpc/health/v1alpha/health.rb +0 -29
data/src/core/iomgr/exec_ctx.c
CHANGED
@@ -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
|
@@ -37,16 +37,16 @@
|
|
37
37
|
|
38
38
|
#include "src/core/profiling/timers.h"
|
39
39
|
|
40
|
-
|
41
|
-
|
40
|
+
bool grpc_exec_ctx_flush(grpc_exec_ctx *exec_ctx) {
|
41
|
+
bool did_something = 0;
|
42
42
|
GPR_TIMER_BEGIN("grpc_exec_ctx_flush", 0);
|
43
43
|
while (!grpc_closure_list_empty(exec_ctx->closure_list)) {
|
44
44
|
grpc_closure *c = exec_ctx->closure_list.head;
|
45
45
|
exec_ctx->closure_list.head = exec_ctx->closure_list.tail = NULL;
|
46
46
|
while (c != NULL) {
|
47
|
-
|
48
|
-
grpc_closure *next = (grpc_closure *)(c->final_data & ~(
|
49
|
-
did_something
|
47
|
+
bool success = (bool)(c->final_data & 1);
|
48
|
+
grpc_closure *next = (grpc_closure *)(c->final_data & ~(uintptr_t)1);
|
49
|
+
did_something = true;
|
50
50
|
GPR_TIMER_BEGIN("grpc_exec_ctx_flush.cb", 0);
|
51
51
|
c->cb(exec_ctx, c->cb_arg, success);
|
52
52
|
GPR_TIMER_END("grpc_exec_ctx_flush.cb", 0);
|
@@ -62,11 +62,15 @@ void grpc_exec_ctx_finish(grpc_exec_ctx *exec_ctx) {
|
|
62
62
|
}
|
63
63
|
|
64
64
|
void grpc_exec_ctx_enqueue(grpc_exec_ctx *exec_ctx, grpc_closure *closure,
|
65
|
-
|
65
|
+
bool success,
|
66
|
+
grpc_workqueue *offload_target_or_null) {
|
67
|
+
GPR_ASSERT(offload_target_or_null == NULL);
|
66
68
|
grpc_closure_list_add(&exec_ctx->closure_list, closure, success);
|
67
69
|
}
|
68
70
|
|
69
71
|
void grpc_exec_ctx_enqueue_list(grpc_exec_ctx *exec_ctx,
|
70
|
-
grpc_closure_list *list
|
72
|
+
grpc_closure_list *list,
|
73
|
+
grpc_workqueue *offload_target_or_null) {
|
74
|
+
GPR_ASSERT(offload_target_or_null == NULL);
|
71
75
|
grpc_closure_list_move(list, &exec_ctx->closure_list);
|
72
76
|
}
|
data/src/core/iomgr/exec_ctx.h
CHANGED
@@ -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
|
66
|
-
|
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
|
-
|
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
|
data/src/core/iomgr/executor.c
CHANGED
@@ -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,
|
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) {
|
data/src/core/iomgr/executor.h
CHANGED
@@ -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,
|
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();
|
data/src/core/iomgr/fd_posix.c
CHANGED
@@ -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
|
@@ -46,6 +46,8 @@
|
|
46
46
|
#include <grpc/support/string_util.h>
|
47
47
|
#include <grpc/support/useful.h>
|
48
48
|
|
49
|
+
#include "src/core/iomgr/pollset_posix.h"
|
50
|
+
|
49
51
|
#define CLOSURE_NOT_READY ((grpc_closure *)0)
|
50
52
|
#define CLOSURE_READY ((grpc_closure *)1)
|
51
53
|
|
@@ -101,6 +103,7 @@ static grpc_fd *alloc_fd(int fd) {
|
|
101
103
|
r->read_watcher = r->write_watcher = NULL;
|
102
104
|
r->on_done_closure = NULL;
|
103
105
|
r->closed = 0;
|
106
|
+
r->released = 0;
|
104
107
|
return r;
|
105
108
|
}
|
106
109
|
|
@@ -174,11 +177,11 @@ int grpc_fd_is_orphaned(grpc_fd *fd) {
|
|
174
177
|
}
|
175
178
|
|
176
179
|
static void pollset_kick_locked(grpc_fd_watcher *watcher) {
|
177
|
-
gpr_mu_lock(
|
180
|
+
gpr_mu_lock(&watcher->pollset->mu);
|
178
181
|
GPR_ASSERT(watcher->worker);
|
179
182
|
grpc_pollset_kick_ext(watcher->pollset, watcher->worker,
|
180
183
|
GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP);
|
181
|
-
gpr_mu_unlock(
|
184
|
+
gpr_mu_unlock(&watcher->pollset->mu);
|
182
185
|
}
|
183
186
|
|
184
187
|
static void maybe_wake_one_watcher_locked(grpc_fd *fd) {
|
@@ -210,6 +213,24 @@ static int has_watchers(grpc_fd *fd) {
|
|
210
213
|
fd->inactive_watcher_root.next != &fd->inactive_watcher_root;
|
211
214
|
}
|
212
215
|
|
216
|
+
static void close_fd_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
|
217
|
+
fd->closed = 1;
|
218
|
+
if (!fd->released) {
|
219
|
+
close(fd->fd);
|
220
|
+
} else {
|
221
|
+
grpc_remove_fd_from_all_epoll_sets(fd->fd);
|
222
|
+
}
|
223
|
+
grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, true, NULL);
|
224
|
+
}
|
225
|
+
|
226
|
+
int grpc_fd_wrapped_fd(grpc_fd *fd) {
|
227
|
+
if (fd->released || fd->closed) {
|
228
|
+
return -1;
|
229
|
+
} else {
|
230
|
+
return fd->fd;
|
231
|
+
}
|
232
|
+
}
|
233
|
+
|
213
234
|
void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
|
214
235
|
int *release_fd, const char *reason) {
|
215
236
|
fd->on_done_closure = on_done;
|
@@ -222,11 +243,7 @@ void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
|
|
222
243
|
gpr_mu_lock(&fd->mu);
|
223
244
|
REF_BY(fd, 1, reason); /* remove active status, but keep referenced */
|
224
245
|
if (!has_watchers(fd)) {
|
225
|
-
fd
|
226
|
-
if (!fd->released) {
|
227
|
-
close(fd->fd);
|
228
|
-
}
|
229
|
-
grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, 1);
|
246
|
+
close_fd_locked(exec_ctx, fd);
|
230
247
|
} else {
|
231
248
|
wake_all_watchers_locked(fd);
|
232
249
|
}
|
@@ -258,7 +275,7 @@ static void notify_on_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
|
|
258
275
|
} else if (*st == CLOSURE_READY) {
|
259
276
|
/* already ready ==> queue the closure to run immediately */
|
260
277
|
*st = CLOSURE_NOT_READY;
|
261
|
-
grpc_exec_ctx_enqueue(exec_ctx, closure, !fd->shutdown);
|
278
|
+
grpc_exec_ctx_enqueue(exec_ctx, closure, !fd->shutdown, NULL);
|
262
279
|
maybe_wake_one_watcher_locked(fd);
|
263
280
|
} else {
|
264
281
|
/* upcallptr was set to a different closure. This is an error! */
|
@@ -281,7 +298,7 @@ static int set_ready_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
|
|
281
298
|
return 0;
|
282
299
|
} else {
|
283
300
|
/* waiting ==> queue closure */
|
284
|
-
grpc_exec_ctx_enqueue(exec_ctx, *st, !fd->shutdown);
|
301
|
+
grpc_exec_ctx_enqueue(exec_ctx, *st, !fd->shutdown, NULL);
|
285
302
|
*st = CLOSURE_NOT_READY;
|
286
303
|
return 1;
|
287
304
|
}
|
@@ -318,10 +335,10 @@ void grpc_fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
|
|
318
335
|
gpr_mu_unlock(&fd->mu);
|
319
336
|
}
|
320
337
|
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
338
|
+
uint32_t grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
|
339
|
+
grpc_pollset_worker *worker, uint32_t read_mask,
|
340
|
+
uint32_t write_mask, grpc_fd_watcher *watcher) {
|
341
|
+
uint32_t mask = 0;
|
325
342
|
grpc_closure *cur;
|
326
343
|
int requested;
|
327
344
|
/* keep track of pollers that have requested our events, in case they change
|
@@ -416,11 +433,7 @@ void grpc_fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *watcher,
|
|
416
433
|
maybe_wake_one_watcher_locked(fd);
|
417
434
|
}
|
418
435
|
if (grpc_fd_is_orphaned(fd) && !has_watchers(fd) && !fd->closed) {
|
419
|
-
fd
|
420
|
-
if (!fd->released) {
|
421
|
-
close(fd->fd);
|
422
|
-
}
|
423
|
-
grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, 1);
|
436
|
+
close_fd_locked(exec_ctx, fd);
|
424
437
|
}
|
425
438
|
gpr_mu_unlock(&fd->mu);
|
426
439
|
|
data/src/core/iomgr/fd_posix.h
CHANGED
@@ -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
|
-
|
130
|
-
|
131
|
-
|
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
|
@@ -42,7 +42,7 @@
|
|
42
42
|
#include <grpc/support/alloc.h>
|
43
43
|
#include <grpc/support/thd.h>
|
44
44
|
|
45
|
-
#include "src/core/iomgr/
|
45
|
+
#include "src/core/iomgr/timer.h"
|
46
46
|
#include "src/core/iomgr/iocp_windows.h"
|
47
47
|
#include "src/core/iomgr/iomgr_internal.h"
|
48
48
|
#include "src/core/iomgr/socket_windows.h"
|
@@ -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
|
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,
|
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
|
-
(
|
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,
|
186
|
+
grpc_exec_ctx_enqueue(exec_ctx, closure, true, NULL);
|
189
187
|
} else {
|
190
188
|
info->closure = closure;
|
191
189
|
}
|
data/src/core/iomgr/iomgr.c
CHANGED
@@ -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,7 +43,7 @@
|
|
43
43
|
#include <grpc/support/thd.h>
|
44
44
|
|
45
45
|
#include "src/core/iomgr/iomgr_internal.h"
|
46
|
-
#include "src/core/iomgr/
|
46
|
+
#include "src/core/iomgr/timer.h"
|
47
47
|
#include "src/core/support/string.h"
|
48
48
|
|
49
49
|
static gpr_mu g_mu;
|
data/src/core/iomgr/pollset.h
CHANGED
@@ -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
|
@@ -35,8 +35,11 @@
|
|
35
35
|
#define GRPC_INTERNAL_CORE_IOMGR_POLLSET_H
|
36
36
|
|
37
37
|
#include <grpc/support/port_platform.h>
|
38
|
+
#include <grpc/support/sync.h>
|
38
39
|
#include <grpc/support/time.h>
|
39
40
|
|
41
|
+
#include "src/core/iomgr/exec_ctx.h"
|
42
|
+
|
40
43
|
#define GRPC_POLLSET_KICK_BROADCAST ((grpc_pollset_worker *)1)
|
41
44
|
|
42
45
|
/* A grpc_pollset is a set of file descriptors that a higher level item is
|
@@ -46,15 +49,11 @@
|
|
46
49
|
- a completion queue might keep a pollset with an entry for each transport
|
47
50
|
that is servicing a call that it's tracking */
|
48
51
|
|
49
|
-
|
50
|
-
|
51
|
-
#endif
|
52
|
-
|
53
|
-
#ifdef GPR_WIN32
|
54
|
-
#include "src/core/iomgr/pollset_windows.h"
|
55
|
-
#endif
|
52
|
+
typedef struct grpc_pollset grpc_pollset;
|
53
|
+
typedef struct grpc_pollset_worker grpc_pollset_worker;
|
56
54
|
|
57
|
-
|
55
|
+
size_t grpc_pollset_size(void);
|
56
|
+
void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu);
|
58
57
|
/* Begin shutting down the pollset, and call closure when done.
|
59
58
|
* GRPC_POLLSET_MU(pollset) must be held */
|
60
59
|
void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
|
@@ -83,7 +82,7 @@ void grpc_pollset_destroy(grpc_pollset *pollset);
|
|
83
82
|
pollset
|
84
83
|
lock */
|
85
84
|
void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
|
86
|
-
grpc_pollset_worker
|
85
|
+
grpc_pollset_worker **worker, gpr_timespec now,
|
87
86
|
gpr_timespec deadline);
|
88
87
|
|
89
88
|
/* Break one polling thread out of polling work for this pollset.
|
@@ -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,69 @@
|
|
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/
|
48
|
+
#include "src/core/iomgr/pollset_posix.h"
|
48
49
|
#include "src/core/profiling/timers.h"
|
50
|
+
#include "src/core/support/block_annotate.h"
|
51
|
+
|
52
|
+
struct epoll_fd_list {
|
53
|
+
int *epoll_fds;
|
54
|
+
size_t count;
|
55
|
+
size_t capacity;
|
56
|
+
};
|
57
|
+
|
58
|
+
static struct epoll_fd_list epoll_fd_global_list;
|
59
|
+
static gpr_once init_epoll_fd_list_mu = GPR_ONCE_INIT;
|
60
|
+
static gpr_mu epoll_fd_list_mu;
|
61
|
+
|
62
|
+
static void init_mu(void) { gpr_mu_init(&epoll_fd_list_mu); }
|
63
|
+
|
64
|
+
static void add_epoll_fd_to_global_list(int epoll_fd) {
|
65
|
+
gpr_once_init(&init_epoll_fd_list_mu, init_mu);
|
66
|
+
|
67
|
+
gpr_mu_lock(&epoll_fd_list_mu);
|
68
|
+
if (epoll_fd_global_list.count == epoll_fd_global_list.capacity) {
|
69
|
+
epoll_fd_global_list.capacity =
|
70
|
+
GPR_MAX((size_t)8, epoll_fd_global_list.capacity * 2);
|
71
|
+
epoll_fd_global_list.epoll_fds =
|
72
|
+
gpr_realloc(epoll_fd_global_list.epoll_fds,
|
73
|
+
epoll_fd_global_list.capacity * sizeof(int));
|
74
|
+
}
|
75
|
+
epoll_fd_global_list.epoll_fds[epoll_fd_global_list.count++] = epoll_fd;
|
76
|
+
gpr_mu_unlock(&epoll_fd_list_mu);
|
77
|
+
}
|
78
|
+
|
79
|
+
static void remove_epoll_fd_from_global_list(int epoll_fd) {
|
80
|
+
gpr_mu_lock(&epoll_fd_list_mu);
|
81
|
+
GPR_ASSERT(epoll_fd_global_list.count > 0);
|
82
|
+
for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
|
83
|
+
if (epoll_fd == epoll_fd_global_list.epoll_fds[i]) {
|
84
|
+
epoll_fd_global_list.epoll_fds[i] =
|
85
|
+
epoll_fd_global_list.epoll_fds[--(epoll_fd_global_list.count)];
|
86
|
+
break;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
gpr_mu_unlock(&epoll_fd_list_mu);
|
90
|
+
}
|
91
|
+
|
92
|
+
void grpc_remove_fd_from_all_epoll_sets(int fd) {
|
93
|
+
int err;
|
94
|
+
gpr_once_init(&init_epoll_fd_list_mu, init_mu);
|
95
|
+
gpr_mu_lock(&epoll_fd_list_mu);
|
96
|
+
if (epoll_fd_global_list.count == 0) {
|
97
|
+
gpr_mu_unlock(&epoll_fd_list_mu);
|
98
|
+
return;
|
99
|
+
}
|
100
|
+
for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
|
101
|
+
err = epoll_ctl(epoll_fd_global_list.epoll_fds[i], EPOLL_CTL_DEL, fd, NULL);
|
102
|
+
if (err < 0 && errno != ENOENT) {
|
103
|
+
gpr_log(GPR_ERROR, "epoll_ctl del for %d failed: %s", fd,
|
104
|
+
strerror(errno));
|
105
|
+
}
|
106
|
+
}
|
107
|
+
gpr_mu_unlock(&epoll_fd_list_mu);
|
108
|
+
}
|
49
109
|
|
50
110
|
typedef struct {
|
51
111
|
grpc_pollset *pollset;
|
@@ -82,7 +142,7 @@ static void finally_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
|
|
82
142
|
}
|
83
143
|
|
84
144
|
static void perform_delayed_add(grpc_exec_ctx *exec_ctx, void *arg,
|
85
|
-
|
145
|
+
bool iomgr_status) {
|
86
146
|
delayed_add *da = arg;
|
87
147
|
|
88
148
|
if (!grpc_fd_is_orphaned(da->fd)) {
|
@@ -95,7 +155,7 @@ static void perform_delayed_add(grpc_exec_ctx *exec_ctx, void *arg,
|
|
95
155
|
/* We don't care about this pollset anymore. */
|
96
156
|
if (da->pollset->in_flight_cbs == 0 && !da->pollset->called_shutdown) {
|
97
157
|
da->pollset->called_shutdown = 1;
|
98
|
-
grpc_exec_ctx_enqueue(exec_ctx, da->pollset->shutdown_done,
|
158
|
+
grpc_exec_ctx_enqueue(exec_ctx, da->pollset->shutdown_done, true, NULL);
|
99
159
|
}
|
100
160
|
}
|
101
161
|
gpr_mu_unlock(&da->pollset->mu);
|
@@ -119,7 +179,7 @@ static void multipoll_with_epoll_pollset_add_fd(grpc_exec_ctx *exec_ctx,
|
|
119
179
|
GRPC_FD_REF(fd, "delayed_add");
|
120
180
|
grpc_closure_init(&da->closure, perform_delayed_add, da);
|
121
181
|
pollset->in_flight_cbs++;
|
122
|
-
grpc_exec_ctx_enqueue(exec_ctx, &da->closure,
|
182
|
+
grpc_exec_ctx_enqueue(exec_ctx, &da->closure, true, NULL);
|
123
183
|
}
|
124
184
|
}
|
125
185
|
|
@@ -211,6 +271,7 @@ static void multipoll_with_epoll_pollset_finish_shutdown(
|
|
211
271
|
static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) {
|
212
272
|
pollset_hdr *h = pollset->data.ptr;
|
213
273
|
close(h->epoll_fd);
|
274
|
+
remove_epoll_fd_from_global_list(h->epoll_fd);
|
214
275
|
gpr_free(h);
|
215
276
|
}
|
216
277
|
|
@@ -236,6 +297,7 @@ static void epoll_become_multipoller(grpc_exec_ctx *exec_ctx,
|
|
236
297
|
gpr_log(GPR_ERROR, "epoll_create1 failed: %s", strerror(errno));
|
237
298
|
abort();
|
238
299
|
}
|
300
|
+
add_epoll_fd_to_global_list(h->epoll_fd);
|
239
301
|
|
240
302
|
ev.events = (uint32_t)(EPOLLIN | EPOLLET);
|
241
303
|
ev.data.ptr = NULL;
|
@@ -255,4 +317,8 @@ static void epoll_become_multipoller(grpc_exec_ctx *exec_ctx,
|
|
255
317
|
grpc_platform_become_multipoller_type grpc_platform_become_multipoller =
|
256
318
|
epoll_become_multipoller;
|
257
319
|
|
320
|
+
#else /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
|
321
|
+
|
322
|
+
void grpc_remove_fd_from_all_epoll_sets(int fd) {}
|
323
|
+
|
258
324
|
#endif /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
|