[Tizen] HOT Fix : IdleEnterer 19/222119/1
authorJoogab Yun <joogab.yun@samsung.com>
Thu, 9 Jan 2020 15:07:47 +0000 (00:07 +0900)
committerDongsug Song <dongsug.song@samsung.com>
Fri, 10 Jan 2020 00:29:46 +0000 (09:29 +0900)
Change-Id: I84edbddbd48a7039f9f414a703a5aeafb0f09988

dali/internal/adaptor/common/adaptor-impl.cpp
dali/internal/adaptor/common/adaptor-impl.h

index 6049e0e..f3bdf48 100755 (executable)
@@ -917,6 +917,12 @@ void Adaptor::RequestProcessEventsOnIdle( bool forceProcess )
   if( ( ! mNotificationOnIdleInstalled ) && ( RUNNING == mState || READY == mState || forceProcess ) )
   {
     mNotificationOnIdleInstalled = AddIdleEnterer( MakeCallback( this, &Adaptor::ProcessCoreEventsFromIdle ), forceProcess );
+    mNotificationOnIdleInstalledCnt++;
+    if( RUNNING == mState )
+    {
+      DALI_LOG_ERROR("gab_test mNotificationOnIdleInstalledCnt %d ", mNotificationOnIdleInstalledCnt);
+      mNotificationOnIdleInstalled = false;
+    }
   }
 }
 
@@ -1079,6 +1085,7 @@ bool Adaptor::ProcessCoreEventsFromIdle()
 
   // the idle handle automatically un-installs itself
   mNotificationOnIdleInstalled = false;
+  mNotificationOnIdleInstalledCnt--;
 
   return false;
 }
@@ -1154,7 +1161,8 @@ Adaptor::Adaptor(Dali::Integration::SceneHolder window, Dali::Adaptor& adaptor,
   mObjectProfiler( nullptr ),
   mSocketFactory(),
   mEnvironmentOptionsOwned( environmentOptions ? false : true /* If not provided then we own the object */ ),
-  mUseRemoteSurface( false )
+  mUseRemoteSurface( false ),
+  mNotificationOnIdleInstalledCnt( 0 )
 {
   DALI_ASSERT_ALWAYS( !IsAvailable() && "Cannot create more than one Adaptor per thread" );
   mWindows.insert( mWindows.begin(), &Dali::GetImplementation( window ) );
index c151865..193c90f 100755 (executable)
@@ -675,6 +675,7 @@ private: // Data
   SocketFactory                         mSocketFactory;               ///< Socket factory
   const bool                            mEnvironmentOptionsOwned:1;   ///< Whether we own the EnvironmentOptions (and thus, need to delete it)
   bool                                  mUseRemoteSurface;            ///< whether the remoteSurface is used or not
+  int  mNotificationOnIdleInstalledCnt;
 
 public:
   inline static Adaptor& GetImplementation(Dali::Adaptor& adaptor) { return *adaptor.mImpl; }