grpc 1.4.5 → 1.6.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +1235 -1100
- data/etc/roots.pem +0 -412
- data/include/grpc/byte_buffer.h +10 -25
- data/include/grpc/byte_buffer_reader.h +10 -25
- data/include/grpc/census.h +10 -25
- data/include/grpc/compression.h +10 -25
- data/include/grpc/grpc.h +15 -26
- data/include/grpc/grpc_cronet.h +10 -25
- data/include/grpc/grpc_posix.h +10 -25
- data/include/grpc/grpc_security.h +10 -25
- data/include/grpc/grpc_security_constants.h +10 -25
- data/include/grpc/impl/codegen/atm.h +11 -25
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +10 -25
- data/include/grpc/impl/codegen/atm_gcc_sync.h +10 -25
- data/include/grpc/impl/codegen/atm_windows.h +10 -25
- data/include/grpc/impl/codegen/byte_buffer_reader.h +11 -26
- data/include/grpc/impl/codegen/compression_types.h +12 -27
- data/include/grpc/impl/codegen/connectivity_state.h +10 -25
- data/include/grpc/impl/codegen/exec_ctx_fwd.h +10 -25
- data/include/grpc/impl/codegen/gpr_slice.h +10 -25
- data/include/grpc/impl/codegen/gpr_types.h +10 -25
- data/include/grpc/impl/codegen/grpc_types.h +42 -43
- data/include/grpc/impl/codegen/port_platform.h +10 -25
- data/include/grpc/impl/codegen/propagation_bits.h +10 -25
- data/include/grpc/impl/codegen/slice.h +13 -28
- data/include/grpc/impl/codegen/status.h +10 -25
- data/include/grpc/impl/codegen/sync.h +10 -25
- data/include/grpc/impl/codegen/sync_generic.h +10 -25
- data/include/grpc/impl/codegen/sync_posix.h +10 -25
- data/include/grpc/impl/codegen/sync_windows.h +10 -25
- data/include/grpc/load_reporting.h +10 -25
- data/include/grpc/slice.h +10 -25
- data/include/grpc/slice_buffer.h +10 -25
- data/include/grpc/status.h +10 -25
- data/include/grpc/support/alloc.h +10 -25
- data/include/grpc/support/atm.h +10 -25
- data/include/grpc/support/atm_gcc_atomic.h +10 -25
- data/include/grpc/support/atm_gcc_sync.h +10 -25
- data/include/grpc/support/atm_windows.h +10 -25
- data/include/grpc/support/avl.h +46 -49
- data/include/grpc/support/cmdline.h +10 -25
- data/include/grpc/support/cpu.h +10 -25
- data/include/grpc/support/histogram.h +10 -25
- data/include/grpc/support/host_port.h +10 -25
- data/include/grpc/support/log.h +10 -25
- data/include/grpc/support/log_windows.h +10 -25
- data/include/grpc/support/port_platform.h +10 -25
- data/include/grpc/support/string_util.h +10 -25
- data/include/grpc/support/subprocess.h +10 -25
- data/include/grpc/support/sync.h +10 -25
- data/include/grpc/support/sync_generic.h +10 -25
- data/include/grpc/support/sync_posix.h +10 -25
- data/include/grpc/support/sync_windows.h +10 -25
- data/include/grpc/support/thd.h +10 -25
- data/include/grpc/support/time.h +10 -25
- data/include/grpc/support/tls.h +10 -25
- data/include/grpc/support/tls_gcc.h +10 -25
- data/include/grpc/support/tls_msvc.h +10 -25
- data/include/grpc/support/tls_pthread.h +10 -25
- data/include/grpc/support/useful.h +10 -25
- data/include/grpc/support/workaround_list.h +11 -26
- data/src/boringssl/err_data.c +277 -259
- data/src/core/ext/census/aggregation.h +10 -25
- data/src/core/ext/census/base_resources.c +10 -25
- data/src/core/ext/census/base_resources.h +10 -25
- data/src/core/ext/census/census_interface.h +10 -25
- data/src/core/ext/census/census_rpc_stats.h +10 -25
- data/src/core/ext/census/context.c +10 -25
- data/src/core/ext/census/gen/census.pb.c +10 -25
- data/src/core/ext/census/gen/census.pb.h +10 -25
- data/src/core/ext/census/gen/trace_context.pb.c +10 -25
- data/src/core/ext/census/gen/trace_context.pb.h +10 -25
- data/src/core/ext/census/grpc_context.c +10 -25
- data/src/core/ext/census/grpc_filter.c +11 -26
- data/src/core/ext/census/grpc_filter.h +10 -25
- data/src/core/ext/census/grpc_plugin.c +10 -25
- data/src/core/ext/census/initialize.c +10 -25
- data/src/core/ext/census/intrusive_hash_map.c +10 -25
- data/src/core/ext/census/intrusive_hash_map.h +10 -25
- data/src/core/ext/census/intrusive_hash_map_internal.h +10 -25
- data/src/core/ext/census/mlog.c +10 -25
- data/src/core/ext/census/mlog.h +10 -25
- data/src/core/ext/census/operation.c +10 -25
- data/src/core/ext/census/placeholders.c +10 -25
- data/src/core/ext/census/resource.c +10 -25
- data/src/core/ext/census/resource.h +10 -25
- data/src/core/ext/census/rpc_metric_id.h +10 -25
- data/src/core/ext/census/trace_context.c +10 -25
- data/src/core/ext/census/trace_context.h +10 -25
- data/src/core/ext/census/trace_label.h +10 -25
- data/src/core/ext/census/trace_propagation.h +10 -25
- data/src/core/ext/census/trace_status.h +10 -25
- data/src/core/ext/census/trace_string.h +10 -25
- data/src/core/ext/census/tracing.c +10 -26
- data/src/core/ext/census/tracing.h +10 -25
- data/src/core/ext/filters/client_channel/channel_connectivity.c +20 -33
- data/src/core/ext/filters/client_channel/client_channel.c +617 -520
- data/src/core/ext/filters/client_channel/client_channel.h +15 -28
- data/src/core/ext/filters/client_channel/client_channel_factory.c +13 -31
- data/src/core/ext/filters/client_channel/client_channel_factory.h +10 -25
- data/src/core/ext/filters/client_channel/client_channel_plugin.c +16 -29
- data/src/core/ext/filters/client_channel/connector.c +10 -25
- data/src/core/ext/filters/client_channel/connector.h +10 -25
- data/src/core/ext/filters/client_channel/http_connect_handshaker.c +15 -30
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -25
- data/src/core/ext/filters/client_channel/http_proxy.c +112 -38
- data/src/core/ext/filters/client_channel/http_proxy.h +10 -25
- data/src/core/ext/filters/client_channel/lb_policy.c +32 -36
- data/src/core/ext/filters/client_channel/lb_policy.h +24 -27
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.c +14 -30
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +10 -25
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.c +464 -279
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +10 -25
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +15 -28
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.c +40 -48
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.c +65 -49
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +31 -31
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.c +47 -32
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +11 -26
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +13 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +27 -21
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +373 -136
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +504 -279
- data/src/core/ext/filters/client_channel/lb_policy_factory.c +12 -31
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +12 -27
- data/src/core/ext/filters/client_channel/lb_policy_registry.c +10 -25
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +10 -25
- data/src/core/ext/filters/client_channel/parse_address.c +10 -25
- data/src/core/ext/filters/client_channel/parse_address.h +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper.c +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper.h +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.c +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +10 -25
- data/src/core/ext/filters/client_channel/resolver.c +33 -38
- data/src/core/ext/filters/client_channel/resolver.h +19 -30
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.c +153 -50
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +14 -27
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c +33 -30
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.c +326 -116
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +35 -36
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +60 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.c +19 -34
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.c +254 -0
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +60 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.c +16 -28
- data/src/core/ext/filters/client_channel/resolver_factory.c +10 -25
- data/src/core/ext/filters/client_channel/resolver_factory.h +10 -25
- data/src/core/ext/filters/client_channel/resolver_registry.c +10 -25
- data/src/core/ext/filters/client_channel/resolver_registry.h +10 -25
- data/src/core/ext/filters/client_channel/retry_throttle.c +23 -34
- data/src/core/ext/filters/client_channel/retry_throttle.h +10 -25
- data/src/core/ext/filters/client_channel/subchannel.c +33 -55
- data/src/core/ext/filters/client_channel/subchannel.h +16 -26
- data/src/core/ext/filters/client_channel/subchannel_index.c +55 -92
- data/src/core/ext/filters/client_channel/subchannel_index.h +26 -29
- data/src/core/ext/filters/client_channel/uri_parser.c +10 -25
- data/src/core/ext/filters/client_channel/uri_parser.h +10 -25
- data/src/core/ext/filters/deadline/deadline_filter.c +30 -45
- data/src/core/ext/filters/deadline/deadline_filter.h +10 -25
- data/src/core/ext/filters/http/client/http_client_filter.c +255 -294
- data/src/core/ext/filters/http/client/http_client_filter.h +10 -25
- data/src/core/ext/filters/http/http_filters_plugin.c +11 -26
- data/src/core/ext/filters/http/message_compress/message_compress_filter.c +133 -105
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +10 -25
- data/src/core/ext/filters/http/server/http_server_filter.c +17 -32
- data/src/core/ext/filters/http/server/http_server_filter.h +10 -25
- data/src/core/ext/filters/load_reporting/load_reporting.c +11 -30
- data/src/core/ext/filters/load_reporting/load_reporting.h +10 -25
- data/src/core/ext/filters/load_reporting/load_reporting_filter.c +11 -26
- data/src/core/ext/filters/load_reporting/load_reporting_filter.h +10 -25
- data/src/core/ext/filters/max_age/max_age_filter.c +28 -43
- data/src/core/ext/filters/max_age/max_age_filter.h +10 -25
- data/src/core/ext/filters/message_size/message_size_filter.c +24 -37
- data/src/core/ext/filters/message_size/message_size_filter.h +10 -25
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.c +16 -31
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +10 -25
- data/src/core/ext/filters/workarounds/workaround_utils.c +12 -26
- data/src/core/ext/filters/workarounds/workaround_utils.h +11 -26
- data/src/core/ext/transport/chttp2/alpn/alpn.c +10 -25
- data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -25
- data/src/core/ext/transport/chttp2/client/chttp2_connector.c +13 -28
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +10 -25
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.c +13 -30
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c +12 -29
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c +13 -30
- data/src/core/ext/transport/chttp2/server/chttp2_server.c +11 -26
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -25
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c +10 -25
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c +10 -25
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c +10 -25
- data/src/core/ext/transport/chttp2/transport/bin_decoder.c +11 -25
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +10 -25
- data/src/core/ext/transport/chttp2/transport/bin_encoder.c +10 -25
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +10 -25
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +15 -27
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.c +421 -443
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -25
- data/src/core/ext/transport/chttp2/transport/flow_control.c +500 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_data.c +20 -28
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_goaway.c +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_ping.c +11 -26
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.c +11 -26
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_settings.c +16 -29
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_window_update.c +17 -33
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +10 -25
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.c +18 -31
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +12 -25
- data/src/core/ext/transport/chttp2/transport/hpack_parser.c +15 -30
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.c +10 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +10 -25
- data/src/core/ext/transport/chttp2/transport/http2_settings.c +10 -25
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -25
- data/src/core/ext/transport/chttp2/transport/huffsyms.c +10 -25
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +10 -25
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.c +10 -25
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +10 -25
- data/src/core/ext/transport/chttp2/transport/internal.h +191 -179
- data/src/core/ext/transport/chttp2/transport/parsing.c +33 -102
- data/src/core/ext/transport/chttp2/transport/stream_lists.c +26 -28
- data/src/core/ext/transport/chttp2/transport/stream_map.c +10 -25
- data/src/core/ext/transport/chttp2/transport/stream_map.h +10 -25
- data/src/core/ext/transport/chttp2/transport/varint.c +14 -25
- data/src/core/ext/transport/chttp2/transport/varint.h +10 -25
- data/src/core/ext/transport/chttp2/transport/writing.c +164 -106
- data/src/core/ext/transport/inproc/inproc_plugin.c +29 -0
- data/src/core/ext/transport/inproc/inproc_transport.c +1303 -0
- data/src/core/ext/transport/inproc/inproc_transport.h +41 -0
- data/src/core/lib/channel/channel_args.c +52 -27
- data/src/core/lib/channel/channel_args.h +18 -27
- data/src/core/lib/channel/channel_stack.c +11 -26
- data/src/core/lib/channel/channel_stack.h +12 -27
- data/src/core/lib/channel/channel_stack_builder.c +11 -26
- data/src/core/lib/channel/channel_stack_builder.h +10 -25
- data/src/core/lib/channel/connected_channel.c +10 -25
- data/src/core/lib/channel/connected_channel.h +10 -25
- data/src/core/lib/channel/context.h +10 -25
- data/src/core/lib/channel/handshaker.c +14 -29
- data/src/core/lib/channel/handshaker.h +10 -25
- data/src/core/lib/channel/handshaker_factory.c +10 -25
- data/src/core/lib/channel/handshaker_factory.h +10 -25
- data/src/core/lib/channel/handshaker_registry.c +10 -25
- data/src/core/lib/channel/handshaker_registry.h +10 -25
- data/src/core/lib/compression/algorithm_metadata.h +10 -25
- data/src/core/lib/compression/compression.c +10 -25
- data/src/core/lib/compression/message_compress.c +10 -25
- data/src/core/lib/compression/message_compress.h +10 -25
- data/src/core/lib/compression/stream_compression.c +191 -0
- data/src/core/lib/compression/stream_compression.h +90 -0
- data/src/core/lib/debug/trace.c +28 -29
- data/src/core/lib/debug/trace.h +16 -30
- data/src/core/lib/http/format_request.c +10 -25
- data/src/core/lib/http/format_request.h +10 -25
- data/src/core/lib/http/httpcli.c +19 -35
- data/src/core/lib/http/httpcli.h +10 -25
- data/src/core/lib/http/httpcli_security_connector.c +17 -30
- data/src/core/lib/http/parser.c +11 -26
- data/src/core/lib/http/parser.h +10 -25
- data/src/core/lib/iomgr/closure.c +62 -25
- data/src/core/lib/iomgr/closure.h +81 -26
- data/src/core/lib/iomgr/combiner.c +103 -200
- data/src/core/lib/iomgr/combiner.h +14 -32
- data/src/core/lib/iomgr/endpoint.c +10 -29
- data/src/core/lib/iomgr/endpoint.h +10 -29
- data/src/core/lib/iomgr/endpoint_pair.h +10 -25
- data/src/core/lib/iomgr/endpoint_pair_posix.c +10 -25
- data/src/core/lib/iomgr/endpoint_pair_uv.c +10 -25
- data/src/core/lib/iomgr/endpoint_pair_windows.c +10 -25
- data/src/core/lib/iomgr/error.c +45 -46
- data/src/core/lib/iomgr/error.h +21 -34
- data/src/core/lib/iomgr/error_internal.h +10 -25
- data/src/core/lib/iomgr/ev_epoll1_linux.c +279 -179
- data/src/core/lib/iomgr/ev_epoll1_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epoll_limited_pollers_linux.c +75 -264
- data/src/core/lib/iomgr/ev_epoll_limited_pollers_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epoll_thread_pool_linux.c +44 -199
- data/src/core/lib/iomgr/ev_epoll_thread_pool_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epollex_linux.c +184 -247
- data/src/core/lib/iomgr/ev_epollex_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epollsig_linux.c +116 -323
- data/src/core/lib/iomgr/ev_epollsig_linux.h +10 -25
- data/src/core/lib/iomgr/ev_poll_posix.c +328 -184
- data/src/core/lib/iomgr/ev_poll_posix.h +10 -25
- data/src/core/lib/iomgr/ev_posix.c +25 -56
- data/src/core/lib/iomgr/ev_posix.h +15 -44
- data/src/core/lib/iomgr/ev_windows.c +11 -26
- data/src/core/lib/iomgr/exec_ctx.c +36 -45
- data/src/core/lib/iomgr/exec_ctx.h +10 -25
- data/src/core/lib/iomgr/executor.c +152 -127
- data/src/core/lib/iomgr/executor.h +18 -26
- data/src/core/lib/iomgr/gethostname.h +26 -0
- data/src/core/lib/iomgr/gethostname_fallback.c +27 -0
- data/src/core/lib/iomgr/gethostname_host_name_max.c +37 -0
- data/src/core/lib/iomgr/gethostname_sysconf.c +37 -0
- data/src/core/lib/iomgr/iocp_windows.c +10 -25
- data/src/core/lib/iomgr/iocp_windows.h +10 -25
- data/src/core/lib/iomgr/iomgr.c +17 -28
- data/src/core/lib/iomgr/iomgr.h +12 -27
- data/src/core/lib/iomgr/iomgr_internal.h +10 -25
- data/src/core/lib/iomgr/iomgr_posix.c +11 -26
- data/src/core/lib/iomgr/iomgr_posix.h +10 -25
- data/src/core/lib/iomgr/iomgr_uv.c +19 -26
- data/src/core/lib/iomgr/iomgr_uv.h +37 -0
- data/src/core/lib/iomgr/iomgr_windows.c +10 -25
- data/src/core/lib/iomgr/is_epollexclusive_available.c +10 -25
- data/src/core/lib/iomgr/is_epollexclusive_available.h +10 -25
- data/src/core/lib/iomgr/load_file.c +10 -25
- data/src/core/lib/iomgr/load_file.h +10 -25
- data/src/core/lib/iomgr/lockfree_event.c +22 -35
- data/src/core/lib/iomgr/lockfree_event.h +13 -27
- data/src/core/lib/iomgr/nameser.h +104 -0
- data/src/core/lib/iomgr/network_status_tracker.c +10 -25
- data/src/core/lib/iomgr/network_status_tracker.h +10 -25
- data/src/core/lib/iomgr/polling_entity.c +10 -25
- data/src/core/lib/iomgr/polling_entity.h +14 -34
- data/src/core/lib/iomgr/pollset.h +14 -25
- data/src/core/lib/iomgr/pollset_set.h +10 -25
- data/src/core/lib/iomgr/pollset_set_uv.c +10 -25
- data/src/core/lib/iomgr/pollset_set_windows.c +10 -25
- data/src/core/lib/iomgr/pollset_set_windows.h +10 -25
- data/src/core/lib/iomgr/pollset_uv.c +25 -26
- data/src/core/lib/iomgr/pollset_uv.h +10 -25
- data/src/core/lib/iomgr/pollset_windows.c +17 -27
- data/src/core/lib/iomgr/pollset_windows.h +10 -25
- data/src/core/lib/iomgr/port.h +24 -25
- data/src/core/lib/iomgr/resolve_address.h +10 -25
- data/src/core/lib/iomgr/resolve_address_posix.c +13 -28
- data/src/core/lib/iomgr/resolve_address_uv.c +31 -35
- data/src/core/lib/iomgr/resolve_address_windows.c +13 -28
- data/src/core/lib/iomgr/resource_quota.c +52 -67
- data/src/core/lib/iomgr/resource_quota.h +10 -25
- data/src/core/lib/iomgr/sockaddr.h +10 -25
- data/src/core/lib/iomgr/sockaddr_posix.h +10 -25
- data/src/core/lib/iomgr/sockaddr_utils.c +15 -25
- data/src/core/lib/iomgr/sockaddr_utils.h +12 -25
- data/src/core/lib/iomgr/sockaddr_windows.h +10 -25
- data/src/core/lib/iomgr/socket_factory_posix.c +13 -31
- data/src/core/lib/iomgr/socket_factory_posix.h +10 -25
- data/src/core/lib/iomgr/socket_mutator.c +14 -31
- data/src/core/lib/iomgr/socket_mutator.h +10 -25
- data/src/core/lib/iomgr/socket_utils.h +10 -25
- data/src/core/lib/iomgr/socket_utils_common_posix.c +10 -25
- data/src/core/lib/iomgr/socket_utils_linux.c +10 -25
- data/src/core/lib/iomgr/socket_utils_posix.c +10 -25
- data/src/core/lib/iomgr/socket_utils_posix.h +10 -25
- data/src/core/lib/iomgr/socket_utils_uv.c +10 -25
- data/src/core/lib/iomgr/socket_utils_windows.c +10 -25
- data/src/core/lib/iomgr/socket_windows.c +12 -27
- data/src/core/lib/iomgr/socket_windows.h +10 -25
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +10 -25
- data/src/core/lib/iomgr/tcp_client.h +10 -25
- data/src/core/lib/iomgr/tcp_client_posix.c +21 -34
- data/src/core/lib/iomgr/tcp_client_posix.h +10 -25
- data/src/core/lib/iomgr/tcp_client_uv.c +18 -27
- data/src/core/lib/iomgr/tcp_client_windows.c +14 -29
- data/src/core/lib/iomgr/tcp_posix.c +36 -55
- data/src/core/lib/iomgr/tcp_posix.h +10 -25
- data/src/core/lib/iomgr/tcp_server.h +10 -25
- data/src/core/lib/iomgr/tcp_server_posix.c +16 -31
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +10 -25
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.c +11 -26
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.c +10 -25
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.c +10 -25
- data/src/core/lib/iomgr/tcp_server_uv.c +103 -64
- data/src/core/lib/iomgr/tcp_server_windows.c +14 -29
- data/src/core/lib/iomgr/tcp_uv.c +41 -45
- data/src/core/lib/iomgr/tcp_uv.h +10 -25
- data/src/core/lib/iomgr/tcp_windows.c +39 -53
- data/src/core/lib/iomgr/tcp_windows.h +10 -25
- data/src/core/lib/iomgr/time_averaged_stats.c +10 -25
- data/src/core/lib/iomgr/time_averaged_stats.h +10 -25
- data/src/core/lib/iomgr/timer.h +18 -27
- data/src/core/lib/iomgr/timer_generic.c +91 -87
- data/src/core/lib/iomgr/timer_generic.h +10 -25
- data/src/core/lib/iomgr/timer_heap.c +10 -25
- data/src/core/lib/iomgr/timer_heap.h +10 -25
- data/src/core/lib/iomgr/timer_manager.c +178 -100
- data/src/core/lib/iomgr/timer_manager.h +10 -25
- data/src/core/lib/iomgr/timer_uv.c +23 -33
- data/src/core/lib/iomgr/timer_uv.h +10 -25
- data/src/core/lib/iomgr/udp_server.c +17 -32
- data/src/core/lib/iomgr/udp_server.h +10 -25
- data/src/core/lib/iomgr/unix_sockets_posix.c +10 -25
- data/src/core/lib/iomgr/unix_sockets_posix.h +10 -25
- data/src/core/lib/iomgr/unix_sockets_posix_noop.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_cv.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_cv.h +13 -28
- data/src/core/lib/iomgr/wakeup_fd_eventfd.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_nospecial.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_pipe.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +10 -25
- data/src/core/lib/iomgr/wakeup_fd_posix.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_posix.h +10 -25
- data/src/core/lib/json/json.c +10 -25
- data/src/core/lib/json/json.h +10 -25
- data/src/core/lib/json/json_common.h +10 -25
- data/src/core/lib/json/json_reader.c +11 -25
- data/src/core/lib/json/json_reader.h +10 -25
- data/src/core/lib/json/json_string.c +10 -25
- data/src/core/lib/json/json_writer.c +10 -25
- data/src/core/lib/json/json_writer.h +10 -25
- data/src/core/lib/profiling/basic_timers.c +10 -25
- data/src/core/lib/profiling/stap_timers.c +10 -25
- data/src/core/lib/profiling/timers.h +10 -25
- data/src/core/lib/security/context/security_context.c +32 -40
- data/src/core/lib/security/context/security_context.h +15 -26
- data/src/core/lib/security/credentials/composite/composite_credentials.c +76 -81
- data/src/core/lib/security/credentials/composite/composite_credentials.h +10 -25
- data/src/core/lib/security/credentials/credentials.c +29 -49
- data/src/core/lib/security/credentials/credentials.h +48 -61
- data/src/core/lib/security/credentials/credentials_metadata.c +34 -78
- data/src/core/lib/security/credentials/fake/fake_credentials.c +33 -56
- data/src/core/lib/security/credentials/fake/fake_credentials.h +12 -27
- data/src/core/lib/security/credentials/google_default/credentials_generic.c +10 -25
- data/src/core/lib/security/credentials/google_default/google_default_credentials.c +12 -27
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +10 -25
- data/src/core/lib/security/credentials/iam/iam_credentials.c +40 -40
- data/src/core/lib/security/credentials/iam/iam_credentials.h +11 -26
- data/src/core/lib/security/credentials/jwt/json_token.c +10 -25
- data/src/core/lib/security/credentials/jwt/json_token.h +10 -25
- data/src/core/lib/security/credentials/jwt/jwt_credentials.c +45 -48
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -26
- data/src/core/lib/security/credentials/jwt/jwt_verifier.c +53 -33
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +10 -25
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.c +155 -87
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +24 -28
- data/src/core/lib/security/credentials/plugin/plugin_credentials.c +118 -82
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +24 -27
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +13 -32
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +10 -25
- data/src/core/lib/security/transport/auth_filters.h +10 -25
- data/src/core/lib/security/transport/client_auth_filter.c +217 -112
- data/src/core/lib/security/transport/lb_targets_info.c +16 -32
- data/src/core/lib/security/transport/lb_targets_info.h +10 -25
- data/src/core/lib/security/transport/secure_endpoint.c +29 -43
- data/src/core/lib/security/transport/secure_endpoint.h +10 -25
- data/src/core/lib/security/transport/security_connector.c +80 -61
- data/src/core/lib/security/transport/security_connector.h +35 -35
- data/src/core/lib/security/transport/security_handshaker.c +18 -33
- data/src/core/lib/security/transport/security_handshaker.h +10 -25
- data/src/core/lib/security/transport/server_auth_filter.c +62 -116
- data/src/core/lib/security/transport/tsi_error.c +10 -25
- data/src/core/lib/security/transport/tsi_error.h +10 -25
- data/src/core/lib/security/util/json_util.c +10 -25
- data/src/core/lib/security/util/json_util.h +10 -25
- data/src/core/lib/slice/b64.c +10 -25
- data/src/core/lib/slice/b64.h +10 -25
- data/src/core/lib/slice/percent_encoding.c +10 -25
- data/src/core/lib/slice/percent_encoding.h +10 -25
- data/src/core/lib/slice/slice.c +10 -25
- data/src/core/lib/slice/slice_buffer.c +10 -25
- data/src/core/lib/slice/slice_hash_table.c +48 -26
- data/src/core/lib/slice/slice_hash_table.h +26 -28
- data/src/core/lib/slice/slice_intern.c +10 -25
- data/src/core/lib/slice/slice_internal.h +10 -25
- data/src/core/lib/slice/slice_string_helpers.c +10 -25
- data/src/core/lib/slice/slice_string_helpers.h +10 -25
- data/src/core/lib/support/alloc.c +10 -25
- data/src/core/lib/support/arena.c +12 -27
- data/src/core/lib/support/arena.h +10 -25
- data/src/core/lib/support/atm.c +17 -32
- data/src/core/lib/support/atomic.h +10 -25
- data/src/core/lib/support/atomic_with_atm.h +10 -25
- data/src/core/lib/support/atomic_with_std.h +10 -25
- data/src/core/lib/support/avl.c +101 -101
- data/src/core/lib/support/backoff.c +10 -25
- data/src/core/lib/support/backoff.h +10 -25
- data/src/core/lib/support/block_annotate.h +10 -25
- data/src/core/lib/support/cmdline.c +10 -25
- data/src/core/lib/support/cpu_iphone.c +10 -25
- data/src/core/lib/support/cpu_linux.c +10 -25
- data/src/core/lib/support/cpu_posix.c +10 -25
- data/src/core/lib/support/cpu_windows.c +10 -25
- data/src/core/lib/support/env.h +16 -25
- data/src/core/lib/support/env_linux.c +30 -37
- data/src/core/lib/support/env_posix.c +15 -25
- data/src/core/lib/support/env_windows.c +15 -25
- data/src/core/lib/support/histogram.c +10 -25
- data/src/core/lib/support/host_port.c +10 -25
- data/src/core/lib/support/log.c +20 -29
- data/src/core/lib/support/log_android.c +10 -25
- data/src/core/lib/support/log_linux.c +13 -26
- data/src/core/lib/support/log_posix.c +10 -25
- data/src/core/lib/support/log_windows.c +10 -25
- data/src/core/lib/support/memory.h +10 -25
- data/src/core/lib/support/mpscq.c +11 -49
- data/src/core/lib/support/mpscq.h +11 -50
- data/src/core/lib/support/murmur_hash.c +12 -25
- data/src/core/lib/support/murmur_hash.h +10 -25
- data/src/core/lib/support/spinlock.h +10 -25
- data/src/core/lib/support/stack_lockfree.c +10 -25
- data/src/core/lib/support/stack_lockfree.h +10 -25
- data/src/core/lib/support/string.c +10 -25
- data/src/core/lib/support/string.h +10 -25
- data/src/core/lib/support/string_posix.c +10 -25
- data/src/core/lib/support/string_util_windows.c +10 -25
- data/src/core/lib/support/string_windows.c +10 -25
- data/src/core/lib/support/string_windows.h +10 -25
- data/src/core/lib/support/subprocess_posix.c +10 -25
- data/src/core/lib/support/subprocess_windows.c +10 -25
- data/src/core/lib/support/sync.c +10 -25
- data/src/core/lib/support/sync_posix.c +10 -25
- data/src/core/lib/support/sync_windows.c +10 -25
- data/src/core/lib/support/thd.c +10 -25
- data/src/core/lib/support/thd_internal.h +10 -25
- data/src/core/lib/support/thd_posix.c +10 -25
- data/src/core/lib/support/thd_windows.c +10 -25
- data/src/core/lib/support/time.c +10 -25
- data/src/core/lib/support/time_posix.c +10 -25
- data/src/core/lib/support/time_precise.c +18 -33
- data/src/core/lib/support/time_precise.h +10 -25
- data/src/core/lib/support/time_windows.c +10 -25
- data/src/core/lib/support/tls_pthread.c +10 -25
- data/src/core/lib/support/tmpfile.h +10 -25
- data/src/core/lib/support/tmpfile_msys.c +10 -25
- data/src/core/lib/support/tmpfile_posix.c +10 -25
- data/src/core/lib/support/tmpfile_windows.c +10 -25
- data/src/core/lib/support/wrap_memcpy.c +10 -25
- data/src/core/lib/surface/alarm.c +78 -35
- data/src/core/lib/surface/alarm_internal.h +40 -0
- data/src/core/lib/surface/api_trace.c +11 -26
- data/src/core/lib/surface/api_trace.h +10 -25
- data/src/core/lib/surface/byte_buffer.c +10 -25
- data/src/core/lib/surface/byte_buffer_reader.c +10 -25
- data/src/core/lib/surface/call.c +64 -84
- data/src/core/lib/surface/call.h +11 -26
- data/src/core/lib/surface/call_details.c +10 -25
- data/src/core/lib/surface/call_log_batch.c +10 -25
- data/src/core/lib/surface/call_test_only.h +10 -25
- data/src/core/lib/surface/channel.c +11 -26
- data/src/core/lib/surface/channel.h +11 -26
- data/src/core/lib/surface/channel_init.c +10 -25
- data/src/core/lib/surface/channel_init.h +10 -25
- data/src/core/lib/surface/channel_ping.c +12 -27
- data/src/core/lib/surface/channel_stack_type.c +10 -25
- data/src/core/lib/surface/channel_stack_type.h +10 -25
- data/src/core/lib/surface/completion_queue.c +442 -331
- data/src/core/lib/surface/completion_queue.h +16 -33
- data/src/core/lib/surface/completion_queue_factory.c +10 -25
- data/src/core/lib/surface/completion_queue_factory.h +10 -25
- data/src/core/lib/surface/event_string.c +10 -25
- data/src/core/lib/surface/event_string.h +10 -25
- data/src/core/lib/surface/init.c +38 -47
- data/src/core/lib/surface/init.h +10 -25
- data/src/core/lib/surface/init_secure.c +20 -27
- data/src/core/lib/surface/lame_client.cc +14 -29
- data/src/core/lib/surface/lame_client.h +10 -25
- data/src/core/lib/surface/metadata_array.c +10 -25
- data/src/core/lib/surface/server.c +128 -81
- data/src/core/lib/surface/server.h +10 -25
- data/src/core/lib/surface/validate_metadata.c +10 -25
- data/src/core/lib/surface/validate_metadata.h +10 -25
- data/src/core/lib/surface/version.c +11 -26
- data/src/core/lib/transport/bdp_estimator.c +19 -29
- data/src/core/lib/transport/bdp_estimator.h +16 -29
- data/src/core/lib/transport/byte_stream.c +127 -36
- data/src/core/lib/transport/byte_stream.h +88 -46
- data/src/core/lib/transport/connectivity_state.c +17 -31
- data/src/core/lib/transport/connectivity_state.h +10 -25
- data/src/core/lib/transport/error_utils.c +10 -25
- data/src/core/lib/transport/error_utils.h +10 -25
- data/src/core/lib/transport/http2_errors.h +10 -25
- data/src/core/lib/transport/metadata.c +87 -85
- data/src/core/lib/transport/metadata.h +15 -28
- data/src/core/lib/transport/metadata_batch.c +10 -25
- data/src/core/lib/transport/metadata_batch.h +10 -25
- data/src/core/lib/transport/pid_controller.c +10 -25
- data/src/core/lib/transport/pid_controller.h +10 -25
- data/src/core/lib/transport/service_config.c +11 -26
- data/src/core/lib/transport/service_config.h +10 -25
- data/src/core/lib/transport/static_metadata.c +12 -26
- data/src/core/lib/transport/static_metadata.h +10 -25
- data/src/core/lib/transport/status_conversion.c +10 -25
- data/src/core/lib/transport/status_conversion.h +10 -25
- data/src/core/lib/transport/timeout_encoding.c +10 -25
- data/src/core/lib/transport/timeout_encoding.h +10 -25
- data/src/core/lib/transport/transport.c +60 -53
- data/src/core/lib/transport/transport.h +36 -34
- data/src/core/lib/transport/transport_impl.h +10 -25
- data/src/core/lib/transport/transport_op_string.c +10 -28
- data/src/core/plugin_registry/grpc_plugin_registry.c +22 -25
- data/src/core/tsi/fake_transport_security.c +199 -94
- data/src/core/tsi/fake_transport_security.h +11 -26
- data/src/core/tsi/gts_transport_security.c +40 -0
- data/src/core/tsi/gts_transport_security.h +37 -0
- data/src/core/tsi/ssl_transport_security.c +13 -32
- data/src/core/tsi/ssl_transport_security.h +10 -25
- data/src/core/tsi/ssl_types.h +10 -25
- data/src/core/tsi/transport_security.c +48 -78
- data/src/core/tsi/transport_security.h +18 -27
- data/src/core/tsi/transport_security_adapter.c +17 -29
- data/src/core/tsi/transport_security_adapter.h +10 -25
- data/src/core/tsi/transport_security_grpc.c +64 -0
- data/src/core/tsi/transport_security_grpc.h +80 -0
- data/src/core/tsi/transport_security_interface.h +21 -27
- data/src/ruby/bin/apis/google/protobuf/empty.rb +10 -25
- data/src/ruby/bin/apis/pubsub_demo.rb +10 -25
- data/src/ruby/bin/apis/tech/pubsub/proto/pubsub.rb +10 -25
- data/src/ruby/bin/apis/tech/pubsub/proto/pubsub_services.rb +10 -25
- data/src/ruby/bin/math_client.rb +10 -25
- data/src/ruby/bin/math_server.rb +10 -25
- data/src/ruby/bin/math_services_pb.rb +10 -25
- data/src/ruby/bin/noproto_client.rb +10 -25
- data/src/ruby/bin/noproto_server.rb +10 -25
- data/src/ruby/ext/grpc/extconf.rb +10 -25
- data/src/ruby/ext/grpc/rb_byte_buffer.c +10 -25
- data/src/ruby/ext/grpc/rb_byte_buffer.h +10 -25
- data/src/ruby/ext/grpc/rb_call.c +44 -25
- data/src/ruby/ext/grpc/rb_call.h +10 -25
- data/src/ruby/ext/grpc/rb_call_credentials.c +10 -25
- data/src/ruby/ext/grpc/rb_call_credentials.h +10 -25
- data/src/ruby/ext/grpc/rb_channel.c +10 -25
- data/src/ruby/ext/grpc/rb_channel.h +10 -25
- data/src/ruby/ext/grpc/rb_channel_args.c +10 -25
- data/src/ruby/ext/grpc/rb_channel_args.h +10 -25
- data/src/ruby/ext/grpc/rb_channel_credentials.c +10 -25
- data/src/ruby/ext/grpc/rb_channel_credentials.h +10 -25
- data/src/ruby/ext/grpc/rb_completion_queue.c +10 -25
- data/src/ruby/ext/grpc/rb_completion_queue.h +10 -25
- data/src/ruby/ext/grpc/rb_compression_options.c +10 -25
- data/src/ruby/ext/grpc/rb_compression_options.h +10 -25
- data/src/ruby/ext/grpc/rb_event_thread.c +10 -25
- data/src/ruby/ext/grpc/rb_event_thread.h +10 -25
- data/src/ruby/ext/grpc/rb_grpc.c +10 -25
- data/src/ruby/ext/grpc/rb_grpc.h +10 -25
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +10 -25
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +16 -31
- data/src/ruby/ext/grpc/rb_loader.c +10 -25
- data/src/ruby/ext/grpc/rb_loader.h +10 -25
- data/src/ruby/ext/grpc/rb_server.c +10 -25
- data/src/ruby/ext/grpc/rb_server.h +10 -25
- data/src/ruby/ext/grpc/rb_server_credentials.c +10 -25
- data/src/ruby/ext/grpc/rb_server_credentials.h +10 -25
- data/src/ruby/lib/grpc.rb +10 -25
- data/src/ruby/lib/grpc/core/time_consts.rb +10 -25
- data/src/ruby/lib/grpc/errors.rb +16 -30
- data/src/ruby/lib/grpc/generic/active_call.rb +25 -27
- data/src/ruby/lib/grpc/generic/bidi_call.rb +17 -27
- data/src/ruby/lib/grpc/generic/client_stub.rb +10 -25
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +10 -25
- data/src/ruby/lib/grpc/generic/rpc_server.rb +10 -25
- data/src/ruby/lib/grpc/generic/service.rb +10 -25
- data/src/ruby/lib/grpc/grpc.rb +10 -25
- data/src/ruby/lib/grpc/logconfig.rb +10 -25
- data/src/ruby/lib/grpc/notifier.rb +10 -25
- data/src/ruby/lib/grpc/version.rb +11 -26
- data/src/ruby/pb/generate_proto_ruby.sh +10 -25
- data/src/ruby/pb/grpc/health/checker.rb +10 -25
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +10 -25
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +10 -25
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +10 -25
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +10 -25
- data/src/ruby/pb/test/client.rb +10 -25
- data/src/ruby/pb/test/server.rb +10 -25
- data/src/ruby/spec/call_credentials_spec.rb +10 -25
- data/src/ruby/spec/call_spec.rb +43 -25
- data/src/ruby/spec/channel_connection_spec.rb +10 -25
- data/src/ruby/spec/channel_credentials_spec.rb +11 -26
- data/src/ruby/spec/channel_spec.rb +10 -25
- data/src/ruby/spec/client_auth_spec.rb +10 -25
- data/src/ruby/spec/client_server_spec.rb +66 -25
- data/src/ruby/spec/compression_options_spec.rb +10 -25
- data/src/ruby/spec/error_sanity_spec.rb +10 -25
- data/src/ruby/spec/generic/active_call_spec.rb +10 -25
- data/src/ruby/spec/generic/client_stub_spec.rb +146 -35
- data/src/ruby/spec/generic/rpc_desc_spec.rb +10 -25
- data/src/ruby/spec/generic/rpc_server_pool_spec.rb +10 -25
- data/src/ruby/spec/generic/rpc_server_spec.rb +124 -34
- data/src/ruby/spec/generic/service_spec.rb +10 -25
- data/src/ruby/spec/pb/duplicate/codegen_spec.rb +10 -25
- data/src/ruby/spec/pb/health/checker_spec.rb +10 -25
- data/src/ruby/spec/server_credentials_spec.rb +10 -25
- data/src/ruby/spec/server_spec.rb +10 -25
- data/src/ruby/spec/spec_helper.rb +10 -25
- data/src/ruby/spec/time_consts_spec.rb +10 -25
- data/third_party/boringssl/crypto/aes/key_wrap.c +138 -0
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +6 -3
- data/third_party/boringssl/crypto/asn1/a_enum.c +4 -1
- data/third_party/boringssl/crypto/asn1/a_gentm.c +20 -15
- data/third_party/boringssl/crypto/asn1/a_int.c +7 -4
- data/third_party/boringssl/crypto/asn1/a_object.c +5 -2
- data/third_party/boringssl/crypto/asn1/a_time.c +0 -1
- data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -2
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -2
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +35 -0
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +3 -1
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +6 -3
- data/third_party/boringssl/crypto/asn1/tasn_new.c +12 -7
- data/third_party/boringssl/crypto/asn1/tasn_utl.c +22 -8
- data/third_party/boringssl/crypto/{time_support.c → asn1/time_support.c} +1 -1
- data/third_party/boringssl/crypto/asn1/x_long.c +5 -2
- data/third_party/boringssl/crypto/base64/base64.c +7 -5
- data/third_party/boringssl/crypto/bio/bio.c +24 -10
- data/third_party/boringssl/crypto/bio/bio_mem.c +12 -10
- data/third_party/boringssl/crypto/bio/connect.c +7 -18
- data/third_party/boringssl/crypto/bio/fd.c +3 -6
- data/third_party/boringssl/crypto/bio/file.c +6 -6
- data/third_party/boringssl/crypto/bio/hexdump.c +4 -2
- data/third_party/boringssl/crypto/bio/pair.c +30 -344
- data/third_party/boringssl/crypto/bio/socket.c +6 -7
- data/third_party/boringssl/crypto/bio/socket_helper.c +4 -3
- data/third_party/boringssl/crypto/bn/add.c +1 -1
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +11 -10
- data/third_party/boringssl/crypto/bn/bn.c +6 -20
- data/third_party/boringssl/crypto/bn/cmp.c +14 -0
- data/third_party/boringssl/crypto/bn/convert.c +73 -2
- data/third_party/boringssl/crypto/bn/ctx.c +3 -1
- data/third_party/boringssl/crypto/bn/div.c +108 -51
- data/third_party/boringssl/crypto/bn/exponentiation.c +15 -33
- data/third_party/boringssl/crypto/bn/gcd.c +29 -22
- data/third_party/boringssl/crypto/bn/generic.c +71 -67
- data/third_party/boringssl/crypto/bn/internal.h +19 -6
- data/third_party/boringssl/crypto/bn/kronecker.c +1 -0
- data/third_party/boringssl/crypto/bn/montgomery.c +9 -10
- data/third_party/boringssl/crypto/bn/montgomery_inv.c +47 -0
- data/third_party/boringssl/crypto/bn/mul.c +11 -9
- data/third_party/boringssl/crypto/bn/random.c +6 -3
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -65
- data/third_party/boringssl/crypto/bn/rsaz_exp.h +0 -3
- data/third_party/boringssl/crypto/bn/shift.c +9 -1
- data/third_party/boringssl/crypto/bn/sqrt.c +3 -1
- data/third_party/boringssl/crypto/buf/buf.c +6 -4
- data/third_party/boringssl/crypto/bytestring/asn1_compat.c +2 -1
- data/third_party/boringssl/crypto/bytestring/ber.c +2 -1
- data/third_party/boringssl/crypto/bytestring/cbb.c +9 -7
- data/third_party/boringssl/crypto/bytestring/cbs.c +54 -2
- data/third_party/boringssl/crypto/chacha/chacha.c +1 -1
- data/third_party/boringssl/crypto/cipher/aead.c +3 -3
- data/third_party/boringssl/crypto/cipher/cipher.c +18 -13
- data/third_party/boringssl/crypto/cipher/e_aes.c +335 -281
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +113 -137
- data/third_party/boringssl/crypto/cipher/e_null.c +2 -1
- data/third_party/boringssl/crypto/cipher/e_rc2.c +54 -49
- data/third_party/boringssl/crypto/cipher/e_ssl3.c +4 -3
- data/third_party/boringssl/crypto/cipher/e_tls.c +5 -5
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +41 -112
- data/third_party/boringssl/crypto/cmac/cmac.c +6 -4
- data/third_party/boringssl/crypto/conf/conf.c +6 -3
- data/third_party/boringssl/crypto/cpu-arm-linux.c +2 -2
- data/third_party/boringssl/crypto/curve25519/curve25519.c +28 -34
- data/third_party/boringssl/crypto/curve25519/spake25519.c +7 -6
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +2 -1
- data/third_party/boringssl/crypto/des/des.c +1 -1
- data/third_party/boringssl/crypto/des/internal.h +58 -46
- data/third_party/boringssl/crypto/dh/dh.c +4 -8
- data/third_party/boringssl/crypto/digest/digest.c +5 -2
- data/third_party/boringssl/crypto/digest/digests.c +70 -33
- data/third_party/boringssl/crypto/digest/md32_common.h +39 -27
- data/third_party/boringssl/crypto/dsa/dsa.c +11 -19
- data/third_party/boringssl/crypto/ec/ec.c +1 -1
- data/third_party/boringssl/crypto/ec/ec_asn1.c +3 -2
- data/third_party/boringssl/crypto/ec/ec_key.c +1 -1
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +6 -11
- data/third_party/boringssl/crypto/ec/oct.c +2 -14
- data/third_party/boringssl/crypto/ec/p224-64.c +78 -122
- data/third_party/boringssl/crypto/ec/p256-64.c +93 -133
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +48 -61
- data/third_party/boringssl/crypto/ec/p256-x86_64.h +113 -0
- data/third_party/boringssl/crypto/ec/simple.c +2 -1
- data/third_party/boringssl/crypto/ec/wnaf.c +52 -43
- data/third_party/boringssl/crypto/ecdh/ecdh.c +4 -2
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +17 -16
- data/third_party/boringssl/crypto/engine/engine.c +3 -1
- data/third_party/boringssl/crypto/err/err.c +5 -5
- data/third_party/boringssl/crypto/evp/evp.c +1 -1
- data/third_party/boringssl/crypto/evp/evp_asn1.c +1 -1
- data/third_party/boringssl/crypto/evp/evp_ctx.c +23 -29
- data/third_party/boringssl/crypto/evp/p_ec.c +2 -1
- data/third_party/boringssl/crypto/evp/p_rsa.c +9 -3
- data/third_party/boringssl/crypto/evp/pbkdf.c +3 -1
- data/third_party/boringssl/crypto/hkdf/hkdf.c +3 -1
- data/third_party/boringssl/crypto/hmac/hmac.c +4 -2
- data/third_party/boringssl/crypto/internal.h +81 -0
- data/third_party/boringssl/crypto/lhash/lhash.c +7 -13
- data/third_party/boringssl/crypto/md4/md4.c +20 -18
- data/third_party/boringssl/crypto/md5/md5.c +31 -21
- data/third_party/boringssl/crypto/mem.c +4 -10
- data/third_party/boringssl/crypto/modes/cbc.c +2 -6
- data/third_party/boringssl/crypto/modes/cfb.c +2 -2
- data/third_party/boringssl/crypto/modes/ctr.c +1 -1
- data/third_party/boringssl/crypto/modes/gcm.c +117 -334
- data/third_party/boringssl/crypto/modes/internal.h +107 -84
- data/third_party/boringssl/crypto/modes/ofb.c +3 -3
- data/third_party/boringssl/crypto/modes/polyval.c +94 -0
- data/third_party/boringssl/crypto/obj/obj.c +13 -8
- data/third_party/boringssl/crypto/obj/obj_dat.h +6109 -5187
- data/third_party/boringssl/crypto/obj/obj_xref.c +55 -57
- data/third_party/boringssl/crypto/pem/pem_lib.c +6 -3
- data/third_party/boringssl/crypto/pkcs8/internal.h +27 -8
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +137 -352
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +371 -364
- data/third_party/boringssl/crypto/poly1305/poly1305.c +12 -18
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +2 -2
- data/third_party/boringssl/crypto/{newhope/reduce.c → pool/internal.h} +24 -21
- data/third_party/boringssl/crypto/pool/pool.c +200 -0
- data/third_party/boringssl/crypto/rand/deterministic.c +6 -5
- data/third_party/boringssl/crypto/rand/fuchsia.c +43 -0
- data/third_party/boringssl/crypto/rand/rand.c +7 -7
- data/third_party/boringssl/crypto/rand/urandom.c +136 -22
- data/third_party/boringssl/crypto/rand/windows.c +2 -2
- data/third_party/boringssl/crypto/rsa/blinding.c +2 -1
- data/third_party/boringssl/crypto/rsa/padding.c +11 -11
- data/third_party/boringssl/crypto/rsa/rsa.c +4 -4
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +7 -1
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +41 -80
- data/third_party/boringssl/crypto/sha/sha1-altivec.c +346 -0
- data/third_party/boringssl/crypto/sha/sha1.c +60 -42
- data/third_party/boringssl/crypto/sha/sha256.c +4 -2
- data/third_party/boringssl/crypto/sha/sha512.c +9 -7
- data/third_party/boringssl/crypto/stack/stack.c +10 -7
- data/third_party/boringssl/crypto/thread_pthread.c +2 -2
- data/third_party/boringssl/crypto/thread_win.c +2 -2
- data/third_party/boringssl/crypto/x509/a_verify.c +1 -1
- data/third_party/boringssl/crypto/x509/asn1_gen.c +1 -1
- data/third_party/boringssl/crypto/x509/by_dir.c +1 -1
- data/third_party/boringssl/crypto/x509/t_x509.c +78 -38
- data/third_party/boringssl/crypto/x509/x509_cmp.c +8 -5
- data/third_party/boringssl/crypto/x509/x509_lu.c +6 -1
- data/third_party/boringssl/crypto/x509/x509_obj.c +4 -1
- data/third_party/boringssl/crypto/x509/x509_vfy.c +42 -8
- data/third_party/boringssl/crypto/x509/x509_vpm.c +8 -6
- data/third_party/boringssl/crypto/x509/x509name.c +4 -1
- data/third_party/boringssl/crypto/x509/x_crl.c +4 -2
- data/third_party/boringssl/crypto/x509/x_name.c +23 -13
- data/third_party/boringssl/crypto/x509/x_pkey.c +4 -1
- data/third_party/boringssl/crypto/x509/x_x509.c +42 -3
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +1 -1
- data/third_party/boringssl/crypto/x509v3/v3_ia5.c +4 -1
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +4 -1
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +6 -3
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +13 -21
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +19 -33
- data/third_party/boringssl/include/openssl/aead.h +9 -20
- data/third_party/boringssl/include/openssl/aes.h +21 -9
- data/third_party/boringssl/include/openssl/asn1.h +9 -1
- data/third_party/boringssl/include/openssl/base.h +33 -6
- data/third_party/boringssl/include/openssl/bio.h +10 -103
- data/third_party/boringssl/include/openssl/bn.h +58 -42
- data/third_party/boringssl/include/openssl/bytestring.h +17 -0
- data/third_party/boringssl/include/openssl/cipher.h +4 -3
- data/third_party/boringssl/include/openssl/conf.h +4 -1
- data/third_party/boringssl/include/openssl/curve25519.h +13 -0
- data/third_party/boringssl/include/openssl/digest.h +5 -3
- data/third_party/boringssl/include/openssl/dsa.h +5 -5
- data/third_party/boringssl/include/openssl/ec.h +2 -2
- data/third_party/boringssl/include/openssl/ecdh.h +3 -4
- data/third_party/boringssl/include/openssl/ecdsa.h +10 -10
- data/third_party/boringssl/include/openssl/err.h +5 -5
- data/third_party/boringssl/include/openssl/evp.h +11 -7
- data/third_party/boringssl/include/openssl/lhash.h +2 -3
- data/third_party/boringssl/include/openssl/lhash_macros.h +56 -14
- data/third_party/boringssl/include/openssl/nid.h +2949 -2916
- data/third_party/boringssl/include/openssl/obj.h +1 -1
- data/third_party/boringssl/include/openssl/pkcs8.h +21 -42
- data/third_party/boringssl/include/openssl/pool.h +87 -0
- data/third_party/boringssl/include/openssl/rand.h +1 -1
- data/third_party/boringssl/include/openssl/rsa.h +4 -2
- data/third_party/boringssl/include/openssl/sha.h +0 -4
- data/third_party/boringssl/include/openssl/ssl.h +327 -662
- data/third_party/boringssl/include/openssl/ssl3.h +1 -21
- data/third_party/boringssl/include/openssl/stack.h +1 -0
- data/third_party/boringssl/include/openssl/stack_macros.h +85 -0
- data/third_party/boringssl/include/openssl/tls1.h +23 -52
- data/third_party/boringssl/include/openssl/type_check.h +4 -0
- data/third_party/boringssl/include/openssl/x509.h +10 -59
- data/third_party/boringssl/include/openssl/x509_vfy.h +7 -1
- data/third_party/boringssl/include/openssl/x509v3.h +4 -4
- data/third_party/boringssl/ssl/bio_ssl.c +175 -0
- data/third_party/boringssl/ssl/custom_extensions.c +24 -21
- data/third_party/boringssl/ssl/d1_both.c +259 -289
- data/third_party/boringssl/ssl/d1_lib.c +8 -20
- data/third_party/boringssl/ssl/d1_pkt.c +6 -15
- data/third_party/boringssl/ssl/dtls_method.c +22 -8
- data/third_party/boringssl/ssl/dtls_record.c +27 -2
- data/third_party/boringssl/ssl/handshake_client.c +460 -579
- data/third_party/boringssl/ssl/handshake_server.c +662 -644
- data/third_party/boringssl/ssl/internal.h +1009 -375
- data/third_party/boringssl/ssl/s3_both.c +312 -162
- data/third_party/boringssl/ssl/s3_lib.c +12 -128
- data/third_party/boringssl/ssl/s3_pkt.c +22 -30
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +28 -22
- data/third_party/boringssl/ssl/ssl_asn1.c +210 -114
- data/third_party/boringssl/ssl/ssl_buffer.c +2 -1
- data/third_party/boringssl/ssl/ssl_cert.c +417 -219
- data/third_party/boringssl/ssl/ssl_cipher.c +191 -393
- data/third_party/boringssl/ssl/ssl_ecdh.c +19 -164
- data/third_party/boringssl/ssl/ssl_file.c +0 -11
- data/third_party/boringssl/ssl/ssl_lib.c +325 -652
- data/third_party/boringssl/ssl/{ssl_rsa.c → ssl_privkey.c} +21 -131
- data/third_party/boringssl/ssl/ssl_privkey_cc.cc +76 -0
- data/third_party/boringssl/ssl/ssl_session.c +206 -95
- data/third_party/boringssl/ssl/ssl_stat.c +18 -84
- data/third_party/boringssl/ssl/{s3_enc.c → ssl_transcript.c} +150 -157
- data/third_party/boringssl/ssl/ssl_x509.c +815 -0
- data/third_party/boringssl/ssl/t1_enc.c +188 -174
- data/third_party/boringssl/ssl/t1_lib.c +1064 -764
- data/third_party/boringssl/ssl/tls13_both.c +290 -96
- data/third_party/boringssl/ssl/tls13_client.c +344 -314
- data/third_party/boringssl/ssl/tls13_enc.c +239 -200
- data/third_party/boringssl/ssl/tls13_server.c +374 -366
- data/third_party/boringssl/ssl/tls_method.c +40 -5
- data/third_party/boringssl/ssl/tls_record.c +166 -71
- metadata +39 -25
- data/src/core/lib/iomgr/workqueue.h +0 -87
- data/src/core/lib/iomgr/workqueue_uv.c +0 -65
- data/src/core/lib/iomgr/workqueue_uv.h +0 -37
- data/src/core/lib/iomgr/workqueue_windows.c +0 -63
- data/src/core/lib/iomgr/workqueue_windows.h +0 -37
- data/third_party/boringssl/crypto/bio/buffer.c +0 -496
- data/third_party/boringssl/crypto/newhope/error_correction.c +0 -131
- data/third_party/boringssl/crypto/newhope/internal.h +0 -71
- data/third_party/boringssl/crypto/newhope/newhope.c +0 -174
- data/third_party/boringssl/crypto/newhope/ntt.c +0 -148
- data/third_party/boringssl/crypto/newhope/poly.c +0 -183
- data/third_party/boringssl/crypto/newhope/precomp.c +0 -306
- data/third_party/boringssl/crypto/obj/obj_xref.h +0 -96
- data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +0 -151
- data/third_party/boringssl/include/openssl/newhope.h +0 -158
- data/third_party/boringssl/include/openssl/time_support.h +0 -91
@@ -1,33 +1,18 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2017
|
4
|
-
* All rights reserved.
|
3
|
+
* Copyright 2017 gRPC authors.
|
5
4
|
*
|
6
|
-
*
|
7
|
-
*
|
8
|
-
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
9
8
|
*
|
10
|
-
*
|
11
|
-
* notice, this list of conditions and the following disclaimer.
|
12
|
-
* * Redistributions in binary form must reproduce the above
|
13
|
-
* copyright notice, this list of conditions and the following disclaimer
|
14
|
-
* in the documentation and/or other materials provided with the
|
15
|
-
* distribution.
|
16
|
-
* * Neither the name of Google Inc. nor the names of its
|
17
|
-
* contributors may be used to endorse or promote products derived from
|
18
|
-
* this software without specific prior written permission.
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
19
10
|
*
|
20
|
-
*
|
21
|
-
*
|
22
|
-
*
|
23
|
-
*
|
24
|
-
*
|
25
|
-
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
-
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
-
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
-
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
31
16
|
*
|
32
17
|
*/
|
33
18
|
|
@@ -1,33 +1,18 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2017
|
4
|
-
* All rights reserved.
|
3
|
+
* Copyright 2017 gRPC authors.
|
5
4
|
*
|
6
|
-
*
|
7
|
-
*
|
8
|
-
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
9
8
|
*
|
10
|
-
*
|
11
|
-
* notice, this list of conditions and the following disclaimer.
|
12
|
-
* * Redistributions in binary form must reproduce the above
|
13
|
-
* copyright notice, this list of conditions and the following disclaimer
|
14
|
-
* in the documentation and/or other materials provided with the
|
15
|
-
* distribution.
|
16
|
-
* * Neither the name of Google Inc. nor the names of its
|
17
|
-
* contributors may be used to endorse or promote products derived from
|
18
|
-
* this software without specific prior written permission.
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
19
10
|
*
|
20
|
-
*
|
21
|
-
*
|
22
|
-
*
|
23
|
-
*
|
24
|
-
*
|
25
|
-
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
-
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
-
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
-
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
31
16
|
*
|
32
17
|
*/
|
33
18
|
|
@@ -61,7 +46,6 @@
|
|
61
46
|
#include "src/core/lib/iomgr/lockfree_event.h"
|
62
47
|
#include "src/core/lib/iomgr/timer.h"
|
63
48
|
#include "src/core/lib/iomgr/wakeup_fd_posix.h"
|
64
|
-
#include "src/core/lib/iomgr/workqueue.h"
|
65
49
|
#include "src/core/lib/profiling/timers.h"
|
66
50
|
#include "src/core/lib/support/block_annotate.h"
|
67
51
|
#include "src/core/lib/support/env.h"
|
@@ -73,9 +57,6 @@
|
|
73
57
|
|
74
58
|
#define GRPC_POLLSET_KICK_BROADCAST ((grpc_pollset_worker *)1)
|
75
59
|
|
76
|
-
/* Uncomment the following to enable extra checks on poll_object operations */
|
77
|
-
/* #define PO_DEBUG */
|
78
|
-
|
79
60
|
/* The maximum number of polling threads per polling island. By default no
|
80
61
|
limit */
|
81
62
|
static int g_max_pollers_per_pi = INT_MAX;
|
@@ -108,7 +89,7 @@ typedef enum {
|
|
108
89
|
} poll_obj_type;
|
109
90
|
|
110
91
|
typedef struct poll_obj {
|
111
|
-
#
|
92
|
+
#ifndef NDEBUG
|
112
93
|
poll_obj_type obj_type;
|
113
94
|
#endif
|
114
95
|
gpr_mu mu;
|
@@ -163,8 +144,7 @@ struct grpc_fd {
|
|
163
144
|
};
|
164
145
|
|
165
146
|
/* Reference counting for fds */
|
166
|
-
|
167
|
-
#ifdef GRPC_FD_REF_COUNT_DEBUG
|
147
|
+
#ifndef NDEBUG
|
168
148
|
static void fd_ref(grpc_fd *fd, const char *reason, const char *file, int line);
|
169
149
|
static void fd_unref(grpc_fd *fd, const char *reason, const char *file,
|
170
150
|
int line);
|
@@ -184,18 +164,18 @@ static void fd_global_shutdown(void);
|
|
184
164
|
* Polling island Declarations
|
185
165
|
*/
|
186
166
|
|
187
|
-
#
|
167
|
+
#ifndef NDEBUG
|
188
168
|
|
189
169
|
#define PI_ADD_REF(p, r) pi_add_ref_dbg((p), (r), __FILE__, __LINE__)
|
190
170
|
#define PI_UNREF(exec_ctx, p, r) \
|
191
171
|
pi_unref_dbg((exec_ctx), (p), (r), __FILE__, __LINE__)
|
192
172
|
|
193
|
-
#else
|
173
|
+
#else
|
194
174
|
|
195
175
|
#define PI_ADD_REF(p, r) pi_add_ref((p))
|
196
176
|
#define PI_UNREF(exec_ctx, p, r) pi_unref((exec_ctx), (p))
|
197
177
|
|
198
|
-
#endif
|
178
|
+
#endif
|
199
179
|
|
200
180
|
typedef struct worker_node {
|
201
181
|
struct worker_node *next;
|
@@ -204,8 +184,6 @@ typedef struct worker_node {
|
|
204
184
|
|
205
185
|
/* This is also used as grpc_workqueue (by directly casing it) */
|
206
186
|
typedef struct polling_island {
|
207
|
-
grpc_closure_scheduler workqueue_scheduler;
|
208
|
-
|
209
187
|
gpr_mu mu;
|
210
188
|
/* Ref count. Use PI_ADD_REF() and PI_UNREF() macros to increment/decrement
|
211
189
|
the refcount.
|
@@ -226,15 +204,6 @@ typedef struct polling_island {
|
|
226
204
|
|
227
205
|
/* Number of threads currently polling on this island */
|
228
206
|
gpr_atm poller_count;
|
229
|
-
/* Mutex guarding the read end of the workqueue (must be held to pop from
|
230
|
-
* workqueue_items) */
|
231
|
-
gpr_mu workqueue_read_mu;
|
232
|
-
/* Queue of closures to be executed */
|
233
|
-
gpr_mpscq workqueue_items;
|
234
|
-
/* Count of items in workqueue_items */
|
235
|
-
gpr_atm workqueue_item_count;
|
236
|
-
/* Wakeup fd used to wake pollers to check the contents of workqueue_items */
|
237
|
-
grpc_wakeup_fd workqueue_wakeup_fd;
|
238
207
|
|
239
208
|
/* The list of workers waiting to do polling on this polling island */
|
240
209
|
gpr_mu worker_list_mu;
|
@@ -323,8 +292,6 @@ static __thread polling_island *g_current_thread_polling_island;
|
|
323
292
|
|
324
293
|
/* Forward declaration */
|
325
294
|
static void polling_island_delete(grpc_exec_ctx *exec_ctx, polling_island *pi);
|
326
|
-
static void workqueue_enqueue(grpc_exec_ctx *exec_ctx, grpc_closure *closure,
|
327
|
-
grpc_error *error);
|
328
295
|
|
329
296
|
#ifdef GRPC_TSAN
|
330
297
|
/* Currently TSAN may incorrectly flag data races between epoll_ctl and
|
@@ -337,57 +304,30 @@ static void workqueue_enqueue(grpc_exec_ctx *exec_ctx, grpc_closure *closure,
|
|
337
304
|
gpr_atm g_epoll_sync;
|
338
305
|
#endif /* defined(GRPC_TSAN) */
|
339
306
|
|
340
|
-
static const grpc_closure_scheduler_vtable workqueue_scheduler_vtable = {
|
341
|
-
workqueue_enqueue, workqueue_enqueue, "workqueue"};
|
342
|
-
|
343
307
|
static void pi_add_ref(polling_island *pi);
|
344
308
|
static void pi_unref(grpc_exec_ctx *exec_ctx, polling_island *pi);
|
345
309
|
|
346
|
-
#
|
310
|
+
#ifndef NDEBUG
|
347
311
|
static void pi_add_ref_dbg(polling_island *pi, const char *reason,
|
348
312
|
const char *file, int line) {
|
349
|
-
|
313
|
+
if (GRPC_TRACER_ON(grpc_polling_trace)) {
|
314
|
+
gpr_atm old_cnt = gpr_atm_acq_load(&pi->ref_count);
|
315
|
+
gpr_log(GPR_DEBUG, "Add ref pi: %p, old:%" PRIdPTR " -> new:%" PRIdPTR
|
316
|
+
" (%s) - (%s, %d)",
|
317
|
+
pi, old_cnt, old_cnt + 1, reason, file, line);
|
318
|
+
}
|
350
319
|
pi_add_ref(pi);
|
351
|
-
gpr_log(GPR_DEBUG, "Add ref pi: %p, old: %ld -> new:%ld (%s) - (%s, %d)",
|
352
|
-
(void *)pi, old_cnt, old_cnt + 1, reason, file, line);
|
353
320
|
}
|
354
321
|
|
355
322
|
static void pi_unref_dbg(grpc_exec_ctx *exec_ctx, polling_island *pi,
|
356
323
|
const char *reason, const char *file, int line) {
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
static grpc_workqueue *workqueue_ref(grpc_workqueue *workqueue,
|
364
|
-
const char *file, int line,
|
365
|
-
const char *reason) {
|
366
|
-
if (workqueue != NULL) {
|
367
|
-
pi_add_ref_dbg((polling_island *)workqueue, reason, file, line);
|
368
|
-
}
|
369
|
-
return workqueue;
|
370
|
-
}
|
371
|
-
|
372
|
-
static void workqueue_unref(grpc_exec_ctx *exec_ctx, grpc_workqueue *workqueue,
|
373
|
-
const char *file, int line, const char *reason) {
|
374
|
-
if (workqueue != NULL) {
|
375
|
-
pi_unref_dbg(exec_ctx, (polling_island *)workqueue, reason, file, line);
|
376
|
-
}
|
377
|
-
}
|
378
|
-
#else
|
379
|
-
static grpc_workqueue *workqueue_ref(grpc_workqueue *workqueue) {
|
380
|
-
if (workqueue != NULL) {
|
381
|
-
pi_add_ref((polling_island *)workqueue);
|
382
|
-
}
|
383
|
-
return workqueue;
|
384
|
-
}
|
385
|
-
|
386
|
-
static void workqueue_unref(grpc_exec_ctx *exec_ctx,
|
387
|
-
grpc_workqueue *workqueue) {
|
388
|
-
if (workqueue != NULL) {
|
389
|
-
pi_unref(exec_ctx, (polling_island *)workqueue);
|
324
|
+
if (GRPC_TRACER_ON(grpc_polling_trace)) {
|
325
|
+
gpr_atm old_cnt = gpr_atm_acq_load(&pi->ref_count);
|
326
|
+
gpr_log(GPR_DEBUG, "Unref pi: %p, old:%" PRIdPTR " -> new:%" PRIdPTR
|
327
|
+
" (%s) - (%s, %d)",
|
328
|
+
pi, old_cnt, (old_cnt - 1), reason, file, line);
|
390
329
|
}
|
330
|
+
pi_unref(exec_ctx, pi);
|
391
331
|
}
|
392
332
|
#endif
|
393
333
|
|
@@ -592,17 +532,12 @@ static polling_island *polling_island_create(grpc_exec_ctx *exec_ctx,
|
|
592
532
|
*error = GRPC_ERROR_NONE;
|
593
533
|
|
594
534
|
pi = gpr_malloc(sizeof(*pi));
|
595
|
-
pi->workqueue_scheduler.vtable = &workqueue_scheduler_vtable;
|
596
535
|
gpr_mu_init(&pi->mu);
|
597
536
|
pi->fd_cnt = 0;
|
598
537
|
pi->fd_capacity = 0;
|
599
538
|
pi->fds = NULL;
|
600
539
|
pi->epoll_fd = -1;
|
601
540
|
|
602
|
-
gpr_mu_init(&pi->workqueue_read_mu);
|
603
|
-
gpr_mpscq_init(&pi->workqueue_items);
|
604
|
-
gpr_atm_rel_store(&pi->workqueue_item_count, 0);
|
605
|
-
|
606
541
|
gpr_atm_rel_store(&pi->ref_count, 0);
|
607
542
|
gpr_atm_rel_store(&pi->poller_count, 0);
|
608
543
|
gpr_atm_rel_store(&pi->merged_to, (gpr_atm)NULL);
|
@@ -610,11 +545,6 @@ static polling_island *polling_island_create(grpc_exec_ctx *exec_ctx,
|
|
610
545
|
gpr_mu_init(&pi->worker_list_mu);
|
611
546
|
worker_node_init(&pi->worker_list_head);
|
612
547
|
|
613
|
-
if (!append_error(error, grpc_wakeup_fd_init(&pi->workqueue_wakeup_fd),
|
614
|
-
err_desc)) {
|
615
|
-
goto done;
|
616
|
-
}
|
617
|
-
|
618
548
|
pi->epoll_fd = epoll_create1(EPOLL_CLOEXEC);
|
619
549
|
|
620
550
|
if (pi->epoll_fd < 0) {
|
@@ -622,8 +552,6 @@ static polling_island *polling_island_create(grpc_exec_ctx *exec_ctx,
|
|
622
552
|
goto done;
|
623
553
|
}
|
624
554
|
|
625
|
-
polling_island_add_wakeup_fd_locked(pi, &pi->workqueue_wakeup_fd, error);
|
626
|
-
|
627
555
|
if (initial_fd != NULL) {
|
628
556
|
polling_island_add_fds_locked(pi, &initial_fd, 1, true, error);
|
629
557
|
}
|
@@ -642,11 +570,7 @@ static void polling_island_delete(grpc_exec_ctx *exec_ctx, polling_island *pi) {
|
|
642
570
|
if (pi->epoll_fd >= 0) {
|
643
571
|
close(pi->epoll_fd);
|
644
572
|
}
|
645
|
-
GPR_ASSERT(gpr_atm_no_barrier_load(&pi->workqueue_item_count) == 0);
|
646
|
-
gpr_mu_destroy(&pi->workqueue_read_mu);
|
647
|
-
gpr_mpscq_destroy(&pi->workqueue_items);
|
648
573
|
gpr_mu_destroy(&pi->mu);
|
649
|
-
grpc_wakeup_fd_destroy(&pi->workqueue_wakeup_fd);
|
650
574
|
gpr_mu_destroy(&pi->worker_list_mu);
|
651
575
|
GPR_ASSERT(is_worker_node_detached(&pi->worker_list_head));
|
652
576
|
|
@@ -794,45 +718,6 @@ static void polling_island_unlock_pair(polling_island *p, polling_island *q) {
|
|
794
718
|
}
|
795
719
|
}
|
796
720
|
|
797
|
-
static void workqueue_maybe_wakeup(polling_island *pi) {
|
798
|
-
/* If this thread is the current poller, then it may be that it's about to
|
799
|
-
decrement the current poller count, so we need to look past this thread */
|
800
|
-
bool is_current_poller = (g_current_thread_polling_island == pi);
|
801
|
-
gpr_atm min_current_pollers_for_wakeup = is_current_poller ? 1 : 0;
|
802
|
-
gpr_atm current_pollers = gpr_atm_no_barrier_load(&pi->poller_count);
|
803
|
-
/* Only issue a wakeup if it's likely that some poller could come in and take
|
804
|
-
it right now. Note that since we do an anticipatory mpscq_pop every poll
|
805
|
-
loop, it's ok if we miss the wakeup here, as we'll get the work item when
|
806
|
-
the next poller enters anyway. */
|
807
|
-
if (current_pollers > min_current_pollers_for_wakeup) {
|
808
|
-
GRPC_LOG_IF_ERROR("workqueue_wakeup_fd",
|
809
|
-
grpc_wakeup_fd_wakeup(&pi->workqueue_wakeup_fd));
|
810
|
-
}
|
811
|
-
}
|
812
|
-
|
813
|
-
static void workqueue_move_items_to_parent(polling_island *q) {
|
814
|
-
polling_island *p = (polling_island *)gpr_atm_no_barrier_load(&q->merged_to);
|
815
|
-
if (p == NULL) {
|
816
|
-
return;
|
817
|
-
}
|
818
|
-
gpr_mu_lock(&q->workqueue_read_mu);
|
819
|
-
int num_added = 0;
|
820
|
-
while (gpr_atm_no_barrier_load(&q->workqueue_item_count) > 0) {
|
821
|
-
gpr_mpscq_node *n = gpr_mpscq_pop(&q->workqueue_items);
|
822
|
-
if (n != NULL) {
|
823
|
-
gpr_atm_no_barrier_fetch_add(&q->workqueue_item_count, -1);
|
824
|
-
gpr_atm_no_barrier_fetch_add(&p->workqueue_item_count, 1);
|
825
|
-
gpr_mpscq_push(&p->workqueue_items, n);
|
826
|
-
num_added++;
|
827
|
-
}
|
828
|
-
}
|
829
|
-
gpr_mu_unlock(&q->workqueue_read_mu);
|
830
|
-
if (num_added > 0) {
|
831
|
-
workqueue_maybe_wakeup(p);
|
832
|
-
}
|
833
|
-
workqueue_move_items_to_parent(p);
|
834
|
-
}
|
835
|
-
|
836
721
|
static polling_island *polling_island_merge(polling_island *p,
|
837
722
|
polling_island *q,
|
838
723
|
grpc_error **error) {
|
@@ -857,8 +742,6 @@ static polling_island *polling_island_merge(polling_island *p,
|
|
857
742
|
/* Add the 'merged_to' link from p --> q */
|
858
743
|
gpr_atm_rel_store(&p->merged_to, (gpr_atm)q);
|
859
744
|
PI_ADD_REF(q, "pi_merge"); /* To account for the new incoming ref from p */
|
860
|
-
|
861
|
-
workqueue_move_items_to_parent(p);
|
862
745
|
}
|
863
746
|
/* else if p == q, nothing needs to be done */
|
864
747
|
|
@@ -869,32 +752,6 @@ static polling_island *polling_island_merge(polling_island *p,
|
|
869
752
|
return q;
|
870
753
|
}
|
871
754
|
|
872
|
-
static void workqueue_enqueue(grpc_exec_ctx *exec_ctx, grpc_closure *closure,
|
873
|
-
grpc_error *error) {
|
874
|
-
GPR_TIMER_BEGIN("workqueue.enqueue", 0);
|
875
|
-
grpc_workqueue *workqueue = (grpc_workqueue *)closure->scheduler;
|
876
|
-
/* take a ref to the workqueue: otherwise it can happen that whatever events
|
877
|
-
* this kicks off ends up destroying the workqueue before this function
|
878
|
-
* completes */
|
879
|
-
GRPC_WORKQUEUE_REF(workqueue, "enqueue");
|
880
|
-
polling_island *pi = (polling_island *)workqueue;
|
881
|
-
gpr_atm last = gpr_atm_no_barrier_fetch_add(&pi->workqueue_item_count, 1);
|
882
|
-
closure->error_data.error = error;
|
883
|
-
gpr_mpscq_push(&pi->workqueue_items, &closure->next_data.atm_next);
|
884
|
-
if (last == 0) {
|
885
|
-
workqueue_maybe_wakeup(pi);
|
886
|
-
}
|
887
|
-
workqueue_move_items_to_parent(pi);
|
888
|
-
GRPC_WORKQUEUE_UNREF(exec_ctx, workqueue, "enqueue");
|
889
|
-
GPR_TIMER_END("workqueue.enqueue", 0);
|
890
|
-
}
|
891
|
-
|
892
|
-
static grpc_closure_scheduler *workqueue_scheduler(grpc_workqueue *workqueue) {
|
893
|
-
polling_island *pi = (polling_island *)workqueue;
|
894
|
-
return workqueue == NULL ? grpc_schedule_on_exec_ctx
|
895
|
-
: &pi->workqueue_scheduler;
|
896
|
-
}
|
897
|
-
|
898
755
|
static grpc_error *polling_island_global_init() {
|
899
756
|
grpc_error *error = GRPC_ERROR_NONE;
|
900
757
|
|
@@ -935,14 +792,17 @@ static void polling_island_global_shutdown() {
|
|
935
792
|
static grpc_fd *fd_freelist = NULL;
|
936
793
|
static gpr_mu fd_freelist_mu;
|
937
794
|
|
938
|
-
#
|
795
|
+
#ifndef NDEBUG
|
939
796
|
#define REF_BY(fd, n, reason) ref_by(fd, n, reason, __FILE__, __LINE__)
|
940
797
|
#define UNREF_BY(fd, n, reason) unref_by(fd, n, reason, __FILE__, __LINE__)
|
941
798
|
static void ref_by(grpc_fd *fd, int n, const char *reason, const char *file,
|
942
799
|
int line) {
|
943
|
-
|
944
|
-
|
945
|
-
|
800
|
+
if (GRPC_TRACER_ON(grpc_trace_fd_refcount)) {
|
801
|
+
gpr_log(GPR_DEBUG,
|
802
|
+
"FD %d %p ref %d %" PRIdPTR " -> %" PRIdPTR " [%s; %s:%d]",
|
803
|
+
fd->fd, fd, n, gpr_atm_no_barrier_load(&fd->refst),
|
804
|
+
gpr_atm_no_barrier_load(&fd->refst) + n, reason, file, line);
|
805
|
+
}
|
946
806
|
#else
|
947
807
|
#define REF_BY(fd, n, reason) ref_by(fd, n)
|
948
808
|
#define UNREF_BY(fd, n, reason) unref_by(fd, n)
|
@@ -951,18 +811,19 @@ static void ref_by(grpc_fd *fd, int n) {
|
|
951
811
|
GPR_ASSERT(gpr_atm_no_barrier_fetch_add(&fd->refst, n) > 0);
|
952
812
|
}
|
953
813
|
|
954
|
-
#
|
814
|
+
#ifndef NDEBUG
|
955
815
|
static void unref_by(grpc_fd *fd, int n, const char *reason, const char *file,
|
956
816
|
int line) {
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
817
|
+
if (GRPC_TRACER_ON(grpc_trace_fd_refcount)) {
|
818
|
+
gpr_log(GPR_DEBUG,
|
819
|
+
"FD %d %p unref %d %" PRIdPTR " -> %" PRIdPTR " [%s; %s:%d]",
|
820
|
+
fd->fd, fd, n, gpr_atm_no_barrier_load(&fd->refst),
|
821
|
+
gpr_atm_no_barrier_load(&fd->refst) - n, reason, file, line);
|
822
|
+
}
|
961
823
|
#else
|
962
824
|
static void unref_by(grpc_fd *fd, int n) {
|
963
|
-
gpr_atm old;
|
964
825
|
#endif
|
965
|
-
old = gpr_atm_full_fetch_add(&fd->refst, -n);
|
826
|
+
gpr_atm old = gpr_atm_full_fetch_add(&fd->refst, -n);
|
966
827
|
if (old == n) {
|
967
828
|
/* Add the fd to the freelist */
|
968
829
|
gpr_mu_lock(&fd_freelist_mu);
|
@@ -980,7 +841,7 @@ static void unref_by(grpc_fd *fd, int n) {
|
|
980
841
|
}
|
981
842
|
|
982
843
|
/* Increment refcount by two to avoid changing the orphan bit */
|
983
|
-
#
|
844
|
+
#ifndef NDEBUG
|
984
845
|
static void fd_ref(grpc_fd *fd, const char *reason, const char *file,
|
985
846
|
int line) {
|
986
847
|
ref_by(fd, 2, reason, file, line);
|
@@ -1029,7 +890,7 @@ static grpc_fd *fd_create(int fd, const char *name) {
|
|
1029
890
|
* would be holding a lock to it anyway. */
|
1030
891
|
gpr_mu_lock(&new_fd->po.mu);
|
1031
892
|
new_fd->po.pi = NULL;
|
1032
|
-
#
|
893
|
+
#ifndef NDEBUG
|
1033
894
|
new_fd->po.obj_type = POLL_OBJ_FD;
|
1034
895
|
#endif
|
1035
896
|
|
@@ -1048,8 +909,10 @@ static grpc_fd *fd_create(int fd, const char *name) {
|
|
1048
909
|
char *fd_name;
|
1049
910
|
gpr_asprintf(&fd_name, "%s fd=%d", name, fd);
|
1050
911
|
grpc_iomgr_register_object(&new_fd->iomgr_object, fd_name);
|
1051
|
-
#
|
1052
|
-
|
912
|
+
#ifndef NDEBUG
|
913
|
+
if (GRPC_TRACER_ON(grpc_trace_fd_refcount)) {
|
914
|
+
gpr_log(GPR_DEBUG, "FD %d %p create %s", fd, new_fd, fd_name);
|
915
|
+
}
|
1053
916
|
#endif
|
1054
917
|
gpr_free(fd_name);
|
1055
918
|
return new_fd;
|
@@ -1068,25 +931,13 @@ static int fd_wrapped_fd(grpc_fd *fd) {
|
|
1068
931
|
|
1069
932
|
static void fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
|
1070
933
|
grpc_closure *on_done, int *release_fd,
|
1071
|
-
const char *reason) {
|
1072
|
-
bool is_fd_closed = false;
|
934
|
+
bool already_closed, const char *reason) {
|
1073
935
|
grpc_error *error = GRPC_ERROR_NONE;
|
1074
936
|
polling_island *unref_pi = NULL;
|
1075
937
|
|
1076
938
|
gpr_mu_lock(&fd->po.mu);
|
1077
939
|
fd->on_done_closure = on_done;
|
1078
940
|
|
1079
|
-
/* If release_fd is not NULL, we should be relinquishing control of the file
|
1080
|
-
descriptor fd->fd (but we still own the grpc_fd structure). */
|
1081
|
-
if (release_fd != NULL) {
|
1082
|
-
*release_fd = fd->fd;
|
1083
|
-
} else {
|
1084
|
-
close(fd->fd);
|
1085
|
-
is_fd_closed = true;
|
1086
|
-
}
|
1087
|
-
|
1088
|
-
fd->orphaned = true;
|
1089
|
-
|
1090
941
|
/* Remove the active status but keep referenced. We want this grpc_fd struct
|
1091
942
|
to be alive (and not added to freelist) until the end of this function */
|
1092
943
|
REF_BY(fd, 1, reason);
|
@@ -1101,14 +952,24 @@ static void fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
|
|
1101
952
|
before doing this.) */
|
1102
953
|
if (fd->po.pi != NULL) {
|
1103
954
|
polling_island *pi_latest = polling_island_lock(fd->po.pi);
|
1104
|
-
polling_island_remove_fd_locked(pi_latest, fd,
|
955
|
+
polling_island_remove_fd_locked(pi_latest, fd, already_closed, &error);
|
1105
956
|
gpr_mu_unlock(&pi_latest->mu);
|
1106
957
|
|
1107
958
|
unref_pi = fd->po.pi;
|
1108
959
|
fd->po.pi = NULL;
|
1109
960
|
}
|
1110
961
|
|
1111
|
-
|
962
|
+
/* If release_fd is not NULL, we should be relinquishing control of the file
|
963
|
+
descriptor fd->fd (but we still own the grpc_fd structure). */
|
964
|
+
if (release_fd != NULL) {
|
965
|
+
*release_fd = fd->fd;
|
966
|
+
} else {
|
967
|
+
close(fd->fd);
|
968
|
+
}
|
969
|
+
|
970
|
+
fd->orphaned = true;
|
971
|
+
|
972
|
+
GRPC_CLOSURE_SCHED(exec_ctx, fd->on_done_closure, GRPC_ERROR_REF(error));
|
1112
973
|
|
1113
974
|
gpr_mu_unlock(&fd->po.mu);
|
1114
975
|
UNREF_BY(fd, 2, reason); /* Drop the reference */
|
@@ -1145,20 +1006,12 @@ static void fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_error *why) {
|
|
1145
1006
|
|
1146
1007
|
static void fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
|
1147
1008
|
grpc_closure *closure) {
|
1148
|
-
grpc_lfev_notify_on(exec_ctx, &fd->read_closure, closure);
|
1009
|
+
grpc_lfev_notify_on(exec_ctx, &fd->read_closure, closure, "read");
|
1149
1010
|
}
|
1150
1011
|
|
1151
1012
|
static void fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
|
1152
1013
|
grpc_closure *closure) {
|
1153
|
-
grpc_lfev_notify_on(exec_ctx, &fd->write_closure, closure);
|
1154
|
-
}
|
1155
|
-
|
1156
|
-
static grpc_workqueue *fd_get_workqueue(grpc_fd *fd) {
|
1157
|
-
gpr_mu_lock(&fd->po.mu);
|
1158
|
-
grpc_workqueue *workqueue =
|
1159
|
-
GRPC_WORKQUEUE_REF((grpc_workqueue *)fd->po.pi, "fd_get_workqueue");
|
1160
|
-
gpr_mu_unlock(&fd->po.mu);
|
1161
|
-
return workqueue;
|
1014
|
+
grpc_lfev_notify_on(exec_ctx, &fd->write_closure, closure, "write");
|
1162
1015
|
}
|
1163
1016
|
|
1164
1017
|
/*******************************************************************************
|
@@ -1313,7 +1166,7 @@ static void pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
|
|
1313
1166
|
gpr_mu_init(&pollset->po.mu);
|
1314
1167
|
*mu = &pollset->po.mu;
|
1315
1168
|
pollset->po.pi = NULL;
|
1316
|
-
#
|
1169
|
+
#ifndef NDEBUG
|
1317
1170
|
pollset->po.obj_type = POLL_OBJ_POLLSET;
|
1318
1171
|
#endif
|
1319
1172
|
|
@@ -1369,7 +1222,7 @@ static int poll_deadline_to_millis_timeout(gpr_timespec deadline,
|
|
1369
1222
|
|
1370
1223
|
static void fd_become_readable(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
|
1371
1224
|
grpc_pollset *notifier) {
|
1372
|
-
grpc_lfev_set_ready(exec_ctx, &fd->read_closure);
|
1225
|
+
grpc_lfev_set_ready(exec_ctx, &fd->read_closure, "read");
|
1373
1226
|
|
1374
1227
|
/* Note, it is possible that fd_become_readable might be called twice with
|
1375
1228
|
different 'notifier's when an fd becomes readable and it is in two epoll
|
@@ -1381,7 +1234,7 @@ static void fd_become_readable(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
|
|
1381
1234
|
}
|
1382
1235
|
|
1383
1236
|
static void fd_become_writable(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
|
1384
|
-
grpc_lfev_set_ready(exec_ctx, &fd->write_closure);
|
1237
|
+
grpc_lfev_set_ready(exec_ctx, &fd->write_closure, "write");
|
1385
1238
|
}
|
1386
1239
|
|
1387
1240
|
static void pollset_release_polling_island(grpc_exec_ctx *exec_ctx,
|
@@ -1401,7 +1254,7 @@ static void finish_shutdown_locked(grpc_exec_ctx *exec_ctx,
|
|
1401
1254
|
|
1402
1255
|
/* Release the ref and set pollset->po.pi to NULL */
|
1403
1256
|
pollset_release_polling_island(exec_ctx, pollset, "ps_shutdown");
|
1404
|
-
|
1257
|
+
GRPC_CLOSURE_SCHED(exec_ctx, pollset->shutdown_done, GRPC_ERROR_NONE);
|
1405
1258
|
}
|
1406
1259
|
|
1407
1260
|
/* pollset->po.mu lock must be held by the caller before calling this */
|
@@ -1432,33 +1285,6 @@ static void pollset_destroy(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset) {
|
|
1432
1285
|
gpr_mu_destroy(&pollset->po.mu);
|
1433
1286
|
}
|
1434
1287
|
|
1435
|
-
static bool maybe_do_workqueue_work(grpc_exec_ctx *exec_ctx,
|
1436
|
-
polling_island *pi) {
|
1437
|
-
if (gpr_mu_trylock(&pi->workqueue_read_mu)) {
|
1438
|
-
gpr_mpscq_node *n = gpr_mpscq_pop(&pi->workqueue_items);
|
1439
|
-
gpr_mu_unlock(&pi->workqueue_read_mu);
|
1440
|
-
if (n != NULL) {
|
1441
|
-
if (gpr_atm_full_fetch_add(&pi->workqueue_item_count, -1) > 1) {
|
1442
|
-
workqueue_maybe_wakeup(pi);
|
1443
|
-
}
|
1444
|
-
grpc_closure *c = (grpc_closure *)n;
|
1445
|
-
grpc_error *error = c->error_data.error;
|
1446
|
-
#ifndef NDEBUG
|
1447
|
-
c->scheduled = false;
|
1448
|
-
#endif
|
1449
|
-
c->cb(exec_ctx, c->cb_arg, error);
|
1450
|
-
GRPC_ERROR_UNREF(error);
|
1451
|
-
return true;
|
1452
|
-
} else if (gpr_atm_no_barrier_load(&pi->workqueue_item_count) > 0) {
|
1453
|
-
/* n == NULL might mean there's work but it's not available to be popped
|
1454
|
-
* yet - try to ensure another workqueue wakes up to check shortly if so
|
1455
|
-
*/
|
1456
|
-
workqueue_maybe_wakeup(pi);
|
1457
|
-
}
|
1458
|
-
}
|
1459
|
-
return false;
|
1460
|
-
}
|
1461
|
-
|
1462
1288
|
/* NOTE: This function may modify 'now' */
|
1463
1289
|
static bool acquire_polling_lease(grpc_pollset_worker *worker,
|
1464
1290
|
polling_island *pi, gpr_timespec deadline,
|
@@ -1594,12 +1420,7 @@ static void pollset_do_epoll_pwait(grpc_exec_ctx *exec_ctx, int epoll_fd,
|
|
1594
1420
|
|
1595
1421
|
for (int i = 0; i < ep_rv; ++i) {
|
1596
1422
|
void *data_ptr = ep_ev[i].data.ptr;
|
1597
|
-
if (data_ptr == &
|
1598
|
-
append_error(error,
|
1599
|
-
grpc_wakeup_fd_consume_wakeup(&pi->workqueue_wakeup_fd),
|
1600
|
-
err_desc);
|
1601
|
-
maybe_do_workqueue_work(exec_ctx, pi);
|
1602
|
-
} else if (data_ptr == &polling_island_wakeup_fd) {
|
1423
|
+
if (data_ptr == &polling_island_wakeup_fd) {
|
1603
1424
|
GRPC_POLLING_TRACE(
|
1604
1425
|
"pollset_work: pollset: %p, worker: %p polling island (epoll_fd: "
|
1605
1426
|
"%d) got merged",
|
@@ -1675,15 +1496,10 @@ static void pollset_work_and_unlock(grpc_exec_ctx *exec_ctx,
|
|
1675
1496
|
PI_ADD_REF(pi, "ps_work");
|
1676
1497
|
gpr_mu_unlock(&pollset->po.mu);
|
1677
1498
|
|
1678
|
-
|
1679
|
-
|
1680
|
-
|
1681
|
-
|
1682
|
-
g_current_thread_polling_island = pi;
|
1683
|
-
pollset_do_epoll_pwait(exec_ctx, epoll_fd, pollset, pi, worker, now,
|
1684
|
-
deadline, sig_mask, error);
|
1685
|
-
g_current_thread_polling_island = NULL;
|
1686
|
-
}
|
1499
|
+
g_current_thread_polling_island = pi;
|
1500
|
+
pollset_do_epoll_pwait(exec_ctx, epoll_fd, pollset, pi, worker, now, deadline,
|
1501
|
+
sig_mask, error);
|
1502
|
+
g_current_thread_polling_island = NULL;
|
1687
1503
|
|
1688
1504
|
GPR_ASSERT(pi != NULL);
|
1689
1505
|
|
@@ -1804,7 +1620,7 @@ static void add_poll_object(grpc_exec_ctx *exec_ctx, poll_obj *bag,
|
|
1804
1620
|
poll_obj_type item_type) {
|
1805
1621
|
GPR_TIMER_BEGIN("add_poll_object", 0);
|
1806
1622
|
|
1807
|
-
#
|
1623
|
+
#ifndef NDEBUG
|
1808
1624
|
GPR_ASSERT(item->obj_type == item_type);
|
1809
1625
|
GPR_ASSERT(bag->obj_type == bag_type);
|
1810
1626
|
#endif
|
@@ -1963,7 +1779,7 @@ static grpc_pollset_set *pollset_set_create(void) {
|
|
1963
1779
|
grpc_pollset_set *pss = gpr_malloc(sizeof(*pss));
|
1964
1780
|
gpr_mu_init(&pss->po.mu);
|
1965
1781
|
pss->po.pi = NULL;
|
1966
|
-
#
|
1782
|
+
#ifndef NDEBUG
|
1967
1783
|
pss->po.obj_type = POLL_OBJ_POLLSET_SET;
|
1968
1784
|
#endif
|
1969
1785
|
return pss;
|
@@ -2036,7 +1852,6 @@ static const grpc_event_engine_vtable vtable = {
|
|
2036
1852
|
.fd_notify_on_read = fd_notify_on_read,
|
2037
1853
|
.fd_notify_on_write = fd_notify_on_write,
|
2038
1854
|
.fd_get_read_notifier_pollset = fd_get_read_notifier_pollset,
|
2039
|
-
.fd_get_workqueue = fd_get_workqueue,
|
2040
1855
|
|
2041
1856
|
.pollset_init = pollset_init,
|
2042
1857
|
.pollset_shutdown = pollset_shutdown,
|
@@ -2054,10 +1869,6 @@ static const grpc_event_engine_vtable vtable = {
|
|
2054
1869
|
.pollset_set_add_fd = pollset_set_add_fd,
|
2055
1870
|
.pollset_set_del_fd = pollset_set_del_fd,
|
2056
1871
|
|
2057
|
-
.workqueue_ref = workqueue_ref,
|
2058
|
-
.workqueue_unref = workqueue_unref,
|
2059
|
-
.workqueue_scheduler = workqueue_scheduler,
|
2060
|
-
|
2061
1872
|
.shutdown_engine = shutdown_engine,
|
2062
1873
|
};
|
2063
1874
|
|