m_timeout is passed by session::set_timeout(unsigned int). m_timeout is >= 0 always.