Added a warning against potential pitfalls with hasTimeExpired

Signed-off-by: Florian Fleissner <florian.fleissner@inpartik.de>
pull/659/head
Florian Fleissner 6 years ago
parent 0ee41c85b4
commit 5cfc4bb57e

@ -154,6 +154,17 @@ class Kaleidoscope_ {
* timer expires (and `hasTimeExpired()` returns true) when the time that * timer expires (and `hasTimeExpired()` returns true) when the time that
* has elapsed since `start_time` exceeds this value. It must be an * has elapsed since `start_time` exceeds this value. It must be an
* integer type that is no bigger than the type of `start_time`. * integer type that is no bigger than the type of `start_time`.
*
* Warning: When using hasTimeExpired, make sure that the value of ttl
* is at least by the size of the call interval smaller than
* the maximum value that the datatype of timeout can store.
* Otherwise false negatives are likely to occur
* when checking (elapsed_time > ttl).
*
* Example: When both arguments of hasTimeExpired are of type uint16_t and
* the function is called in every cycle with a cycle duration
* of x ms, the value of ttl must not be larger than
* std::numeric_limits<uint16_t>::max() - x.
*/ */
template <typename _Timestamp, typename _Timeout> template <typename _Timestamp, typename _Timeout>
bool hasTimeExpired(_Timestamp start_time, _Timeout ttl) { bool hasTimeExpired(_Timestamp start_time, _Timeout ttl) {

Loading…
Cancel
Save