From: Joohyun Kim Date: Fri, 23 Aug 2013 07:26:16 +0000 (+0900) Subject: Fix fd lock issue on Alarm X-Git-Tag: accepted/tizen/20130912.081851^2~10^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bc86e6e30630d5e92aaefe471b6d8649f2527c19;p=platform%2Fframework%2Fnative%2Fappfw.git Fix fd lock issue on Alarm Change-Id: Ibebd6229e41d1f052d00bec24cb3045e366a4af2 Signed-off-by: Joohyun Kim --- diff --git a/src/system/FSys_AlarmImpl.cpp b/src/system/FSys_AlarmImpl.cpp index 733bcee..35a2f9d 100644 --- a/src/system/FSys_AlarmImpl.cpp +++ b/src/system/FSys_AlarmImpl.cpp @@ -50,11 +50,18 @@ public: Alarm* pAlarm; }; -class _AlarmEvent : public Event +class _AlarmEvent : public _Event { +public: + result Construct(void) + { + return _Event::Initialize(); + } + protected: virtual void FireImpl(IEventListener& listener, const IEventArg& arg) { + SysLog(NID_SYS, "Alarm is expired."); IAlarmEventListener* pListener = dynamic_cast (&listener); const _AlarmEventArg* pArg = dynamic_cast(&arg); @@ -202,6 +209,7 @@ _AlarmImpl::SetAlarmEventListener(IAlarmEventListener* pListener) { _AlarmEvent* pAlarmEvent = new (std::nothrow) _AlarmEvent(); SysTryReturnResult(NID_SYS, pAlarmEvent != null, E_OUT_OF_MEMORY, "It is failed to create Event instance"); + pAlarmEvent->Construct(); __pEvent = pAlarmEvent; } __pEvent->AddListener(*pListener); @@ -223,7 +231,8 @@ _AlarmImpl::OnAlarmExpired(int alarmId) pAlarmEventArg->pAlarm = this->__pAlarm; if(pAlarmEventArg != null) { - __pEvent->Fire(*pAlarmEventArg); + SysLog(NID_SYS, "AlarmEventArg is ready."); + __pEvent->FireAsync(*pAlarmEventArg); } SysLog(NID_SYS, "Alarm Expired for alarm id: %d and listener called.", alarmId); diff --git a/src/system/inc/FSys_AlarmImpl.h b/src/system/inc/FSys_AlarmImpl.h index 143f0a8..b2e8471 100644 --- a/src/system/inc/FSys_AlarmImpl.h +++ b/src/system/inc/FSys_AlarmImpl.h @@ -28,6 +28,8 @@ #include #include +#include + #include namespace Tizen { namespace System @@ -80,7 +82,7 @@ private: bool __isSetEndTime; - Tizen::Base::Runtime::Event* __pEvent; + Tizen::Base::Runtime::_Event* __pEvent; Alarm* __pAlarm; };