summaryrefslogtreecommitdiffstats
path: root/timer.cpp
diff options
context:
space:
mode:
authorRatan Gupta <ratagupt@in.ibm.com>2018-03-07 16:03:53 +0530
committerTom Joseph <tomjoseph@in.ibm.com>2018-03-20 06:02:53 +0000
commit32cbd65b41ffd444819c5bcf988ca1f5f1cfe415 (patch)
tree825d19391833f4ea58cead2cc7eb9642252b74e6 /timer.cpp
parent1247e0baa08711893ab1e3e78d789d6a3ef0a491 (diff)
downloadphosphor-host-ipmid-32cbd65b41ffd444819c5bcf988ca1f5f1cfe415.tar.gz
phosphor-host-ipmid-32cbd65b41ffd444819c5bcf988ca1f5f1cfe415.zip
Timer: Fix the timer expire property.
Presently when the call back associated with timer gets called then the expire property becomes true, which is correct as it tells the timer has expired and calls the callback. On the other hand it doesn't set the expire property to false when it starts the timer. This commit sets the expire property to false when startTimer function gets called. Change-Id: I0bb4fe3c375b2a73d214ba9ccbdf25f223b11449 Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
Diffstat (limited to 'timer.cpp')
-rw-r--r--timer.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/timer.cpp b/timer.cpp
index 4e8fd9a..06965de 100644
--- a/timer.cpp
+++ b/timer.cpp
@@ -51,13 +51,14 @@ int Timer::timeoutHandler(sd_event_source* eventSource,
auto timer = static_cast<Timer*>(userData);
timer->expired = true;
+ log<level::INFO>("Timer expired");
// Call optional user call back function if available
if(timer->userCallBack)
{
timer->userCallBack();
}
- log<level::INFO>("Timer expired");
+ sd_event_source_set_enabled(eventSource, SD_EVENT_OFF);
return 0;
}
@@ -80,6 +81,7 @@ int Timer::startTimer(std::chrono::microseconds timeValue)
{
// Disable the timer
setTimer(SD_EVENT_OFF);
+ expired = false;
// Get the current MONOTONIC time and add the delta
auto expireTime = getTime() + timeValue;
OpenPOWER on IntegriCloud