grpc 1.37.1 → 1.38.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 +64 -58
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +5 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +628 -3101
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +36 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +84 -61
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -9
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -11
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +43 -28
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +16 -15
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +31 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +101 -93
- data/src/core/ext/xds/xds_api.h +6 -6
- data/src/core/ext/xds/xds_bootstrap.cc +97 -159
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +310 -178
- data/src/core/ext/xds/xds_client.h +41 -27
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +3 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -11
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +10 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/event_engine/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +180 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/exec_ctx.cc +4 -4
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +11 -10
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +36 -34
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +39 -39
- data/src/core/lib/matchers/matchers.h +28 -28
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +22 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +33 -32
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/surface/call.cc +46 -45
- data/src/core/lib/surface/call.h +2 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +28 -22
- data/src/core/lib/surface/server.h +16 -15
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +19 -8
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/tsi/alts/crypt/gsec.h +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +477 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +185 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +68 -45
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51dac13a423a983663add4094ff9c6613bfe0371036c811f9c6a4309e7a24cef
|
4
|
+
data.tar.gz: 3361cb6878d0dcdcb21cde9ab60cb7ff5e98cd7e5564e0ca8b73918f381d2054
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c840c74174303c1fb59fcb9f657b226e49fc2c40ef7b300be2651c35e2219d82faccd6c92b9866a7b27df77f7a41df5b1c41ccad80b042f1e87b4d26b9f0abdc
|
7
|
+
data.tar.gz: 6c7232e81f311da492ace101729178db8cef271d7d077b5d805c7d1303936ae9c7ba1b1bd140deefc7ac78f928770471a0b5f499f3d7c2afb6f754f32dcb349f
|
data/Makefile
CHANGED
@@ -454,9 +454,9 @@ E = @echo
|
|
454
454
|
Q = @
|
455
455
|
endif
|
456
456
|
|
457
|
-
CORE_VERSION =
|
458
|
-
CPP_VERSION = 1.
|
459
|
-
CSHARP_VERSION = 2.
|
457
|
+
CORE_VERSION = 16.0.0
|
458
|
+
CPP_VERSION = 1.38.0-pre1
|
459
|
+
CSHARP_VERSION = 2.38.0-pre1
|
460
460
|
|
461
461
|
CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
|
462
462
|
CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
|
@@ -492,7 +492,7 @@ SHARED_EXT_CORE = dll
|
|
492
492
|
SHARED_EXT_CPP = dll
|
493
493
|
SHARED_EXT_CSHARP = dll
|
494
494
|
SHARED_PREFIX =
|
495
|
-
SHARED_VERSION_CORE = -
|
495
|
+
SHARED_VERSION_CORE = -16
|
496
496
|
SHARED_VERSION_CPP = -1
|
497
497
|
SHARED_VERSION_CSHARP = -2
|
498
498
|
else ifeq ($(SYSTEM),Darwin)
|
@@ -891,8 +891,8 @@ $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE):
|
|
891
891
|
ifeq ($(SYSTEM),Darwin)
|
892
892
|
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)address_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBADDRESS_SORTING_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
893
893
|
else
|
894
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libaddress_sorting.so.
|
895
|
-
$(Q) ln -sf $(SHARED_PREFIX)address_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).so.
|
894
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libaddress_sorting.so.16 -o $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBADDRESS_SORTING_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
895
|
+
$(Q) ln -sf $(SHARED_PREFIX)address_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).so.16
|
896
896
|
$(Q) ln -sf $(SHARED_PREFIX)address_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).so
|
897
897
|
endif
|
898
898
|
endif
|
@@ -905,6 +905,17 @@ endif
|
|
905
905
|
|
906
906
|
# start of build recipe for library "gpr" (generated by makelib(lib) template function)
|
907
907
|
LIBGPR_SRC = \
|
908
|
+
src/core/ext/upb-generated/google/api/annotations.upb.c \
|
909
|
+
src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c \
|
910
|
+
src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c \
|
911
|
+
src/core/ext/upb-generated/google/api/http.upb.c \
|
912
|
+
src/core/ext/upb-generated/google/protobuf/any.upb.c \
|
913
|
+
src/core/ext/upb-generated/google/protobuf/duration.upb.c \
|
914
|
+
src/core/ext/upb-generated/google/protobuf/empty.upb.c \
|
915
|
+
src/core/ext/upb-generated/google/protobuf/struct.upb.c \
|
916
|
+
src/core/ext/upb-generated/google/protobuf/timestamp.upb.c \
|
917
|
+
src/core/ext/upb-generated/google/protobuf/wrappers.upb.c \
|
918
|
+
src/core/ext/upb-generated/google/rpc/status.upb.c \
|
908
919
|
src/core/lib/gpr/alloc.cc \
|
909
920
|
src/core/lib/gpr/atm.cc \
|
910
921
|
src/core/lib/gpr/cpu_iphone.cc \
|
@@ -945,6 +956,7 @@ LIBGPR_SRC = \
|
|
945
956
|
src/core/lib/gprpp/mpscq.cc \
|
946
957
|
src/core/lib/gprpp/stat_posix.cc \
|
947
958
|
src/core/lib/gprpp/stat_windows.cc \
|
959
|
+
src/core/lib/gprpp/status_helper.cc \
|
948
960
|
src/core/lib/gprpp/thd_posix.cc \
|
949
961
|
src/core/lib/gprpp/thd_windows.cc \
|
950
962
|
src/core/lib/gprpp/time_util.cc \
|
@@ -1009,19 +1021,19 @@ endif
|
|
1009
1021
|
|
1010
1022
|
|
1011
1023
|
ifeq ($(SYSTEM),MINGW32)
|
1012
|
-
$(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGPR_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP)
|
1024
|
+
$(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGPR_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libupb.a
|
1013
1025
|
$(E) "[LD] Linking $@"
|
1014
1026
|
$(Q) mkdir -p `dirname $@`
|
1015
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
1027
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(LIBDIR)/$(CONFIG)/libupb.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
1016
1028
|
else
|
1017
|
-
$(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGPR_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP)
|
1029
|
+
$(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGPR_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libupb.a
|
1018
1030
|
$(E) "[LD] Linking $@"
|
1019
1031
|
$(Q) mkdir -p `dirname $@`
|
1020
1032
|
ifeq ($(SYSTEM),Darwin)
|
1021
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
1033
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(LIBDIR)/$(CONFIG)/libupb.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
1022
1034
|
else
|
1023
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgpr.so.
|
1024
|
-
$(Q) ln -sf $(SHARED_PREFIX)gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).so.
|
1035
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgpr.so.16 -o $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(LIBDIR)/$(CONFIG)/libupb.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
1036
|
+
$(Q) ln -sf $(SHARED_PREFIX)gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).so.16
|
1025
1037
|
$(Q) ln -sf $(SHARED_PREFIX)gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).so
|
1026
1038
|
endif
|
1027
1039
|
endif
|
@@ -1086,6 +1098,8 @@ LIBGRPC_SRC = \
|
|
1086
1098
|
src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc \
|
1087
1099
|
src/core/ext/filters/client_channel/resolver_registry.cc \
|
1088
1100
|
src/core/ext/filters/client_channel/resolver_result_parsing.cc \
|
1101
|
+
src/core/ext/filters/client_channel/retry_filter.cc \
|
1102
|
+
src/core/ext/filters/client_channel/retry_service_config.cc \
|
1089
1103
|
src/core/ext/filters/client_channel/retry_throttle.cc \
|
1090
1104
|
src/core/ext/filters/client_channel/server_address.cc \
|
1091
1105
|
src/core/ext/filters/client_channel/service_config.cc \
|
@@ -1210,17 +1224,6 @@ LIBGRPC_SRC = \
|
|
1210
1224
|
src/core/ext/upb-generated/envoy/type/v3/percent.upb.c \
|
1211
1225
|
src/core/ext/upb-generated/envoy/type/v3/range.upb.c \
|
1212
1226
|
src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c \
|
1213
|
-
src/core/ext/upb-generated/google/api/annotations.upb.c \
|
1214
|
-
src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c \
|
1215
|
-
src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c \
|
1216
|
-
src/core/ext/upb-generated/google/api/http.upb.c \
|
1217
|
-
src/core/ext/upb-generated/google/protobuf/any.upb.c \
|
1218
|
-
src/core/ext/upb-generated/google/protobuf/duration.upb.c \
|
1219
|
-
src/core/ext/upb-generated/google/protobuf/empty.upb.c \
|
1220
|
-
src/core/ext/upb-generated/google/protobuf/struct.upb.c \
|
1221
|
-
src/core/ext/upb-generated/google/protobuf/timestamp.upb.c \
|
1222
|
-
src/core/ext/upb-generated/google/protobuf/wrappers.upb.c \
|
1223
|
-
src/core/ext/upb-generated/google/rpc/status.upb.c \
|
1224
1227
|
src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c \
|
1225
1228
|
src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c \
|
1226
1229
|
src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c \
|
@@ -1340,6 +1343,8 @@ LIBGRPC_SRC = \
|
|
1340
1343
|
src/core/ext/xds/xds_http_fault_filter.cc \
|
1341
1344
|
src/core/ext/xds/xds_http_filters.cc \
|
1342
1345
|
src/core/ext/xds/xds_server_config_fetcher.cc \
|
1346
|
+
src/core/lib/address_utils/parse_address.cc \
|
1347
|
+
src/core/lib/address_utils/sockaddr_utils.cc \
|
1343
1348
|
src/core/lib/avl/avl.cc \
|
1344
1349
|
src/core/lib/backoff/backoff.cc \
|
1345
1350
|
src/core/lib/channel/channel_args.cc \
|
@@ -1362,6 +1367,8 @@ LIBGRPC_SRC = \
|
|
1362
1367
|
src/core/lib/debug/stats.cc \
|
1363
1368
|
src/core/lib/debug/stats_data.cc \
|
1364
1369
|
src/core/lib/debug/trace.cc \
|
1370
|
+
src/core/lib/event_engine/slice_allocator.cc \
|
1371
|
+
src/core/lib/event_engine/sockaddr.cc \
|
1365
1372
|
src/core/lib/http/format_request.cc \
|
1366
1373
|
src/core/lib/http/httpcli.cc \
|
1367
1374
|
src/core/lib/http/httpcli_security_connector.cc \
|
@@ -1407,8 +1414,6 @@ LIBGRPC_SRC = \
|
|
1407
1414
|
src/core/lib/iomgr/is_epollexclusive_available.cc \
|
1408
1415
|
src/core/lib/iomgr/load_file.cc \
|
1409
1416
|
src/core/lib/iomgr/lockfree_event.cc \
|
1410
|
-
src/core/lib/iomgr/parse_address.cc \
|
1411
|
-
src/core/lib/iomgr/poller/eventmanager_libuv.cc \
|
1412
1417
|
src/core/lib/iomgr/polling_entity.cc \
|
1413
1418
|
src/core/lib/iomgr/pollset.cc \
|
1414
1419
|
src/core/lib/iomgr/pollset_custom.cc \
|
@@ -1422,7 +1427,6 @@ LIBGRPC_SRC = \
|
|
1422
1427
|
src/core/lib/iomgr/resolve_address_posix.cc \
|
1423
1428
|
src/core/lib/iomgr/resolve_address_windows.cc \
|
1424
1429
|
src/core/lib/iomgr/resource_quota.cc \
|
1425
|
-
src/core/lib/iomgr/sockaddr_utils.cc \
|
1426
1430
|
src/core/lib/iomgr/socket_factory_posix.cc \
|
1427
1431
|
src/core/lib/iomgr/socket_mutator.cc \
|
1428
1432
|
src/core/lib/iomgr/socket_utils_common_posix.cc \
|
@@ -1593,6 +1597,10 @@ PUBLIC_HEADERS_C += \
|
|
1593
1597
|
include/grpc/byte_buffer_reader.h \
|
1594
1598
|
include/grpc/census.h \
|
1595
1599
|
include/grpc/compression.h \
|
1600
|
+
include/grpc/event_engine/channel_args.h \
|
1601
|
+
include/grpc/event_engine/event_engine.h \
|
1602
|
+
include/grpc/event_engine/port.h \
|
1603
|
+
include/grpc/event_engine/slice_allocator.h \
|
1596
1604
|
include/grpc/fork.h \
|
1597
1605
|
include/grpc/grpc.h \
|
1598
1606
|
include/grpc/grpc_posix.h \
|
@@ -1629,19 +1637,19 @@ endif
|
|
1629
1637
|
|
1630
1638
|
|
1631
1639
|
ifeq ($(SYSTEM),MINGW32)
|
1632
|
-
$(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(
|
1640
|
+
$(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(OPENSSL_DEP)
|
1633
1641
|
$(E) "[LD] Linking $@"
|
1634
1642
|
$(Q) mkdir -p `dirname $@`
|
1635
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(
|
1643
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
1636
1644
|
else
|
1637
|
-
$(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(
|
1645
|
+
$(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(OPENSSL_DEP)
|
1638
1646
|
$(E) "[LD] Linking $@"
|
1639
1647
|
$(Q) mkdir -p `dirname $@`
|
1640
1648
|
ifeq ($(SYSTEM),Darwin)
|
1641
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(
|
1649
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
1642
1650
|
else
|
1643
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.
|
1644
|
-
$(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.
|
1651
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.16 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
1652
|
+
$(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.16
|
1645
1653
|
$(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so
|
1646
1654
|
endif
|
1647
1655
|
endif
|
@@ -1688,8 +1696,8 @@ $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE):
|
|
1688
1696
|
ifeq ($(SYSTEM),Darwin)
|
1689
1697
|
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_CSHARP_EXT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
1690
1698
|
else
|
1691
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_csharp_ext.so.
|
1692
|
-
$(Q) ln -sf $(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).so.
|
1699
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_csharp_ext.so.16 -o $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_CSHARP_EXT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
1700
|
+
$(Q) ln -sf $(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).so.16
|
1693
1701
|
$(Q) ln -sf $(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).so
|
1694
1702
|
endif
|
1695
1703
|
endif
|
@@ -1747,6 +1755,8 @@ LIBGRPC_UNSECURE_SRC = \
|
|
1747
1755
|
src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc \
|
1748
1756
|
src/core/ext/filters/client_channel/resolver_registry.cc \
|
1749
1757
|
src/core/ext/filters/client_channel/resolver_result_parsing.cc \
|
1758
|
+
src/core/ext/filters/client_channel/retry_filter.cc \
|
1759
|
+
src/core/ext/filters/client_channel/retry_service_config.cc \
|
1750
1760
|
src/core/ext/filters/client_channel/retry_throttle.cc \
|
1751
1761
|
src/core/ext/filters/client_channel/server_address.cc \
|
1752
1762
|
src/core/ext/filters/client_channel/service_config.cc \
|
@@ -1801,21 +1811,12 @@ LIBGRPC_UNSECURE_SRC = \
|
|
1801
1811
|
src/core/ext/transport/chttp2/transport/writing.cc \
|
1802
1812
|
src/core/ext/transport/inproc/inproc_plugin.cc \
|
1803
1813
|
src/core/ext/transport/inproc/inproc_transport.cc \
|
1804
|
-
src/core/ext/upb-generated/google/api/annotations.upb.c \
|
1805
|
-
src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c \
|
1806
|
-
src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c \
|
1807
|
-
src/core/ext/upb-generated/google/api/http.upb.c \
|
1808
|
-
src/core/ext/upb-generated/google/protobuf/any.upb.c \
|
1809
|
-
src/core/ext/upb-generated/google/protobuf/duration.upb.c \
|
1810
|
-
src/core/ext/upb-generated/google/protobuf/empty.upb.c \
|
1811
|
-
src/core/ext/upb-generated/google/protobuf/struct.upb.c \
|
1812
|
-
src/core/ext/upb-generated/google/protobuf/timestamp.upb.c \
|
1813
|
-
src/core/ext/upb-generated/google/protobuf/wrappers.upb.c \
|
1814
|
-
src/core/ext/upb-generated/google/rpc/status.upb.c \
|
1815
1814
|
src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c \
|
1816
1815
|
src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c \
|
1817
1816
|
src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c \
|
1818
1817
|
src/core/ext/upb-generated/validate/validate.upb.c \
|
1818
|
+
src/core/lib/address_utils/parse_address.cc \
|
1819
|
+
src/core/lib/address_utils/sockaddr_utils.cc \
|
1819
1820
|
src/core/lib/avl/avl.cc \
|
1820
1821
|
src/core/lib/backoff/backoff.cc \
|
1821
1822
|
src/core/lib/channel/channel_args.cc \
|
@@ -1838,6 +1839,8 @@ LIBGRPC_UNSECURE_SRC = \
|
|
1838
1839
|
src/core/lib/debug/stats.cc \
|
1839
1840
|
src/core/lib/debug/stats_data.cc \
|
1840
1841
|
src/core/lib/debug/trace.cc \
|
1842
|
+
src/core/lib/event_engine/slice_allocator.cc \
|
1843
|
+
src/core/lib/event_engine/sockaddr.cc \
|
1841
1844
|
src/core/lib/http/format_request.cc \
|
1842
1845
|
src/core/lib/http/httpcli.cc \
|
1843
1846
|
src/core/lib/http/parser.cc \
|
@@ -1882,8 +1885,6 @@ LIBGRPC_UNSECURE_SRC = \
|
|
1882
1885
|
src/core/lib/iomgr/is_epollexclusive_available.cc \
|
1883
1886
|
src/core/lib/iomgr/load_file.cc \
|
1884
1887
|
src/core/lib/iomgr/lockfree_event.cc \
|
1885
|
-
src/core/lib/iomgr/parse_address.cc \
|
1886
|
-
src/core/lib/iomgr/poller/eventmanager_libuv.cc \
|
1887
1888
|
src/core/lib/iomgr/polling_entity.cc \
|
1888
1889
|
src/core/lib/iomgr/pollset.cc \
|
1889
1890
|
src/core/lib/iomgr/pollset_custom.cc \
|
@@ -1897,7 +1898,6 @@ LIBGRPC_UNSECURE_SRC = \
|
|
1897
1898
|
src/core/lib/iomgr/resolve_address_posix.cc \
|
1898
1899
|
src/core/lib/iomgr/resolve_address_windows.cc \
|
1899
1900
|
src/core/lib/iomgr/resource_quota.cc \
|
1900
|
-
src/core/lib/iomgr/sockaddr_utils.cc \
|
1901
1901
|
src/core/lib/iomgr/socket_factory_posix.cc \
|
1902
1902
|
src/core/lib/iomgr/socket_mutator.cc \
|
1903
1903
|
src/core/lib/iomgr/socket_utils_common_posix.cc \
|
@@ -1988,6 +1988,10 @@ PUBLIC_HEADERS_C += \
|
|
1988
1988
|
include/grpc/byte_buffer_reader.h \
|
1989
1989
|
include/grpc/census.h \
|
1990
1990
|
include/grpc/compression.h \
|
1991
|
+
include/grpc/event_engine/channel_args.h \
|
1992
|
+
include/grpc/event_engine/event_engine.h \
|
1993
|
+
include/grpc/event_engine/port.h \
|
1994
|
+
include/grpc/event_engine/slice_allocator.h \
|
1991
1995
|
include/grpc/fork.h \
|
1992
1996
|
include/grpc/grpc.h \
|
1993
1997
|
include/grpc/grpc_posix.h \
|
@@ -2013,19 +2017,19 @@ endif
|
|
2013
2017
|
|
2014
2018
|
|
2015
2019
|
ifeq ($(SYSTEM),MINGW32)
|
2016
|
-
$(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a
|
2020
|
+
$(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a
|
2017
2021
|
$(E) "[LD] Linking $@"
|
2018
2022
|
$(Q) mkdir -p `dirname $@`
|
2019
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(
|
2023
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
2020
2024
|
else
|
2021
|
-
$(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a
|
2025
|
+
$(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a
|
2022
2026
|
$(E) "[LD] Linking $@"
|
2023
2027
|
$(Q) mkdir -p `dirname $@`
|
2024
2028
|
ifeq ($(SYSTEM),Darwin)
|
2025
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(
|
2029
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
2026
2030
|
else
|
2027
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_unsecure.so.
|
2028
|
-
$(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).so.
|
2031
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_unsecure.so.16 -o $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
2032
|
+
$(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).so.16
|
2029
2033
|
$(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).so
|
2030
2034
|
endif
|
2031
2035
|
endif
|
@@ -2145,7 +2149,6 @@ LIBBORINGSSL_SRC = \
|
|
2145
2149
|
third_party/boringssl-with-bazel/src/crypto/ex_data.c \
|
2146
2150
|
third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c \
|
2147
2151
|
third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c \
|
2148
|
-
third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c \
|
2149
2152
|
third_party/boringssl-with-bazel/src/crypto/hkdf/hkdf.c \
|
2150
2153
|
third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c \
|
2151
2154
|
third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c \
|
@@ -2212,7 +2215,6 @@ LIBBORINGSSL_SRC = \
|
|
2212
2215
|
third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c \
|
2213
2216
|
third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c \
|
2214
2217
|
third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c \
|
2215
|
-
third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c \
|
2216
2218
|
third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c \
|
2217
2219
|
third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c \
|
2218
2220
|
third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c \
|
@@ -2277,6 +2279,7 @@ LIBBORINGSSL_SRC = \
|
|
2277
2279
|
third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc \
|
2278
2280
|
third_party/boringssl-with-bazel/src/ssl/dtls_method.cc \
|
2279
2281
|
third_party/boringssl-with-bazel/src/ssl/dtls_record.cc \
|
2282
|
+
third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc \
|
2280
2283
|
third_party/boringssl-with-bazel/src/ssl/handoff.cc \
|
2281
2284
|
third_party/boringssl-with-bazel/src/ssl/handshake.cc \
|
2282
2285
|
third_party/boringssl-with-bazel/src/ssl/handshake_client.cc \
|
@@ -2421,8 +2424,8 @@ $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBUPB_OB
|
|
2421
2424
|
ifeq ($(SYSTEM),Darwin)
|
2422
2425
|
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)upb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBUPB_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
2423
2426
|
else
|
2424
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libupb.so.
|
2425
|
-
$(Q) ln -sf $(SHARED_PREFIX)upb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).so.
|
2427
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libupb.so.16 -o $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBUPB_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
|
2428
|
+
$(Q) ln -sf $(SHARED_PREFIX)upb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).so.16
|
2426
2429
|
$(Q) ln -sf $(SHARED_PREFIX)upb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).so
|
2427
2430
|
endif
|
2428
2431
|
endif
|
@@ -2579,6 +2582,7 @@ LIBGRPC_ABSEIL_SRC = \
|
|
2579
2582
|
third_party/abseil-cpp/absl/debugging/symbolize.cc \
|
2580
2583
|
third_party/abseil-cpp/absl/hash/internal/city.cc \
|
2581
2584
|
third_party/abseil-cpp/absl/hash/internal/hash.cc \
|
2585
|
+
third_party/abseil-cpp/absl/hash/internal/wyhash.cc \
|
2582
2586
|
third_party/abseil-cpp/absl/numeric/int128.cc \
|
2583
2587
|
third_party/abseil-cpp/absl/status/status.cc \
|
2584
2588
|
third_party/abseil-cpp/absl/status/status_payload_printer.cc \
|
@@ -2589,6 +2593,8 @@ LIBGRPC_ABSEIL_SRC = \
|
|
2589
2593
|
third_party/abseil-cpp/absl/strings/escaping.cc \
|
2590
2594
|
third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc \
|
2591
2595
|
third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc \
|
2596
|
+
third_party/abseil-cpp/absl/strings/internal/cord_internal.cc \
|
2597
|
+
third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc \
|
2592
2598
|
third_party/abseil-cpp/absl/strings/internal/escaping.cc \
|
2593
2599
|
third_party/abseil-cpp/absl/strings/internal/memutil.cc \
|
2594
2600
|
third_party/abseil-cpp/absl/strings/internal/ostringstream.cc \
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# gRPC EventEngine
|
2
|
+
|
3
|
+
An EventEngine handles all cross-platform I/O, task execution, and DNS
|
4
|
+
resolution for gRPC. A default, cross-platform implementation is provided with
|
5
|
+
gRPC, but part of the intent here is to provide an interface for external
|
6
|
+
integrators to bring their own functionality. This allows for integration with
|
7
|
+
external event loops, siloing I/O and task execution between channels or
|
8
|
+
servers, and other custom integrations that were previously unsupported.
|
9
|
+
|
10
|
+
*WARNING*: This is experimental code and is subject to change.
|
11
|
+
|
12
|
+
## High level expectations of an EventEngine implementation
|
13
|
+
|
14
|
+
### Provide their own I/O threads
|
15
|
+
EventEngines are expected to internally create whatever threads are required to
|
16
|
+
perform I/O and execute callbacks. For example, an EventEngine implementation
|
17
|
+
may want to spawn separate thread pools for polling and callback execution.
|
18
|
+
|
19
|
+
### Provisioning data buffers via Slice allocation
|
20
|
+
At a high level, gRPC provides a `ResourceQuota` system that allows gRPC to
|
21
|
+
reclaim memory and degrade gracefully when memory reaches application-defined
|
22
|
+
thresholds. To enable this feature, the memory allocation of read/write buffers
|
23
|
+
within an EventEngine must be acquired in the form of Slices from
|
24
|
+
SliceAllocators. This is covered more fully in the gRFC and code.
|
25
|
+
|
26
|
+
### Documentating expectations around callback execution
|
27
|
+
Some callbacks may be expensive to run. EventEngines should decide on and
|
28
|
+
document whether callback execution might block polling operations. This way,
|
29
|
+
application developers can plan accordingly (e.g., run their expensive callbacks
|
30
|
+
on a separate thread if necessary).
|
31
|
+
|
32
|
+
### Handling concurrent usage
|
33
|
+
Assume that gRPC may use an EventEngine concurrently across multiple threads.
|
34
|
+
|
35
|
+
## TODO: documentation
|
36
|
+
|
37
|
+
* Example usage
|
38
|
+
* Link to gRFC
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// Copyright 2021 The gRPC Authors
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
#ifndef GRPC_EVENT_ENGINE_CHANNEL_ARGS_H
|
15
|
+
#define GRPC_EVENT_ENGINE_CHANNEL_ARGS_H
|
16
|
+
|
17
|
+
#include <grpc/support/port_platform.h>
|
18
|
+
|
19
|
+
namespace grpc_event_engine {
|
20
|
+
namespace experimental {
|
21
|
+
|
22
|
+
// TODO(hork): define
|
23
|
+
class ChannelArgs;
|
24
|
+
|
25
|
+
} // namespace experimental
|
26
|
+
} // namespace grpc_event_engine
|
27
|
+
|
28
|
+
#endif // GRPC_EVENT_ENGINE_CHANNEL_ARGS_H
|
@@ -0,0 +1,336 @@
|
|
1
|
+
// Copyright 2021 The gRPC Authors
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
#ifndef GRPC_EVENT_ENGINE_EVENT_ENGINE_H
|
15
|
+
#define GRPC_EVENT_ENGINE_EVENT_ENGINE_H
|
16
|
+
|
17
|
+
#include <grpc/support/port_platform.h>
|
18
|
+
|
19
|
+
#include <functional>
|
20
|
+
#include <vector>
|
21
|
+
|
22
|
+
#include "absl/status/status.h"
|
23
|
+
#include "absl/status/statusor.h"
|
24
|
+
#include "absl/time/time.h"
|
25
|
+
|
26
|
+
#include "grpc/event_engine/channel_args.h"
|
27
|
+
#include "grpc/event_engine/port.h"
|
28
|
+
#include "grpc/event_engine/slice_allocator.h"
|
29
|
+
|
30
|
+
// TODO(hork): explicitly define lifetimes and ownership of all objects.
|
31
|
+
// TODO(hork): Define the Endpoint::Write metrics collection system
|
32
|
+
|
33
|
+
namespace grpc_event_engine {
|
34
|
+
namespace experimental {
|
35
|
+
|
36
|
+
////////////////////////////////////////////////////////////////////////////////
|
37
|
+
/// The EventEngine encapsulates all platform-specific behaviors related to low
|
38
|
+
/// level network I/O, timers, asynchronous execution, and DNS resolution.
|
39
|
+
///
|
40
|
+
/// This interface allows developers to provide their own event management and
|
41
|
+
/// network stacks. Motivating uses cases for supporting custom EventEngines
|
42
|
+
/// include the ability to hook into external event loops, and using different
|
43
|
+
/// EventEngine instances for each channel to better insulate network I/O and
|
44
|
+
/// callback processing from other channels.
|
45
|
+
///
|
46
|
+
/// A default cross-platform EventEngine instance is provided by gRPC.
|
47
|
+
///
|
48
|
+
/// LIFESPAN AND OWNERSHIP
|
49
|
+
///
|
50
|
+
/// gRPC takes shared ownership of EventEngines via std::shared_ptrs to ensure
|
51
|
+
/// that the engines remain available until they are no longer needed. Depending
|
52
|
+
/// on the use case, engines may live until gRPC is shut down.
|
53
|
+
///
|
54
|
+
/// EXAMPLE USAGE (Not yet implemented)
|
55
|
+
///
|
56
|
+
/// Custom EventEngines can be specified per channel, and allow configuration
|
57
|
+
/// for both clients and servers. To set a custom EventEngine for a client
|
58
|
+
/// channel, you can do something like the following:
|
59
|
+
///
|
60
|
+
/// ChannelArguments args;
|
61
|
+
/// std::shared_ptr<EventEngine> engine = std::make_shared<MyEngine>(...);
|
62
|
+
/// args.SetEventEngine(engine);
|
63
|
+
/// MyAppClient client(grpc::CreateCustomChannel(
|
64
|
+
/// "localhost:50051", grpc::InsecureChannelCredentials(), args));
|
65
|
+
///
|
66
|
+
/// A gRPC server can use a custom EventEngine by calling the
|
67
|
+
/// ServerBuilder::SetEventEngine method:
|
68
|
+
///
|
69
|
+
/// ServerBuilder builder;
|
70
|
+
/// std::shared_ptr<EventEngine> engine = std::make_shared<MyEngine>(...);
|
71
|
+
/// builder.SetEventEngine(engine);
|
72
|
+
/// std::unique_ptr<Server> server(builder.BuildAndStart());
|
73
|
+
/// server->Wait();
|
74
|
+
///
|
75
|
+
////////////////////////////////////////////////////////////////////////////////
|
76
|
+
class EventEngine {
|
77
|
+
public:
|
78
|
+
/// A basic callable function. The first argument to all callbacks is an
|
79
|
+
/// absl::Status indicating the status of the operation associated with this
|
80
|
+
/// callback. Each EventEngine method that takes a callback parameter, defines
|
81
|
+
/// the expected sets and meanings of statuses for that use case.
|
82
|
+
using Callback = std::function<void(absl::Status)>;
|
83
|
+
/// A callback handle, used to cancel a callback.
|
84
|
+
struct TaskHandle {
|
85
|
+
intptr_t key;
|
86
|
+
};
|
87
|
+
/// A thin wrapper around a platform-specific sockaddr type. A sockaddr struct
|
88
|
+
/// exists on all platforms that gRPC supports.
|
89
|
+
///
|
90
|
+
/// Platforms are expected to provide definitions for:
|
91
|
+
/// * sockaddr
|
92
|
+
/// * sockaddr_in
|
93
|
+
/// * sockaddr_in6
|
94
|
+
class ResolvedAddress {
|
95
|
+
public:
|
96
|
+
static constexpr socklen_t MAX_SIZE_BYTES = 128;
|
97
|
+
|
98
|
+
ResolvedAddress(const sockaddr* address, socklen_t size);
|
99
|
+
const struct sockaddr* address() const;
|
100
|
+
socklen_t size() const;
|
101
|
+
|
102
|
+
private:
|
103
|
+
char address_[MAX_SIZE_BYTES];
|
104
|
+
socklen_t size_;
|
105
|
+
};
|
106
|
+
|
107
|
+
/// An Endpoint represents one end of a connection between a gRPC client and
|
108
|
+
/// server. Endpoints are created when connections are established, and
|
109
|
+
/// Endpoint operations are gRPC's primary means of communication.
|
110
|
+
///
|
111
|
+
/// Endpoints must use the provided SliceAllocator for all data buffer memory
|
112
|
+
/// allocations. gRPC allows applications to set memory constraints per
|
113
|
+
/// Channel or Server, and the implementation depends on all dynamic memory
|
114
|
+
/// allocation being handled by the quota system.
|
115
|
+
class Endpoint {
|
116
|
+
public:
|
117
|
+
/// The Endpoint destructor is responsible for shutting down all connections
|
118
|
+
/// and invoking all pending read or write callbacks with an error status.
|
119
|
+
virtual ~Endpoint() = default;
|
120
|
+
/// Read data from the Endpoint.
|
121
|
+
///
|
122
|
+
/// When data is available on the connection, that data is moved into the
|
123
|
+
/// \a buffer, and the \a on_read callback is called. The caller must ensure
|
124
|
+
/// that the callback has access to the buffer when executed later.
|
125
|
+
/// Ownership of the buffer is not transferred. Valid slices *may* be placed
|
126
|
+
/// into the buffer even if the callback is invoked with a non-OK Status.
|
127
|
+
///
|
128
|
+
/// For failed read operations, implementations should pass the appropriate
|
129
|
+
/// statuses to \a on_read. For example, callbacks might expect to receive
|
130
|
+
/// DEADLINE_EXCEEDED when the deadline is exceeded, and CANCELLED on
|
131
|
+
/// endpoint shutdown.
|
132
|
+
virtual void Read(Callback on_read, SliceBuffer* buffer,
|
133
|
+
absl::Time deadline) = 0;
|
134
|
+
/// Write data out on the connection.
|
135
|
+
///
|
136
|
+
/// \a on_writable is called when the connection is ready for more data. The
|
137
|
+
/// Slices within the \a data buffer may be mutated at will by the Endpoint
|
138
|
+
/// until \a on_writable is called. The \a data SliceBuffer will remain
|
139
|
+
/// valid after calling \a Write, but its state is otherwise undefined.
|
140
|
+
///
|
141
|
+
/// For failed write operations, implementations should pass the appropriate
|
142
|
+
/// statuses to \a on_writable. For example, callbacks might expect to
|
143
|
+
/// receive DEADLINE_EXCEEDED when the deadline is exceeded, and CANCELLED
|
144
|
+
/// on endpoint shutdown.
|
145
|
+
virtual void Write(Callback on_writable, SliceBuffer* data,
|
146
|
+
absl::Time deadline) = 0;
|
147
|
+
// TODO(hork): define status codes for the callback
|
148
|
+
// TODO(hork): define cleanup operations, lifetimes, responsibilities.
|
149
|
+
virtual void Close(Callback on_close) = 0;
|
150
|
+
/// These methods return an address in the format described in DNSResolver.
|
151
|
+
/// The returned values are owned by the Endpoint and are expected to remain
|
152
|
+
/// valid for the life of the Endpoint.
|
153
|
+
virtual const ResolvedAddress* GetPeerAddress() const = 0;
|
154
|
+
virtual const ResolvedAddress* GetLocalAddress() const = 0;
|
155
|
+
};
|
156
|
+
|
157
|
+
/// Called when a new connection is established.
|
158
|
+
///
|
159
|
+
/// If the connection attempt was not successful, implementations should pass
|
160
|
+
/// the appropriate statuses to this callback. For example, callbacks might
|
161
|
+
/// expect to receive DEADLINE_EXCEEDED statuses when appropriate, or
|
162
|
+
/// CANCELLED statuses on EventEngine shutdown.
|
163
|
+
using OnConnectCallback =
|
164
|
+
std::function<void(absl::StatusOr<std::unique_ptr<Endpoint>>)>;
|
165
|
+
|
166
|
+
/// An EventEngine Listener listens for incoming connection requests from gRPC
|
167
|
+
/// clients and initiates request processing once connections are established.
|
168
|
+
class Listener {
|
169
|
+
public:
|
170
|
+
/// Called when the listener has accepted a new client connection.
|
171
|
+
using AcceptCallback = std::function<void(std::unique_ptr<Endpoint>)>;
|
172
|
+
virtual ~Listener() = default;
|
173
|
+
/// Bind an address/port to this Listener.
|
174
|
+
///
|
175
|
+
/// It is expected that multiple addresses/ports can be bound to this
|
176
|
+
/// Listener before Listener::Start has been called. Returns either the
|
177
|
+
/// bound port or an appropriate error status.
|
178
|
+
virtual absl::StatusOr<int> Bind(const ResolvedAddress& addr) = 0;
|
179
|
+
virtual absl::Status Start() = 0;
|
180
|
+
};
|
181
|
+
|
182
|
+
/// Factory method to create a network listener / server.
|
183
|
+
///
|
184
|
+
/// Once a \a Listener is created and started, the \a on_accept callback will
|
185
|
+
/// be called once asynchronously for each established connection. Note that
|
186
|
+
/// unlike other callbacks, there is no status code parameter since the
|
187
|
+
/// callback will only be called in healthy scenarios where connections can be
|
188
|
+
/// accepted.
|
189
|
+
///
|
190
|
+
/// This method may return a non-OK status immediately if an error was
|
191
|
+
/// encountered in any synchronous steps required to create the Listener. In
|
192
|
+
/// this case, \a on_shutdown will never be called.
|
193
|
+
///
|
194
|
+
/// If this method returns a Listener, then \a on_shutdown will be invoked
|
195
|
+
/// exactly once, when the Listener is shut down. The status passed to it will
|
196
|
+
/// indicate if there was a problem during shutdown.
|
197
|
+
///
|
198
|
+
/// The provided \a SliceAllocatorFactory is used to create \a SliceAllocators
|
199
|
+
/// for Endpoint construction.
|
200
|
+
virtual absl::StatusOr<std::unique_ptr<Listener>> CreateListener(
|
201
|
+
Listener::AcceptCallback on_accept, Callback on_shutdown,
|
202
|
+
const ChannelArgs& args,
|
203
|
+
SliceAllocatorFactory slice_allocator_factory) = 0;
|
204
|
+
/// Creates a client network connection to a remote network listener.
|
205
|
+
///
|
206
|
+
/// \a Connect may return an error status immediately if there was a failure
|
207
|
+
/// in the synchronous part of establishing a connection. In that event, the
|
208
|
+
/// \a on_connect callback *will not* have been executed. Otherwise, it is
|
209
|
+
/// expected that the \a on_connect callback will be asynchronously executed
|
210
|
+
/// exactly once by the EventEngine.
|
211
|
+
///
|
212
|
+
/// Implementation Note: it is important that the \a slice_allocator be used
|
213
|
+
/// for all read/write buffer allocations in the EventEngine implementation.
|
214
|
+
/// This allows gRPC's \a ResourceQuota system to monitor and control memory
|
215
|
+
/// usage with graceful degradation mechanisms. Please see the \a
|
216
|
+
/// SliceAllocator API for more information.
|
217
|
+
virtual absl::Status Connect(OnConnectCallback on_connect,
|
218
|
+
const ResolvedAddress& addr,
|
219
|
+
const ChannelArgs& args,
|
220
|
+
SliceAllocator slice_allocator,
|
221
|
+
absl::Time deadline) = 0;
|
222
|
+
|
223
|
+
/// The DNSResolver that provides asynchronous resolution.
|
224
|
+
class DNSResolver {
|
225
|
+
public:
|
226
|
+
/// A task handle for DNS Resolution requests.
|
227
|
+
struct LookupTaskHandle {
|
228
|
+
intptr_t key;
|
229
|
+
};
|
230
|
+
/// A DNS SRV record type.
|
231
|
+
struct SRVRecord {
|
232
|
+
std::string host;
|
233
|
+
int port = 0;
|
234
|
+
int priority = 0;
|
235
|
+
int weight = 0;
|
236
|
+
};
|
237
|
+
/// Called with the collection of sockaddrs that were resolved from a given
|
238
|
+
/// target address.
|
239
|
+
using LookupHostnameCallback =
|
240
|
+
std::function<void(absl::StatusOr<std::vector<ResolvedAddress>>)>;
|
241
|
+
/// Called with a collection of SRV records.
|
242
|
+
using LookupSRVCallback =
|
243
|
+
std::function<void(absl::StatusOr<std::vector<SRVRecord>>)>;
|
244
|
+
/// Called with the result of a TXT record lookup
|
245
|
+
using LookupTXTCallback = std::function<void(absl::StatusOr<std::string>)>;
|
246
|
+
|
247
|
+
virtual ~DNSResolver() = default;
|
248
|
+
|
249
|
+
/// Asynchronously resolve an address.
|
250
|
+
///
|
251
|
+
/// \a default_port may be a non-numeric named service port, and will only
|
252
|
+
/// be used if \a address does not already contain a port component.
|
253
|
+
///
|
254
|
+
/// When the lookup is complete, the \a on_resolve callback will be invoked
|
255
|
+
/// with a status indicating the success or failure of the lookup.
|
256
|
+
/// Implementations should pass the appropriate statuses to the callback.
|
257
|
+
/// For example, callbacks might expect to receive DEADLINE_EXCEEDED when
|
258
|
+
/// the deadline is exceeded or CANCELLED if the lookup was cancelled.
|
259
|
+
virtual LookupTaskHandle LookupHostname(LookupHostnameCallback on_resolve,
|
260
|
+
absl::string_view address,
|
261
|
+
absl::string_view default_port,
|
262
|
+
absl::Time deadline) = 0;
|
263
|
+
/// Asynchronously perform an SRV record lookup.
|
264
|
+
///
|
265
|
+
/// \a on_resolve has the same meaning and expectations as \a
|
266
|
+
/// LookupHostname's \a on_resolve callback.
|
267
|
+
virtual LookupTaskHandle LookupSRV(LookupSRVCallback on_resolve,
|
268
|
+
absl::string_view name,
|
269
|
+
absl::Time deadline) = 0;
|
270
|
+
/// Asynchronously perform a TXT record lookup.
|
271
|
+
///
|
272
|
+
/// \a on_resolve has the same meaning and expectations as \a
|
273
|
+
/// LookupHostname's \a on_resolve callback.
|
274
|
+
virtual LookupTaskHandle LookupTXT(LookupTXTCallback on_resolve,
|
275
|
+
absl::string_view name,
|
276
|
+
absl::Time deadline) = 0;
|
277
|
+
/// Cancel an asynchronous lookup operation.
|
278
|
+
virtual void TryCancelLookup(LookupTaskHandle handle) = 0;
|
279
|
+
};
|
280
|
+
|
281
|
+
virtual ~EventEngine() = default;
|
282
|
+
|
283
|
+
// TODO(hork): define return status codes
|
284
|
+
/// Retrieves an instance of a DNSResolver.
|
285
|
+
virtual absl::StatusOr<std::unique_ptr<DNSResolver>> GetDNSResolver() = 0;
|
286
|
+
|
287
|
+
/// Intended for future expansion of Task run functionality.
|
288
|
+
struct RunOptions {};
|
289
|
+
// TODO(hork): consider recommendation to make TaskHandle an output arg
|
290
|
+
/// Run a callback as soon as possible.
|
291
|
+
///
|
292
|
+
/// The \a fn callback's \a status argument is used to indicate whether it was
|
293
|
+
/// executed normally. For example, the status may be CANCELLED if
|
294
|
+
/// \a TryCancel was called, or if the EventEngine is being shut down.
|
295
|
+
virtual TaskHandle Run(Callback fn, RunOptions opts) = 0;
|
296
|
+
/// Synonymous with scheduling an alarm to run at time \a when.
|
297
|
+
///
|
298
|
+
/// The callback \a fn will execute when either when time \a when arrives
|
299
|
+
/// (receiving status OK), or when the \a fn is cancelled (reveiving status
|
300
|
+
/// CANCELLED). The callback is guaranteed to be called exactly once.
|
301
|
+
virtual TaskHandle RunAt(absl::Time when, Callback fn, RunOptions opts) = 0;
|
302
|
+
/// Immediately tries to cancel a callback.
|
303
|
+
/// Note that this is a "best effort" cancellation. No guarantee is made that
|
304
|
+
/// the callback will be cancelled, the call could be in any stage.
|
305
|
+
///
|
306
|
+
/// There are three scenarios in which we may cancel a scheduled function:
|
307
|
+
/// 1. We cancel the execution before it has run.
|
308
|
+
/// 2. The callback has already run.
|
309
|
+
/// 3. We can't cancel it because it is "in flight".
|
310
|
+
///
|
311
|
+
/// In all cases, the cancellation is still considered successful, the
|
312
|
+
/// callback will be run exactly once from either cancellation or from its
|
313
|
+
/// activation.
|
314
|
+
virtual void TryCancel(TaskHandle handle) = 0;
|
315
|
+
/// Immediately run all callbacks with status indicating the shutdown. Every
|
316
|
+
/// EventEngine is expected to shut down exactly once. No new callbacks/tasks
|
317
|
+
/// should be scheduled after shutdown has begun, no new connections should be
|
318
|
+
/// created.
|
319
|
+
///
|
320
|
+
/// If the \a on_shutdown_complete callback is given a non-OK status, errors
|
321
|
+
/// are expected to be unrecoverable. For example, an implementation could
|
322
|
+
/// warn callers about leaks if memory cannot be freed within a certain
|
323
|
+
/// timeframe.
|
324
|
+
virtual void Shutdown(Callback on_shutdown_complete) = 0;
|
325
|
+
};
|
326
|
+
|
327
|
+
/// Lazily instantiate and return a default global EventEngine instance if no
|
328
|
+
/// custom instance is provided. If a custom EventEngine is provided for every
|
329
|
+
/// channel/server via ChannelArgs, this method should never be called, and the
|
330
|
+
/// default instance will never be instantiated.
|
331
|
+
std::shared_ptr<EventEngine> GetDefaultEventEngine();
|
332
|
+
|
333
|
+
} // namespace experimental
|
334
|
+
} // namespace grpc_event_engine
|
335
|
+
|
336
|
+
#endif // GRPC_EVENT_ENGINE_EVENT_ENGINE_H
|