I am using MQX 4.0.2. I was using the _time_delay() function to loosely schedule tasks to perform their duties in a periodic way.
I encountered an infrequent bug where _time_delay() would block for a much longer time than specified, perhaps a hundred times as long or longer. I have not found the cause of the bug, but I can confirm that using MQX's _timer_start_oneshot_after() + _taskq_suspend() + _taskq_resume() solves the issue for me. That means the same sort of timing error is not present in the timer module.
For reference, I have included my own delay_ms() function's source code, which seems to work properly.
Original Attachment has been moved to: Scheduler_Delay.hpp.txt.zip
Original Attachment has been moved to: Scheduler_Delay.cpp.txt.zip
Original Attachment has been moved to: Simple_Map.hpp.txt.zip