Improve Async::StateMachine stability

Fixes #589 issue with ReflectorLogic, no reconnect after IP failure.
This commit is contained in:
Tobias Blomberg 2022-08-04 09:02:17 +02:00
parent c0266909f6
commit 7ebd9ed530
2 changed files with 11 additions and 4 deletions

View File

@ -171,15 +171,15 @@ class StateMachine
[&](Timer*)
{
assert(m_state != nullptr);
static_cast<StateTopBaseT*>(m_state)->timeoutEvent();
clearTimeout();
static_cast<StateTopBaseT*>(m_state)->timeoutEvent();
});
m_at_timer.expired.connect(
[&](AtTimer*)
{
assert(m_state != nullptr);
static_cast<StateTopBaseT*>(m_state)->timeoutAtEvent();
clearTimeoutAt();
static_cast<StateTopBaseT*>(m_state)->timeoutAtEvent();
});
}
@ -299,6 +299,10 @@ class StateMachine
*/
void setTimeout(int timeout_ms)
{
#ifdef ASYNC_STATE_MACHINE_DEBUG
std::cout << "### StateMachine: setTimeout(" << timeout_ms << ")"
<< std::endl;
#endif
m_timer.setTimeout(timeout_ms);
m_timer.setEnable(true);
}
@ -327,6 +331,9 @@ class StateMachine
*/
void clearTimeout(void)
{
#ifdef ASYNC_STATE_MACHINE_DEBUG
std::cout << "### StateMachine: clearTimeout()" << std::endl;
#endif
m_timer.setEnable(false);
}

View File

@ -8,10 +8,10 @@ QTEL=1.2.4.99.5
LIBECHOLIB=1.3.3.99.2
# Version for the Async library
LIBASYNC=1.6.99.22
LIBASYNC=1.6.99.23
# SvxLink versions
SVXLINK=1.7.99.70
SVXLINK=1.7.99.71
MODULE_HELP=1.0.0
MODULE_PARROT=1.1.1
MODULE_ECHO_LINK=1.5.99.3