Timer should only be called when timeout > 0.