Currently timers are naively implemented using a thread per timer, but it should be possible to implement the timers using a timeout argument to the ros_middleware_interface::wait function. This would potentially be much more efficient and at least more ellegant, as the total number of threads and ros_middleware_interface::GuardConditionHandle's would be significantly reduced. A stepping stone to this, without requiring a timeout in the ros_middleware_interface::wait function, would be to have one thread for all timers which does the same waiting mechanism, but using a sleep function not as a parameter to ros_middleware_interface::wait.