diff --git a/stimBuffApis/livoxGen1/ioUringAssemblyEngine.cpp b/stimBuffApis/livoxGen1/ioUringAssemblyEngine.cpp index 95791ed..e2ba7a0 100644 --- a/stimBuffApis/livoxGen1/ioUringAssemblyEngine.cpp +++ b/stimBuffApis/livoxGen1/ioUringAssemblyEngine.cpp @@ -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 context) @@ -488,6 +493,13 @@ public: std::shared_ptr 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(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;