get_foreign_connection().send_with_throttling(std::move(reply)));
}
-auto ClientRequest::reply_op_error(const Ref<PG>& pg, int err)
+ClientRequest::interruptible_future<>
+ClientRequest::reply_op_error(const Ref<PG>& pg, int err)
{
LOG_PREFIX(ClientRequest::reply_op_error);
DEBUGDPP("{}: replying with error {}", *pg, *this, err);
reply->set_reply_versions(eversion_t(), 0);
reply->set_op_returns(std::vector<pg_log_op_return_item_t>{});
// TODO: gate the crosscore sending
- return get_foreign_connection().send_with_throttling(std::move(reply));
+ return interruptor::make_interruptible(
+ get_foreign_connection().send_with_throttling(std::move(reply))
+ );
}
ClientRequest::interruptible_future<>
private:
template <typename FuncT>
interruptible_future<> with_sequencer(FuncT&& func);
- auto reply_op_error(const Ref<PG>& pg, int err);
+ interruptible_future<> reply_op_error(const Ref<PG>& pg, int err);
interruptible_future<> do_process(
instance_handle_t &ihref,