added optional timeouts to TQM's loop reader