Guido van Rossum wrote:
In your current style you write things like this:
I don't see how this decouples the call site of the primitive from the scheduler any more than if you were to write e.g. this:
If I wrote a library intended for serious use, the end user probably wouldn't write either of those. Instead he would write something like
yield from block(self.queue)
and it would be an implementation detail of the library where abouts the 'yield' happened and whether it needed to send a value or not.
When I say I don't like scheduler instructions, all I really mean is that they shouldn't be part of the public API. A scheduler can use them internally if it wants, I don't care.