(Vector) Make we always trigger EventThreadCallback always 42/316642/1
authorEunki, Hong <eunkiki.hong@samsung.com>
Mon, 16 Dec 2024 08:49:53 +0000 (17:49 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Mon, 16 Dec 2024 08:49:53 +0000 (17:49 +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: If7f29c5a2ba0a7202c14cec1ebf781bec80a5aa3
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali-extension/vector-animation-renderer/vector-animation-plugin-manager.cpp
dali-extension/vector-animation-renderer/vector-animation-plugin-manager.h

index e290802ba8fbceb23c6fa5c081b356313a96f0f8..cb59b362e5b329468cd356a1cc6c59b0bee74318 100644 (file)
@@ -46,7 +46,6 @@ VectorAnimationPluginManager::VectorAnimationPluginManager()
   mTriggerOrderId(0u),
   mMutex(),
   mEventTrigger(),
-  mEventTriggered(false),
   mProcessorRegistered(false),
   mEventHandlerRemovedDuringEventProcessing(false)
 {
@@ -80,8 +79,7 @@ void VectorAnimationPluginManager::AddEventHandler(VectorAnimationEventHandler&
 
       if(!mEventTrigger)
       {
-        mEventTrigger   = std::unique_ptr<EventThreadCallback>(new EventThreadCallback(MakeCallback(this, &VectorAnimationPluginManager::OnEventTriggered)));
-        mEventTriggered = false;
+        mEventTrigger = std::unique_ptr<EventThreadCallback>(new EventThreadCallback(MakeCallback(this, &VectorAnimationPluginManager::OnEventTriggered)));
       }
     }
   }
@@ -116,7 +114,6 @@ void VectorAnimationPluginManager::RemoveEventHandler(VectorAnimationEventHandle
         mEventHandlerRemovedDuringEventProcessing = false;
 
         mEventTrigger.reset();
-        mEventTriggered = false;
       }
       else
       {
@@ -143,11 +140,9 @@ void VectorAnimationPluginManager::TriggerEvent(VectorAnimationEventHandler& han
     {
       mTriggeredHandlers.insert({&handler, mTriggerOrderId++});
 
-      if(!mEventTriggered)
-      {
-        mEventTrigger->Trigger();
-        mEventTriggered = true;
-      }
+      // 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
+      mEventTrigger->Trigger();
     }
   }
 }
@@ -174,7 +169,6 @@ void VectorAnimationPluginManager::OnEventTriggered()
     mTriggeredHandlers.rehash(0u);
 
     mTriggerOrderId = 0u;
-    mEventTriggered = false;
   }
 
   // Reorder event handler ordered by trigger request.
index 06dcc1e3520219a55ecdfe782f4851eee7ebb2fc..6619ca7d432635eefe3234e87921d5c5aa7fe028 100644 (file)
@@ -110,7 +110,6 @@ private:
 
   Dali::Mutex                          mMutex;
   std::unique_ptr<EventThreadCallback> mEventTrigger;
-  bool                                 mEventTriggered : 1;
   bool                                 mProcessorRegistered : 1;
   bool                                 mEventHandlerRemovedDuringEventProcessing : 1;
 };