Fix fd lock issue on Alarm
authorJoohyun Kim <joohyune.kim@samsung.com>
Fri, 23 Aug 2013 07:26:16 +0000 (16:26 +0900)
committerJoohyun Kim <joohyune.kim@samsung.com>
Fri, 23 Aug 2013 07:26:16 +0000 (16:26 +0900)
Change-Id: Ibebd6229e41d1f052d00bec24cb3045e366a4af2
Signed-off-by: Joohyun Kim <joohyune.kim@samsung.com>
src/system/FSys_AlarmImpl.cpp
src/system/inc/FSys_AlarmImpl.h

index 733bcee..35a2f9d 100644 (file)
@@ -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<IAlarmEventListener*> (&listener);
                const _AlarmEventArg* pArg = dynamic_cast<const _AlarmEventArg*>(&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);
index 143f0a8..b2e8471 100644 (file)
@@ -28,6 +28,8 @@
 #include <FBaseRtEvent.h>
 #include <FBaseResult.h>
 
+#include <FBaseRt_Event.h>
+
 #include <FSysAlarm.h>
 
 namespace Tizen { namespace System
@@ -80,7 +82,7 @@ private:
 
        bool                    __isSetEndTime;
 
-       Tizen::Base::Runtime::Event* __pEvent;
+       Tizen::Base::Runtime::_Event* __pEvent;
 
        Alarm*                  __pAlarm;
 };