Fixed lock up issue when EvasPlugin is resized 85/93385/2
authortaeyoon <taeyoon0.lee@samsung.com>
Mon, 24 Oct 2016 05:01:15 +0000 (14:01 +0900)
committerTom Robinson <tom.robinson@samsung.com>
Tue, 25 Oct 2016 14:12:21 +0000 (15:12 +0100)
Change-Id: I23eeb8f834dd1e39f66c77d9379d9e734d690483

adaptors/tizen/native-render-surface-tizen.cpp

index a205f2e..c202bcc 100644 (file)
@@ -186,10 +186,14 @@ void NativeRenderSurface::PostRender( EglInterface& egl, Integration::GlAbstract
   Internal::Adaptor::EglImplementation& eglImpl = static_cast<Internal::Adaptor::EglImplementation&>( egl );
   eglImpl.SwapBuffers();
 
-  // flush gl instruction queue
-  glAbstraction.Flush();
+  if( mImpl->mThreadSynchronization )
+  {
+    mImpl->mThreadSynchronization->PostRenderStarted();
+  }
 
   {
+    ConditionalWait::ScopedLock lock( mImpl->mTbmSurfaceCondition );
+
     if( tbm_surface_queue_can_acquire( mImpl->mTbmQueue, 1 ) )
     {
       if( tbm_surface_queue_acquire( mImpl->mTbmQueue, &mImpl->mConsumeSurface ) != TBM_SURFACE_QUEUE_ERROR_NONE )
@@ -207,11 +211,11 @@ void NativeRenderSurface::PostRender( EglInterface& egl, Integration::GlAbstract
     // Tell the event-thread to render the pixmap
     mImpl->mRenderNotification->Trigger();
   }
-  else
+
+  if( mImpl->mThreadSynchronization )
   {
-    // FIXME
+    mImpl->mThreadSynchronization->PostRenderWaitForCompletion();
   }
-
 }
 
 void NativeRenderSurface::StopRender()