Skip to content
Snippets Groups Projects
  1. May 02, 2018
    • Richard van der Hoff's avatar
      Fix a class of logcontext leaks · f22e7cda
      Richard van der Hoff authored
      So, it turns out that if you have a first `Deferred` `D1`, you can add a
      callback which returns another `Deferred` `D2`, and `D2` must then complete
      before any further callbacks on `D1` will execute (and later callbacks on `D1`
      get the *result* of `D2` rather than `D2` itself).
      
      So, `D1` might have `called=True` (as in, it has started running its
      callbacks), but any new callbacks added to `D1` won't get run until `D2`
      completes - so if you `yield D1` in an `inlineCallbacks` function, your `yield`
      will 'block'.
      
      In conclusion: some of our assumptions in `logcontext` were invalid. We need to
      make sure that we don't optimise out the logcontext juggling when this
      situation happens. Fortunately, it is easy to detect by checking `D1.paused`.
      f22e7cda
  2. May 01, 2018
  3. Apr 30, 2018
  4. Apr 29, 2018
  5. Apr 28, 2018
Loading