<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">In src/scheduler.h, at line 95, I find:<div class=""><br class=""></div><div class=""><div class="">/* Timer flags */</div><div class="">#define OLSR_TIMER_RUNNING  ( 1u << 0)   /* this timer is running */</div><div class="">#define OLSR_TIMER_REMOVED  ( 1u << 1)   /* this timer is tagged for removal */</div><div class=""><br class=""></div><div class="">which makes me wonder - is there a stage in between running and removed? Are there ’sleeping’ timers? What does it mean when a timer doesn’t have either flag set? This brings me to src/scheduler.c, at line 708:</div><div class=""><br class=""></div><div class=""><div class="">        /* This timer is expired, call into the provided callback function */</div><div class="">        timer->timer_cb(timer->timer_cb_context);</div><div class=""><br class=""></div><div class="">        /* Only act on actually running timers */</div><div class="">        if (timer->timer_flags & OLSR_TIMER_RUNNING) {</div></div><div class=""><br class=""></div><div class="">Shouldn’t the calling of the timer callback only be done when the timer has actual running status? In line 954 of the same file:</div><div class=""><br class=""></div><div class=""><div class="">  /* It's okay to get a NULL here */</div><div class="">  if (!timer //</div><div class="">      || !(timer->timer_flags & OLSR_TIMER_RUNNING)) {</div><div class="">    return;</div><div class="">  }</div></div><div class=""><br class=""></div><div class="">My question: shouldn’t the sense of the condition be inversed to mean ‘is to be removed’ rather than ‘is not running’? This could well be because I don’t quite understand the difference between the two flags.</div><div class=""><br class=""></div><div class="">Thanks in advance for your answers.</div><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class="Apple-interchange-newline">m. vr. gr.  / Sincerely,</div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">KJ Hermans</div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Marketeer High Assurance Products at Fox Crypto BV, Netherlands</div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="mailto:hermans@fox-it.com" class="">hermans@fox-it.com</a></div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">+31 6 41454384</div></div></div></div>
</div>
<br class=""></div></body></html>