[FIX] Reset callback in advance
authorDongju Chae <dongju.chae@samsung.com>
Wed, 17 Nov 2021 02:31:49 +0000 (11:31 +0900)
committer채동주/On-Device Lab(SR)/Staff Engineer/삼성전자 <dongju.chae@samsung.com>
Wed, 17 Nov 2021 03:52:16 +0000 (12:52 +0900)
This patch resets a blocking request's callback before calling its
callback.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
src/core/ne-scheduler.cc

index 2acef27..1eb25ce 100644 (file)
@@ -157,6 +157,10 @@ Scheduler::handleCallback (Request *req) {
   outputCallback callback = req->getCallback ();
 
   req->setSubmitted (false);
+  if (req->getInferMode () == NPU_INFER_BLOCKING) {
+    /* remove the internal callback for next submissions */
+    req->setCallback (nullptr);
+  }
 
   if (!req->isStopped () && callback != nullptr)
     callback ();
@@ -164,9 +168,6 @@ Scheduler::handleCallback (Request *req) {
   if (!req->isPreserved ()) {
     /* the request instance is also deleted here */
     removeRequest (req);
-  } else if (req->getInferMode () == NPU_INFER_BLOCKING) {
-    /* remove the internal callback for next submissions */
-    req->setCallback (nullptr);
   }
 }