diff --git a/trpc/runtime/iomodel/async_io/async_io.cc b/trpc/runtime/iomodel/async_io/async_io.cc index 179b75e3..be93d1eb 100644 --- a/trpc/runtime/iomodel/async_io/async_io.cc +++ b/trpc/runtime/iomodel/async_io/async_io.cc @@ -108,7 +108,7 @@ trpc::Future AsyncIO::SubmitOne(F&& fill_sqe) { io_uring_sqe_set_data(sqe, user_data); int ret = io_uring_submit(ring); - if (TRPC_UNLIKELY(ret != 1)) { + if (TRPC_UNLIKELY(ret <= 0)) { trpc::object_pool::Delete(user_data); if (ret < 0) { return MakeExceptionFuture(AsyncIOError(ret)); @@ -116,7 +116,7 @@ trpc::Future AsyncIO::SubmitOne(F&& fill_sqe) { std::string msg = "Submit success but return not one, ret:" + std::to_string(ret); return MakeExceptionFuture(AsyncIOError(AsyncIOError::SUBMIT_FAIL, msg)); } - submitted_++; + submitted_ += ret; return user_data->pr.GetFuture(); }