complete_while