summaryrefslogtreecommitdiffstats
path: root/src/ctrl
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2017-11-18 23:10:24 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2017-11-25 17:45:04 +0000
commit19ec7b948322bbc9457a2b22219c93558a6f931e (patch)
treed66195211d8a48ff6e5cb2714e82af9668de7c07 /src/ctrl
parentb4718fd233a00a950cef1965d13afccd6c6c0e77 (diff)
fsm_tmr_cb: don't set T=0, the fi may no longer exist
When calling the timer_cb, that may have effected an fi termination and deallocation, e.g. from dispatching events and/or complex choices made. Current timer_cb implementations expect T to reflect the fired timer number, so we can't actually set T=0 before calling the timer_cb. Instead, never reset T to zero, let it always reflect the timer that last fired. When a new timer starts, T will be set to its new value. Adding a T arg to the timer_cb() would have been the cleanest solution, so that fi->T can be set to zero before dispatching the timer_cb. But since we've already rolled out this FSM API, we should stay backwards compatible. In the case where the timer returned 1 to request termination, we can assume that the fi still exists, but to be consistent, don't set T = 0 in that code path either. Change-Id: I18626b55a1491098b3ed602df1b331f08d25625a
Diffstat (limited to 'src/ctrl')
0 files changed, 0 insertions, 0 deletions