1. 24 Jun, 2017 1 commit
    • Dean Moldovan's avatar
      Fix GIL release and acquire when embedding the interpreter · 2d6116b5
      Dean Moldovan authored
      Fixes a race condition when multiple threads try to acquire the GIL
      before `detail::internals` have been initialized. `gil_scoped_release`
      is now tasked with initializing `internals` (guaranteed single-threaded)
      to ensure the safety of subsequent `acquire` calls from multiple threads.
      2d6116b5
  2. 08 Jun, 2017 1 commit
    • Jason Rhinelander's avatar
      Destroy internals if created during Py_Finalize() · 4edb1ce2
      Jason Rhinelander authored
      Py_Finalize could potentially invoke code that calls `get_internals()`,
      which could create a new internals object if one didn't exist.
      `finalize_interpreter()` didn't catch this because it only used the
      pre-finalize interpreter pointer status; if this happens, it results in
      the internals pointer not being properly destroyed with the interpreter,
      which leaks, and also causes a `get_internals()` under a future
      interpreter to return an internals object that is wrong in various ways.
      4edb1ce2
  3. 07 Jun, 2017 1 commit
  4. 28 May, 2017 3 commits