diff --git a/src/io/thrift/thrift_handle.hpp b/src/io/thrift/thrift_handle.hpp
index ec6502c5d..a617feb19 100644
--- a/src/io/thrift/thrift_handle.hpp
+++ b/src/io/thrift/thrift_handle.hpp
@@ -35,6 +35,18 @@ class ThriftHandle {
std::map
clients_;
public:
+ template
+ void DeliverMessage(Address from_address, RequestId request_id, M &&message) {
+ {
+ std::unique_lock lock(mu_);
+ std::any message_any(std::move(message));
+ OpaqueMessage om{.from_address = from_address, .request_id = request_id, .message = std::move(message_any)};
+ can_receive_.emplace_back(std::move(om));
+ } // lock dropped
+
+ cv_.notify_all();
+ }
+
template
void SubmitRequest(Address to_address, Address from_address, RequestId request_id, Request &&request,
Duration timeout, ResponsePromise &&promise) {