Ben Bangert raised an excellent point about leaking abandoned coroutines in a recent talk:
This gist demonstrates a design decision in Vanilla to attempt to help with this.
The sender, recver ends of pipes are only connected by weakref's which have callback's registered for when the corresponding end is garbage collected. When one end is blocked on a send or a recv, and the other end is abandoned without being closed explicitly the blocked coroutine will receive a vanilla.Abandoned exception. This will also result in a StopIteration exception if you are iterating over a recver.