From 468fe2d83583b940a6eb6aded31c810d4bd8d3b5 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 12 Aug 2022 10:49:14 -0700 Subject: [PATCH] [promise] Add an optimization for promises of size <= sizeof(void*) (#29835) * vtable phrasing * small promise optimization * fix * Automated change: Fix sanity tests * Automated change: Fix sanity tests Co-authored-by: ctiller --- BUILD | 15 -- .../fault_injection/fault_injection_filter.cc | 1 - .../filters/http/client/http_client_filter.cc | 1 - .../filters/http/client_authority_filter.cc | 1 - .../filters/http/server/http_server_filter.cc | 1 - .../server_load_reporting_filter.cc | 1 - .../server_config_selector_filter.cc | 1 - src/core/lib/channel/channel_stack.cc | 1 - .../lib/http/httpcli_security_connector.cc | 1 - src/core/lib/promise/arena_promise.h | 164 +++++++++--------- .../authorization/grpc_server_authz_filter.cc | 1 - .../composite/composite_credentials.cc | 1 - .../credentials/fake/fake_credentials.cc | 1 - .../credentials/iam/iam_credentials.cc | 1 - .../credentials/jwt/jwt_credentials.cc | 1 - .../alts/alts_security_connector.cc | 1 - .../fake/fake_security_connector.cc | 1 - .../insecure/insecure_security_connector.cc | 1 - .../local/local_security_connector.cc | 1 - .../ssl/ssl_security_connector.cc | 1 - .../tls/tls_security_connector.cc | 1 - .../security/transport/client_auth_filter.cc | 1 - src/core/lib/surface/lame_client.cc | 1 - 23 files changed, 84 insertions(+), 116 deletions(-) diff --git a/BUILD b/BUILD index f39cbe81610..025cd7eba32 100644 --- a/BUILD +++ b/BUILD @@ -3641,7 +3641,6 @@ grpc_cc_library( "grpc_base", "grpc_server_config_selector", "grpc_service_config", - "poll", "promise", "ref_counted_ptr", ], @@ -3762,7 +3761,6 @@ grpc_cc_library( "gpr_platform", "grpc_base", "grpc_codegen", - "poll", "slice", ], ) @@ -3835,7 +3833,6 @@ grpc_cc_library( "grpc_trace", "json", "json_util", - "poll", "service_config_parser", "sleep", "time", @@ -3929,7 +3926,6 @@ grpc_cc_library( "grpc_trace", "latch", "percent_encoding", - "poll", "promise", "seq", "slice", @@ -4882,7 +4878,6 @@ grpc_cc_library( "grpc_public_hdrs", "grpc_security_base", "grpc_sockaddr", - "poll", "promise", "resolved_address", "seq", @@ -5401,7 +5396,6 @@ grpc_cc_library( "grpc_credentials_util", "grpc_security_base", "grpc_trace", - "poll", "promise", "ref_counted", "ref_counted_ptr", @@ -5459,7 +5453,6 @@ grpc_cc_library( "grpc_security_base", "handshaker", "iomgr_fwd", - "poll", "promise", "ref_counted_ptr", "slice", @@ -5493,7 +5486,6 @@ grpc_cc_library( "grpc_security_base", "handshaker", "iomgr_fwd", - "poll", "promise", "ref_counted_ptr", "tsi_base", @@ -5546,7 +5538,6 @@ grpc_cc_library( "grpc_sockaddr", "handshaker", "iomgr_fwd", - "poll", "promise", "ref_counted_ptr", "resolved_address", @@ -5586,7 +5577,6 @@ grpc_cc_library( "grpc_security_base", "handshaker", "iomgr_fwd", - "poll", "promise", "ref_counted_ptr", "slice_refcount", @@ -5624,7 +5614,6 @@ grpc_cc_library( "grpc_trace", "handshaker", "iomgr_fwd", - "poll", "promise", "ref_counted_ptr", "tsi_base", @@ -5720,7 +5709,6 @@ grpc_cc_library( "grpc_trace", "handshaker", "iomgr_fwd", - "poll", "promise", "ref_counted", "ref_counted_ptr", @@ -5754,7 +5742,6 @@ grpc_cc_library( "grpc_base", "grpc_security_base", "grpc_trace", - "poll", "promise", "ref_counted_ptr", "slice", @@ -5799,7 +5786,6 @@ grpc_cc_library( "httpcli_ssl_credentials", "json", "orphanable", - "poll", "promise", "ref_counted_ptr", "slice", @@ -5921,7 +5907,6 @@ grpc_cc_library( "grpc_security_base", "handshaker", "iomgr_fwd", - "poll", "promise", "ref_counted_ptr", "tsi_base", diff --git a/src/core/ext/filters/fault_injection/fault_injection_filter.cc b/src/core/ext/filters/fault_injection/fault_injection_filter.cc index 20d2b8c7a52..f2113a282d9 100644 --- a/src/core/ext/filters/fault_injection/fault_injection_filter.cc +++ b/src/core/ext/filters/fault_injection/fault_injection_filter.cc @@ -46,7 +46,6 @@ #include "src/core/lib/gprpp/time.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/promise/context.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/sleep.h" #include "src/core/lib/promise/try_seq.h" #include "src/core/lib/service_config/service_config_call_data.h" diff --git a/src/core/ext/filters/http/client/http_client_filter.cc b/src/core/ext/filters/http/client/http_client_filter.cc index f0e00f1717b..f87d658abcd 100644 --- a/src/core/ext/filters/http/client/http_client_filter.cc +++ b/src/core/ext/filters/http/client/http_client_filter.cc @@ -43,7 +43,6 @@ #include "src/core/lib/promise/context.h" #include "src/core/lib/promise/detail/basic_seq.h" #include "src/core/lib/promise/latch.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/seq.h" #include "src/core/lib/resource_quota/arena.h" #include "src/core/lib/slice/percent_encoding.h" diff --git a/src/core/ext/filters/http/client_authority_filter.cc b/src/core/ext/filters/http/client_authority_filter.cc index 670e82ff8c9..9236b62debb 100644 --- a/src/core/ext/filters/http/client_authority_filter.cc +++ b/src/core/ext/filters/http/client_authority_filter.cc @@ -33,7 +33,6 @@ #include "src/core/lib/channel/channel_stack.h" #include "src/core/lib/channel/channel_stack_builder.h" #include "src/core/lib/config/core_configuration.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/surface/channel_init.h" #include "src/core/lib/surface/channel_stack_type.h" #include "src/core/lib/transport/metadata_batch.h" diff --git a/src/core/ext/filters/http/server/http_server_filter.cc b/src/core/ext/filters/http/server/http_server_filter.cc index 82d18f64be7..d62b20a89f5 100644 --- a/src/core/ext/filters/http/server/http_server_filter.cc +++ b/src/core/ext/filters/http/server/http_server_filter.cc @@ -36,7 +36,6 @@ #include "src/core/lib/promise/context.h" #include "src/core/lib/promise/detail/basic_seq.h" #include "src/core/lib/promise/latch.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/promise/seq.h" #include "src/core/lib/resource_quota/arena.h" diff --git a/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc b/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc index d56a7dd2679..dfa689f4afc 100644 --- a/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +++ b/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc @@ -57,7 +57,6 @@ #include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/iomgr/socket_utils.h" #include "src/core/lib/promise/context.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/promise/seq.h" #include "src/core/lib/security/context/security_context.h" diff --git a/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc b/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc index d8bd4521ffc..a71d1907aea 100644 --- a/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +++ b/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc @@ -37,7 +37,6 @@ #include "src/core/lib/iomgr/error.h" #include "src/core/lib/promise/arena_promise.h" #include "src/core/lib/promise/context.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/resource_quota/arena.h" #include "src/core/lib/service_config/service_config_call_data.h" diff --git a/src/core/lib/channel/channel_stack.cc b/src/core/lib/channel/channel_stack.cc index 5fb344f46b7..60f1d51c598 100644 --- a/src/core/lib/channel/channel_stack.cc +++ b/src/core/lib/channel/channel_stack.cc @@ -27,7 +27,6 @@ #include #include "src/core/lib/gpr/alloc.h" -#include "src/core/lib/promise/poll.h" grpc_core::TraceFlag grpc_trace_channel(false, "channel"); grpc_core::TraceFlag grpc_trace_channel_stack(false, "channel_stack"); diff --git a/src/core/lib/http/httpcli_security_connector.cc b/src/core/lib/http/httpcli_security_connector.cc index d07bbb9e903..07d0c9830ab 100644 --- a/src/core/lib/http/httpcli_security_connector.cc +++ b/src/core/lib/http/httpcli_security_connector.cc @@ -44,7 +44,6 @@ #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/iomgr_fwd.h" #include "src/core/lib/promise/arena_promise.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/security/credentials/credentials.h" #include "src/core/lib/security/security_connector/security_connector.h" diff --git a/src/core/lib/promise/arena_promise.h b/src/core/lib/promise/arena_promise.h index 4bd5a4d0cd1..7acc6c0389a 100644 --- a/src/core/lib/promise/arena_promise.h +++ b/src/core/lib/promise/arena_promise.h @@ -19,6 +19,7 @@ #include +#include #include #include "absl/meta/type_traits.h" @@ -31,59 +32,58 @@ namespace grpc_core { namespace arena_promise_detail { -// Type erased promise stored in the arena. template -class ImplInterface { - public: +struct Vtable { // Poll the promise, once. - virtual Poll PollOnce() = 0; + Poll (*poll_once)(void** arg); // Destroy the underlying callable object if there is one. // Since we don't delete (the arena owns the memory) but we may need to call a // destructor, we expose this for when the ArenaPromise object is destroyed. - virtual void Destroy() = 0; + void (*destroy)(void** arg); +}; - protected: - ~ImplInterface() = default; +template +struct VtableAndArg { + const Vtable* vtable; + void* arg; }; -// Implementation of ImplInterface for an empty object. +// Implementation of Vtable for an empty object. // Used when an empty ArenaPromise is created, or when the ArenaPromise is moved // from. Since in either case these objects should not be polled, we simply // crash if it is. template -class NullImpl final : public ImplInterface { - public: - Poll PollOnce() override { - abort(); - GPR_UNREACHABLE_CODE(return Pending{}); - } - void Destroy() override {} - - static ImplInterface* Get() { - static NullImpl instance; - return &instance; - } - - private: - ~NullImpl() = default; -}; +inline const Vtable* null_impl() { + static const Vtable vtable = {[](void**) -> Poll { + abort(); + GPR_UNREACHABLE_CODE(return Pending{}); + }, + [](void**) {}}; + return &vtable; +} // Implementation of ImplInterface for a callable object. template -class CallableImpl final : public ImplInterface { - public: - explicit CallableImpl(Callable&& callable) : callable_(std::move(callable)) {} - // Forward polls to the callable object. - Poll PollOnce() override { return poll_cast(callable_()); } - // Destroy destructs the callable object. - void Destroy() override { this->~CallableImpl(); } - - private: - // Should only be called by Destroy(). - ~CallableImpl() = default; +inline const Vtable* allocated_callable_impl() { + static const Vtable vtable = { + [](void** arg) -> Poll { + return poll_cast((*static_cast(*arg))()); + }, + [](void** arg) { static_cast(*arg)->~Callable(); }}; + return &vtable; +} - Callable callable_; -}; +// Implementation of ImplInterface for a small callable object (one that fits +// within the void* arg) +template +inline const Vtable* inlined_callable_impl() { + static const Vtable vtable = { + [](void** arg) -> Poll { + return poll_cast((*reinterpret_cast(arg))()); + }, + [](void** arg) { reinterpret_cast(arg)->~Callable(); }}; + return &vtable; +} // If a callable object is empty we can substitute any instance of that callable // for the one we call (for how could we tell the difference)? @@ -93,27 +93,12 @@ class CallableImpl final : public ImplInterface { // (this comes up often when the promise only accesses context data from the // containing activity). template -class SharedImpl final : public ImplInterface, private Callable { - public: - // Call the callable, or at least an exact duplicate of it - if you have no - // members, all your instances look the same. - Poll PollOnce() override { return Callable::operator()(); } - // Nothing to destroy. - void Destroy() override {} - // Return a pointer to the shared instance - these are singletons, and are - // needed just to get the vtable in place. - static SharedImpl* Get(Callable&& callable) { - static_assert(sizeof(SharedImpl) == sizeof(void*), - "SharedImpl should be pointer sized"); - static SharedImpl impl(std::forward(callable)); - return &impl; - } - - private: - explicit SharedImpl(Callable&& callable) - : Callable(std::forward(callable)) {} - ~SharedImpl() = default; -}; +inline const Vtable* shared_callable_impl(Callable&& callable) { + static Callable instance = std::forward(callable); + static const Vtable vtable = {[](void**) -> Poll { return instance(); }, + [](void**) {}}; + return &vtable; +} // Redirector type: given a callable type, expose a Make() function that creates // the appropriate underlying implementation. @@ -122,26 +107,41 @@ struct ChooseImplForCallable; template struct ChooseImplForCallable< - T, Callable, absl::enable_if_t::value>> { - static ImplInterface* Make(Callable&& callable) { - return GetContext()->template New>( - std::forward(callable)); + T, Callable, + absl::enable_if_t::value && + (sizeof(Callable) > sizeof(void*))>> { + static void Make(Callable&& callable, VtableAndArg* out) { + *out = {allocated_callable_impl(), + GetContext()->template New( + std::forward(callable))}; + } +}; + +template +struct ChooseImplForCallable< + T, Callable, + absl::enable_if_t::value && + (sizeof(Callable) <= sizeof(void*))>> { + static void Make(Callable&& callable, VtableAndArg* out) { + out->vtable = inlined_callable_impl(); + new (&out->arg) Callable(std::forward(callable)); } }; template struct ChooseImplForCallable< T, Callable, absl::enable_if_t::value>> { - static ImplInterface* Make(Callable&& callable) { - return SharedImpl::Get(std::forward(callable)); + static void Make(Callable&& callable, VtableAndArg* out) { + out->vtable = + shared_callable_impl(std::forward(callable)); } }; // Wrap ChooseImplForCallable with a friend approachable syntax. template -ImplInterface* MakeImplForCallable(Callable&& callable) { - return ChooseImplForCallable::Make( - std::forward(callable)); +void MakeImplForCallable(Callable&& callable, VtableAndArg* out) { + ChooseImplForCallable::Make(std::forward(callable), + out); } } // namespace arena_promise_detail @@ -158,38 +158,42 @@ class ArenaPromise { typename Ignored = absl::enable_if_t::value>> // NOLINTNEXTLINE(google-explicit-constructor) - ArenaPromise(Callable&& callable) - : impl_(arena_promise_detail::MakeImplForCallable( - std::forward(callable))) {} + ArenaPromise(Callable&& callable) { + arena_promise_detail::MakeImplForCallable( + std::forward(callable), &vtable_and_arg_); + } // ArenaPromise is not copyable. ArenaPromise(const ArenaPromise&) = delete; ArenaPromise& operator=(const ArenaPromise&) = delete; // ArenaPromise is movable. - ArenaPromise(ArenaPromise&& other) noexcept : impl_(other.impl_) { - other.impl_ = arena_promise_detail::NullImpl::Get(); + ArenaPromise(ArenaPromise&& other) noexcept + : vtable_and_arg_(other.vtable_and_arg_) { + other.vtable_and_arg_.vtable = arena_promise_detail::null_impl(); } ArenaPromise& operator=(ArenaPromise&& other) noexcept { - impl_->Destroy(); - impl_ = other.impl_; - other.impl_ = arena_promise_detail::NullImpl::Get(); + vtable_and_arg_.vtable->destroy(&vtable_and_arg_.arg); + vtable_and_arg_ = other.vtable_and_arg_; + other.vtable_and_arg_.vtable = arena_promise_detail::null_impl(); return *this; } // Destruction => call Destroy on the underlying impl object. - ~ArenaPromise() { impl_->Destroy(); } + ~ArenaPromise() { vtable_and_arg_.vtable->destroy(&vtable_and_arg_.arg); } // Expose the promise interface: a call operator that returns Poll. - Poll operator()() { return impl_->PollOnce(); } + Poll operator()() { + return vtable_and_arg_.vtable->poll_once(&vtable_and_arg_.arg); + } bool has_value() const { - return impl_ != arena_promise_detail::NullImpl::Get(); + return vtable_and_arg_.vtable != arena_promise_detail::null_impl(); } private: // Underlying impl object. - arena_promise_detail::ImplInterface* impl_ = - arena_promise_detail::NullImpl::Get(); + arena_promise_detail::VtableAndArg vtable_and_arg_ = { + arena_promise_detail::null_impl(), nullptr}; }; } // namespace grpc_core diff --git a/src/core/lib/security/authorization/grpc_server_authz_filter.cc b/src/core/lib/security/authorization/grpc_server_authz_filter.cc index 5521c2ad0ae..3139eadf287 100644 --- a/src/core/lib/security/authorization/grpc_server_authz_filter.cc +++ b/src/core/lib/security/authorization/grpc_server_authz_filter.cc @@ -29,7 +29,6 @@ #include "src/core/lib/channel/channel_stack.h" #include "src/core/lib/channel/promise_based_filter.h" #include "src/core/lib/debug/trace.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/security/authorization/authorization_engine.h" #include "src/core/lib/security/authorization/evaluate_args.h" diff --git a/src/core/lib/security/credentials/composite/composite_credentials.cc b/src/core/lib/security/credentials/composite/composite_credentials.cc index da75f263a17..62faee5cef4 100644 --- a/src/core/lib/security/credentials/composite/composite_credentials.cc +++ b/src/core/lib/security/credentials/composite/composite_credentials.cc @@ -31,7 +31,6 @@ #include "src/core/lib/debug/trace.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/try_seq.h" #include "src/core/lib/surface/api_trace.h" #include "src/core/lib/transport/transport.h" diff --git a/src/core/lib/security/credentials/fake/fake_credentials.cc b/src/core/lib/security/credentials/fake/fake_credentials.cc index 73516221c4a..94056afc4b9 100644 --- a/src/core/lib/security/credentials/fake/fake_credentials.cc +++ b/src/core/lib/security/credentials/fake/fake_credentials.cc @@ -28,7 +28,6 @@ #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/security/security_connector/fake/fake_security_connector.h" #include "src/core/lib/security/security_connector/security_connector.h" diff --git a/src/core/lib/security/credentials/iam/iam_credentials.cc b/src/core/lib/security/credentials/iam/iam_credentials.cc index d255cd3d258..95fb93b5be3 100644 --- a/src/core/lib/security/credentials/iam/iam_credentials.cc +++ b/src/core/lib/security/credentials/iam/iam_credentials.cc @@ -32,7 +32,6 @@ #include "src/core/lib/debug/trace.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/surface/api_trace.h" #include "src/core/lib/transport/metadata_batch.h" diff --git a/src/core/lib/security/credentials/jwt/jwt_credentials.cc b/src/core/lib/security/credentials/jwt/jwt_credentials.cc index abea57c8b02..94061b24a69 100644 --- a/src/core/lib/security/credentials/jwt/jwt_credentials.cc +++ b/src/core/lib/security/credentials/jwt/jwt_credentials.cc @@ -39,7 +39,6 @@ #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/json/json.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/security/credentials/call_creds_util.h" #include "src/core/lib/surface/api_trace.h" diff --git a/src/core/lib/security/security_connector/alts/alts_security_connector.cc b/src/core/lib/security/security_connector/alts/alts_security_connector.cc index b067aa500de..890a02eb6a1 100644 --- a/src/core/lib/security/security_connector/alts/alts_security_connector.cc +++ b/src/core/lib/security/security_connector/alts/alts_security_connector.cc @@ -46,7 +46,6 @@ #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/iomgr_fwd.h" #include "src/core/lib/promise/arena_promise.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/security/context/security_context.h" #include "src/core/lib/security/credentials/alts/alts_credentials.h" diff --git a/src/core/lib/security/security_connector/fake/fake_security_connector.cc b/src/core/lib/security/security_connector/fake/fake_security_connector.cc index 2775276ae02..e9bbe70921f 100644 --- a/src/core/lib/security/security_connector/fake/fake_security_connector.cc +++ b/src/core/lib/security/security_connector/fake/fake_security_connector.cc @@ -50,7 +50,6 @@ #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/iomgr_fwd.h" #include "src/core/lib/promise/arena_promise.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/security/context/security_context.h" #include "src/core/lib/security/credentials/credentials.h" diff --git a/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc b/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc index 7bb275b0dd9..e9b04e274a2 100644 --- a/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +++ b/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc @@ -29,7 +29,6 @@ #include "src/core/lib/gprpp/debug_location.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/security/context/security_context.h" #include "src/core/lib/security/transport/security_handshaker.h" diff --git a/src/core/lib/security/security_connector/local/local_security_connector.cc b/src/core/lib/security/security_connector/local/local_security_connector.cc index 1bb71f1e101..67b6dc53c95 100644 --- a/src/core/lib/security/security_connector/local/local_security_connector.cc +++ b/src/core/lib/security/security_connector/local/local_security_connector.cc @@ -53,7 +53,6 @@ #include "src/core/lib/iomgr/socket_utils.h" #include "src/core/lib/iomgr/unix_sockets_posix.h" #include "src/core/lib/promise/arena_promise.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/security/context/security_context.h" #include "src/core/lib/security/credentials/credentials.h" diff --git a/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc b/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc index f3635666bca..6678a97ad03 100644 --- a/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +++ b/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc @@ -45,7 +45,6 @@ #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/iomgr_fwd.h" #include "src/core/lib/promise/arena_promise.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/security/context/security_context.h" #include "src/core/lib/security/credentials/credentials.h" diff --git a/src/core/lib/security/security_connector/tls/tls_security_connector.cc b/src/core/lib/security/security_connector/tls/tls_security_connector.cc index f7edfe02d3a..e4a702555e7 100644 --- a/src/core/lib/security/security_connector/tls/tls_security_connector.cc +++ b/src/core/lib/security/security_connector/tls/tls_security_connector.cc @@ -42,7 +42,6 @@ #include "src/core/lib/gprpp/debug_location.h" #include "src/core/lib/gprpp/host_port.h" #include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/security/context/security_context.h" #include "src/core/lib/security/credentials/credentials.h" diff --git a/src/core/lib/security/transport/client_auth_filter.cc b/src/core/lib/security/transport/client_auth_filter.cc index 04ab201735c..4ef8ff5a508 100644 --- a/src/core/lib/security/transport/client_auth_filter.cc +++ b/src/core/lib/security/transport/client_auth_filter.cc @@ -41,7 +41,6 @@ #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/promise/arena_promise.h" #include "src/core/lib/promise/context.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/promise/try_seq.h" #include "src/core/lib/resource_quota/arena.h" diff --git a/src/core/lib/surface/lame_client.cc b/src/core/lib/surface/lame_client.cc index f1962c314d9..06a8489e419 100644 --- a/src/core/lib/surface/lame_client.cc +++ b/src/core/lib/surface/lame_client.cc @@ -42,7 +42,6 @@ #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/sync.h" #include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/promise/poll.h" #include "src/core/lib/promise/promise.h" #include "src/core/lib/surface/api_trace.h" #include "src/core/lib/surface/channel.h"