summaryrefslogtreecommitdiffstats
path: root/timer.cpp
diff options
context:
space:
mode:
authorVishwanatha Subbanna <vishwa@linux.vnet.ibm.com>2017-05-30 15:34:23 +0530
committerVishwanatha Subbanna <vishwa@linux.vnet.ibm.com>2017-06-02 16:37:51 +0530
commit8c5a2298627c6cbe37782f3b33e8d6c43ed9c4d8 (patch)
tree784fc6e0fa0a9c79ac4d14d43a2c71b5d1ad9ebc /timer.cpp
parentd7a3f13ef17e34a39bae3ff482c15181e40cc0d7 (diff)
downloadphosphor-watchdog-8c5a2298627c6cbe37782f3b33e8d6c43ed9c4d8.tar.gz
phosphor-watchdog-8c5a2298627c6cbe37782f3b33e8d6c43ed9c4d8.zip
Invoke optional callback function on timer expiration
When the timer expires, it calls into it's own timeout handler which matches with sd_event callback handler. However, it is beneficial if the users of timer register their own callback routine so that they can execute some operations on timeout. Change-Id: Ia88cb4e3c17f6dd8d4528fa193ec7927f083a92b Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
Diffstat (limited to 'timer.cpp')
-rw-r--r--timer.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/timer.cpp b/timer.cpp
index bf1a470..c98dcb0 100644
--- a/timer.cpp
+++ b/timer.cpp
@@ -44,12 +44,16 @@ int Timer::timeoutHandler(sd_event_source* eventSource,
{
using namespace phosphor::logging;
+ log<level::INFO>("Timer Expired");
+
auto timer = static_cast<Timer*>(userData);
timer->expire = true;
- log<level::INFO>("Timer Expired");
-
- //TODO: Need to call user callback function.
+ // Call an optional callback function
+ if(timer->userCallBack)
+ {
+ timer->userCallBack();
+ }
return 0;
}
OpenPOWER on IntegriCloud