Fix a crash when exit app
authorHeeyong Song <heeyong.song@samsung.com>
Wed, 16 Oct 2013 06:45:22 +0000 (15:45 +0900)
committerHeeyong Song <heeyong.song@samsung.com>
Wed, 16 Oct 2013 06:45:22 +0000 (15:45 +0900)
Change-Id: If6461ea1b72e345b3aff887abcfaaa9c5a33ca3b

src/ui/animations/FUiAnim_GlLoader.cpp
src/ui/animations/FUiAnim_GlRenderManager.cpp

index 8ef7a11..4b6e9ea 100644 (file)
@@ -37,7 +37,7 @@
 #include <FBaseSysLog.h>
 
 //#include "FUiAnim_GlLoader.h"
-//#define PRINT fprintf(stderr, __VA_ARGS__)
+//#define PRINT(...) fprintf(stderr, __VA_ARGS__)
 #define PRINT(...)
 
 using namespace Tizen::Base;
@@ -463,6 +463,10 @@ _GlesInterfaceTerminate(void)
         PRINT("glGetError() (%#x) %s \n", error, __FUNCTION__); \
         SysLog(NID_UI_ANIM, "glGetError() (%#x) %s", error, __FUNCTION__); \
        } \
+       else \
+       { \
+               PRINT("%s\n", __FUNCTION__); \
+       } \
 }
 
 
index e90688d..7a0a625 100644 (file)
@@ -498,8 +498,15 @@ _GlRenderManager::_GlRenderManager(void)
 
 _GlRenderManager::~_GlRenderManager(void)
 {
-       // TODO: enable
-//     pthread_join(__threadInfo, NULL);
+       _AutoMutex commandTransactionLock(__commandTransaction);
+       _AutoMutex commandLock(__commandLock);
+
+       __commandId = COMMAND_EXIT;
+       __commandRequest.SendSignal();
+
+       __commandReply.WaitForSignal(&__commandLock);
+
+       pthread_join(__threadInfo, NULL);
 
        delete [] __pRenderQueue;
 
@@ -1724,6 +1731,7 @@ _GlRenderManager::RenderProc(void* pData)
 
                default:
                        PRINT("UNKNOWN COMMAND (%d)\n", commandId);
+                       needReply = false;
                        break;
                }
 
@@ -1741,6 +1749,13 @@ exit_renderer:
        pThis->__pGlContext->PopContext();
 #endif
 
+       {
+               _AutoMutex commandLock(pThis->__commandLock);
+
+               pThis->__commandResult = E_SUCCESS;
+               pThis->__commandReply.SendSignal();
+       }
+
        return null;
 }