On Jun 4, 2016, at 13:25, Ben Darnell <ben@bendarnell.com> wrote:

If things are so sensitive to minor changes in timing, doesn't that set the bar impossibly high for interoperability? 

The sensitivity is not to changes in timing - i.e. when the wall-clock runs, or ordering of non-deterministically ordered events - but rather to reentrancy - whether certain things complete synchronously while the caller is still on the stack and can depend on them having done so upon return.

The recommended way of writing tests within Twisted these days depends heavily on `.callback┬┤ synchronously resolving a Deferred, which is what adding a call_soon breaks.