[Tizen] (Vector) Make we always trigger EventThreadCallback always 45/316645/1
authorEunki, Hong <eunkiki.hong@samsung.com>
Thu, 12 Dec 2024 08:40:10 +0000 (17:40 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Mon, 16 Dec 2024 08:54:58 +0000 (17:54 +0900)
Since their was some issue looks like eventfd didn't send callback
even if we trigger callback before.

Until we found good solution to resolve this issue, let we make trigger
the event callback always.

Change-Id: I8f12e47e2271ccdcef4746a0d2fc08f9b51665c4
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali-toolkit/internal/visuals/animated-vector-image/vector-animation-thread.cpp
dali-toolkit/internal/visuals/animated-vector-image/vector-animation-thread.h

index 34576a7d998d23263821a6c515f332caa4e209a5..57a3b8fc9a680b32293d76b0f8d65f241b11ea16 100644 (file)
@@ -55,7 +55,6 @@ VectorAnimationThread::VectorAnimationThread()
   mTraceFactory(Dali::Adaptor::Get().GetTraceFactory()),
   mNeedToSleep(false),
   mDestroyThread(false),
-  mEventTriggered(false),
   mForceRenderOnce(false)
 {
   mAsyncTaskManager = Dali::AsyncTaskManager::Get();
@@ -175,11 +174,11 @@ void VectorAnimationThread::AddEventTriggerCallback(CallbackBase* callback, uint
 
     mTriggerEventCallbacks.emplace_back(callback, argument);
 
-    if(!mEventTriggered)
+    // Note : Always trigger event since eventfd might not emit triggered callback sometimes.
+    // Let we keep this logic until fd relative bug fixed. 2024-12-16 eunkiki.hong
+    if(DALI_LIKELY(mEventTrigger))
     {
-      DALI_LOG_DEBUG_INFO("VectorAnimationThread::mEventTrigger Triggered!\n");
       mEventTrigger->Trigger();
-      mEventTriggered = true;
     }
   }
 }
@@ -203,11 +202,12 @@ void VectorAnimationThread::RequestForceRenderOnce()
   {
     mForceRenderOnce = true;
 
-    if(!mEventTriggered)
+    DALI_LOG_DEBUG_INFO("VectorAnimationThread::mEventTrigger Triggered!\n");
+    // Note : Always trigger event since eventfd might not emit triggered callback sometimes.
+    // Let we keep this logic until fd relative bug fixed. 2024-12-16 eunkiki.hong
+    if(DALI_LIKELY(mEventTrigger))
     {
-      DALI_LOG_DEBUG_INFO("VectorAnimationThread::mEventTrigger Triggered!\n");
       mEventTrigger->Trigger();
-      mEventTriggered = true;
     }
   }
 }
@@ -476,11 +476,9 @@ std::pair<CallbackBase*, uint32_t> VectorAnimationThread::GetNextEventCallback()
       if(callbackIdPair.first == nullptr)
       {
         DALI_LOG_ERROR("Error! someone register null callback!\n");
-        mEventTriggered = false;
       }
       return callbackIdPair;
     }
-    mEventTriggered = false;
   }
   return std::make_pair(nullptr, 0u);
 }
index 61ff71b06882d55a80d6538be98532216ab2cbe0..ff08c6dd17224bf668d48bcd87c1831d07e9e57b 100644 (file)
@@ -217,7 +217,6 @@ private:
 
   bool mNeedToSleep : 1;
   bool mDestroyThread : 1;
-  bool mEventTriggered : 1;
   bool mForceRenderOnce : 1;
 };