Add an loop parameter to yield_from() and task()