From 763da4c1a41d7d3de970987db7a4af375b20617b Mon Sep 17 00:00:00 2001 From: Jaesung Ku Date: Wed, 24 Apr 2013 14:11:49 +0900 Subject: [PATCH] Update for removing the leaked file descriptor Change-Id: I04f4cefa813174ae5382ce9cfad6491e517f9c30 Signed-off-by: Jaesung Ku --- src/base/runtime/FBaseRt_EventDispatcher.cpp | 2 +- src/base/runtime/FBaseRt_EventDrivenThreadImpl.cpp | 3 +++ src/base/runtime/FBaseRt_EventDrivenThreadImpl.h | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) mode change 100644 => 100755 src/base/runtime/FBaseRt_EventDispatcher.cpp mode change 100644 => 100755 src/base/runtime/FBaseRt_EventDrivenThreadImpl.cpp mode change 100644 => 100755 src/base/runtime/FBaseRt_EventDrivenThreadImpl.h diff --git a/src/base/runtime/FBaseRt_EventDispatcher.cpp b/src/base/runtime/FBaseRt_EventDispatcher.cpp old mode 100644 new mode 100755 index d1bd46d..5063090 --- a/src/base/runtime/FBaseRt_EventDispatcher.cpp +++ b/src/base/runtime/FBaseRt_EventDispatcher.cpp @@ -70,6 +70,7 @@ _EventDispatcher::~_EventDispatcher(void) delete __pMutex; __pMutex = null; } + g_main_context_unref(__pGMainContext); } result @@ -80,7 +81,6 @@ _EventDispatcher::Construct(GMainContext* pGMainContext) int eventFd = -1; __pGMainContext = pGMainContext; - g_main_context_ref(__pGMainContext); eventFd = eventfd(0, 0); SysTryCatch(NID_BASE_RT, -1 != eventFd, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to open eventfd."); diff --git a/src/base/runtime/FBaseRt_EventDrivenThreadImpl.cpp b/src/base/runtime/FBaseRt_EventDrivenThreadImpl.cpp old mode 100644 new mode 100755 index e1e3e93..bca314c --- a/src/base/runtime/FBaseRt_EventDrivenThreadImpl.cpp +++ b/src/base/runtime/FBaseRt_EventDrivenThreadImpl.cpp @@ -36,6 +36,7 @@ _EventDrivenThreadImpl::_EventDrivenThreadImpl(Thread& thread, const String& nam , __pEventDispatcher(null) , __pEventManager(null) , __pEvent(null) + , __pGmainContext(null) { } @@ -45,6 +46,7 @@ _EventDrivenThreadImpl::~_EventDrivenThreadImpl(void) delete __pEventDispatcher; delete __pEventManager; delete __pEvent; + g_main_context_unref(__pGmainContext); } result @@ -127,6 +129,7 @@ _EventDrivenThreadImpl::Initialize(void) __pEventDispatcher = new (std::nothrow) _EventDispatcher(); __pEventDispatcher->Construct(pGMainContext); + __pGmainContext = pGMainContext; return E_SUCCESS; CATCH: diff --git a/src/base/runtime/FBaseRt_EventDrivenThreadImpl.h b/src/base/runtime/FBaseRt_EventDrivenThreadImpl.h old mode 100644 new mode 100755 index 1c5ed05..29beb7a --- a/src/base/runtime/FBaseRt_EventDrivenThreadImpl.h +++ b/src/base/runtime/FBaseRt_EventDrivenThreadImpl.h @@ -69,6 +69,7 @@ private: _EventDispatcher* __pEventDispatcher; _EventManager* __pEventManager; _EventDrivenThreadEvent* __pEvent; + GMainContext* __pGmainContext; Tizen::Base::Collection::LinkedListT <_EventDrivenThreadEventArg*> __pendingEvents; }; -- 2.7.4