We're having issues in a cleanup phase of the os::Timer class since
killing a timer (killTimer) does not wait for timeout() to return. So
the timer you're killing might still be executing when killTimer
returns, causing trouble furtheron when accessing/cleaning up
resources.
The solution is to make all these functions synchronise with timeout,
but still allow to modify the timer from within timeout() by using a
recursive mutex.
https://github.com/psoetens/orocos-rtt/commit/6ce2bc01a8c56ccab79eccfe63...
Alternative would be to not modify Timer.cpp and to guard the timeout
+ cleanup in user code with a mutex.
Any remarks ?
Peter