Fix checking the status of timer
With the new implementation of the timer (the commit 3a70fa24fc016a06b0dc2ecdc3c7275d1f25425c),
we catch the bug in the logic of the rt-link events handler:
If the timer is not started yet, it will never expire.
This commit adds the additional check for the timer activity.
Resolves openbmc/openbmc#3437
Change-Id: I0f8c165c626cc649af8d6550407d2a640f691fce
Signed-off-by: Alexander Filippov <a.filippov@yadro.com>
diff --git a/rtnetlink_server.cpp b/rtnetlink_server.cpp
index ed5f8c9..9daf9ad 100644
--- a/rtnetlink_server.cpp
+++ b/rtnetlink_server.cpp
@@ -46,7 +46,8 @@
{
// starting the timer here to make sure that we don't want
// create the child objects multiple times.
- if (refreshObjectTimer->hasExpired())
+ if (!refreshObjectTimer->isEnabled() ||
+ refreshObjectTimer->hasExpired())
{
// if start timer throws exception then let the application
// crash