There are currently time measurements for timeout handling in ImmModel, and possibly other places in the IMM service, that use low resolution time measurements. This is caused by using the time_t type for time stamps, which only has a resolution of seconds. A consequence of this is that the actual timeout can vary up to one second, depending on when (how long after the last clock "tick") the timer is started.
Instead, nanosecond resolution should be used. The osaf_clock_gettime() utility function declared in osaftime.h can be used to read the system clock with nanosecond resolution. Another option in C++ is to use std::chrono::steady_clock.
This ticket can be seen as a continuation of ticket [#1617], where we started to use osaf_clock_gettime() but still didn't change the type of the variables containing time-stamps from time_t to struct timespec.
default (5.1)
[staging:69f8a2]
changeset: 7953:69f8a21309ac
user: Hung Nguyen hung.d.nguyen@dektech.com.au
date: Thu Aug 04 14:37:14 2016 +0700
summary: imm: Use high resolution time measurements for ImmModel [#1704]
[staging:6248e8]
changeset: 7954:6248e8e83ad4
user: Hung Nguyen hung.d.nguyen@dektech.com.au
date: Thu Aug 04 15:39:09 2016 +0700
summary: imm: Use high resolution time measurements for IMMND server [#1704]
Related
Commit: [6248e8]
Commit: [69f8a2]
Tickets:
#1704Sent out a patch to fix the problem with IMMND resending intro messages constantly
https://sourceforge.net/p/opensaf/mailman/message/35308571/
default (5.1) [staging:6b6806]
changeset: 7986:6b6806ad5d27
user: Hung Nguyen hung.d.nguyen@dektech.com.au
date: Sun Aug 28 09:28:34 2016 +0700
summary: imm: Avoid jobDurationSec of zero [#1704]
Related
Commit: [6b6806]
Tickets:
#1704