IoUringAssmEngn: assemFrameReq: exit responsively on stop()

This commit is contained in:
2025-11-13 21:00:26 -04:00
parent d01f06904a
commit 501effe6d5
@@ -418,6 +418,11 @@ public:
timerFired(false), handlerExecuted(false)
{}
void callOriginalCallback(bool success, AsynchronousLoop loop)
{
callOriginalCb(success, loop);
}
public:
void assembleFrameReq1_posted(
std::shared_ptr<AssembleFrameReq> context)
@@ -488,6 +493,13 @@ public:
std::shared_ptr<AssembleFrameReq> context,
void *user_data, int cqe_result)
{
if (!context->engine.isAssembling)
{
context->loop.setRemainingIterationsToFailure();
context->callOriginalCallback(false, context->loop);
return;
}
// Extract index from user_data and mark slot as assembled if successful
size_t index = reinterpret_cast<size_t>(user_data);
bool success = (cqe_result >= 0);
@@ -578,11 +590,6 @@ public:
return;
}
void callOriginalCallback(bool success, AsynchronousLoop loop)
{
callOriginalCb(success, loop);
}
public:
IoUringAssemblyEngine& engine;
AsynchronousLoop loop;