From: jungmin76.park Date: Fri, 23 Aug 2013 12:49:40 +0000 (+0900) Subject: apply mutex to _AppWidgetRemoteBuffer to prevent re-enterance X-Git-Tag: submit/tizen/20130912.075546^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f9fac488bc8a8b1f9588e771eb0ea8bcaa7c7863;p=platform%2Fframework%2Fnative%2Fappwidget-service.git apply mutex to _AppWidgetRemoteBuffer to prevent re-enterance Change-Id: I1abb36641a52415595f5ddd1b5ca7cb24bfc7fa2 Signed-off-by: jungmin76.park --- diff --git a/inc/FShell_AppWidgetRemoteBuffer.h b/inc/FShell_AppWidgetRemoteBuffer.h index 3802ac1..67accde 100644 --- a/inc/FShell_AppWidgetRemoteBuffer.h +++ b/inc/FShell_AppWidgetRemoteBuffer.h @@ -24,6 +24,7 @@ #ifndef _FSHELL_APPWIDGET_REMOTE_BUFFER_H_ #define _FSHELL_APPWIDGET_REMOTE_BUFFER_H_ +#include #include #include @@ -64,6 +65,8 @@ private: struct livebox_buffer* __buffer_info; _IAppWidgetRemoteBufferEventListener* __pListener; + Tizen::Base::Runtime::Mutex __mutex; + }; // class _AppWidgetRemoteBuffer }}} // Tizen::Shell::App diff --git a/src/FShell_AppWidgetRemoteBuffer.cpp b/src/FShell_AppWidgetRemoteBuffer.cpp index 4db81c0..40baeec 100644 --- a/src/FShell_AppWidgetRemoteBuffer.cpp +++ b/src/FShell_AppWidgetRemoteBuffer.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include "FShell_AppWidgetRemoteBuffer.h" @@ -69,6 +70,7 @@ namespace Tizen { namespace Shell { namespace App using namespace std; using namespace Tizen::Base; +using namespace Tizen::Base::Runtime; _AppWidgetRemoteBuffer::_AppWidgetRemoteBuffer(const String& providerId, const String& instanceId, target_type type, _IAppWidgetRemoteBufferEventListener* pListener) :__type(type) @@ -77,7 +79,9 @@ _AppWidgetRemoteBuffer::_AppWidgetRemoteBuffer(const String& providerId, const S ,__buffer(null) ,__buffer_info(null) ,__pListener(pListener) + ,__mutex() { + __mutex.Create(); SysLog(NID_SHELL, "_AppWidgetRemoteBuffer is constructed."); } @@ -100,6 +104,7 @@ _AppWidgetRemoteBuffer::Acquire(int w, int h) if( __buffer_info == null) { + MutexGuard lock(__mutex); std::unique_ptr providerId(_StringConverter::CopyToCharArrayN(__providerId)); std::unique_ptr id(_StringConverter::CopyToCharArrayN(__instanceId)); @@ -123,6 +128,7 @@ _AppWidgetRemoteBuffer::Release(void) { SysLog(NID_SHELL, "Enter"); + MutexGuard lock(__mutex); int ret; if( __buffer)