diff --git a/src/agrpc/detail/register_sender_rpc_handler.hpp b/src/agrpc/detail/register_sender_rpc_handler.hpp index 52019296..a78a1f96 100644 --- a/src/agrpc/detail/register_sender_rpc_handler.hpp +++ b/src/agrpc/detail/register_sender_rpc_handler.hpp @@ -44,8 +44,8 @@ struct InlineSchedulerEnv } }; -template -struct RegisterRPCHandlerSenderOperationBase; +template +class RPCHandlerSenderOperation; template class [[nodiscard]] RPCHandlerSender : public detail::SenderOf @@ -74,7 +74,7 @@ class [[nodiscard]] RPCHandlerSender : public detail::SenderOf private: template - friend struct detail::RegisterRPCHandlerOperationBase; + friend class detail::RPCHandlerSenderOperation; agrpc::GrpcContext& grpc_context_; Service& service_; @@ -391,7 +391,9 @@ class RPCHandlerSenderOperation template RPCHandlerSenderOperation(RPCHandlerSender&& sender, R&& receiver) - : Base(static_cast(sender), &complete_impl), receiver_(static_cast(receiver)) + : Base(sender.grpc_context_.get_executor(), sender.service_, static_cast(sender.rpc_handler_), + &complete_impl), + receiver_(static_cast(receiver)) { }