I'm not sure what you are advocating. calling `yieldto(t.parent)` seems exactly like switching to an arbitrary task that you know nothing about (but which happened to know about you). On the other hand, not having a task to return to means that the current produce/consume code is non-functional.