ros one-shot timer block bug?
Hi, I meet an confuse issue about the mavros conn timeout timer, it is defined in the sys_status.cpp, as we know the one-shot flag means fire only once callback function while the timer duration time passed, everything works fine if no external timesync event of change the linux system time, it is also works fine if timer duration is greater than the time-diff change on the linux system time. But if the one-shot timer duration is less than the time-diff change on the linux system, then the one-shot timer will blocked at the timer.stop() call function and it always return true of the timer.hasPending() function, meanwhile it also block the mavros component. I checked the sourcecode of timer.cpp and timer_manager.cpp, seems it block at the mutex(waiting_mutex_), but I have no way to debug it due to I do not know how to change this sourcecode. As we know that, a timesync event of change linux time is a normally operation, seems such one-shot timer issue is too dangerous since it blocked the whole mavros process. Is anyone could help such issue? Many thanks forward.