1. 20 Haz, 2005 1 kayıt (commit)
    • Michael W. Hudson's avatar
      Fix bug: · 188d4366
      Michael W. Hudson yazdı
      [ 1163563 ] Sub threads execute in restricted mode
      
      basically by fixing bug 1010677 in a non-broken way.
      
      Backport candidate.
      188d4366
  2. 16 Haz, 2005 1 kayıt (commit)
  3. 18 Nis, 2005 1 kayıt (commit)
    • Michael W. Hudson's avatar
      Fix: · 774479c6
      Michael W. Hudson yazdı
      [ 1176893 ] Readline segfault
      
      by unsilly-ing PyGILState_Release().
      
      Backport candidate.
      774479c6
  4. 08 Şub, 2005 1 kayıt (commit)
  5. 08 Kas, 2004 1 kayıt (commit)
    • Tim Peters's avatar
      SF bug 1061968: threads: segfault or Py_FatalError at exit · fb1ffb0e
      Tim Peters yazdı
      PyGILState_Ensure():  The fix in 2.4a3 for bug 1010677 reintroduced thread
      shutdown race bug 225673.  Repaired by (once again) ensuring the GIL is
      held whenever deleting a thread state.
      
      Alas, there's no useful test case for this shy bug.  Four years ago, only
      Guido could provoke it, on his box, and today only Armin can provoke it
      on his box.  I've never been able to provoke it (but not for lack of
      trying!).
      
      This is a critical fix for 2.3.5 too, since the fix for 1010677 got
      backported there already and so also reintroduced 225673.  I don't intend to
      backport this fix.  For whoever (if anyone) does, there are other thread
      fixes in 2.4 that need backporting too, and I bet they need to happen first
      for this patch to apply cleanly.
      fb1ffb0e
  6. 10 Eki, 2004 2 kayıt (commit)
  7. 09 Eki, 2004 4 kayıt (commit)
  8. 08 Haz, 2004 1 kayıt (commit)
  9. 24 Mar, 2004 1 kayıt (commit)
  10. 13 Tem, 2003 1 kayıt (commit)
  11. 28 Haz, 2003 1 kayıt (commit)
    • Guido van Rossum's avatar
      Add PyThreadState_SetAsyncExc(long, PyObject *). · b8b6d0c2
      Guido van Rossum yazdı
      A new API (only accessible from C) to interrupt a thread by sending it
      an exception.  This is not always effective, but might help some people.
      Requested by Just van Rossum and Alex Martelli.  It is intentional
      that you have to write your own C extension to call it from Python.
      
      Docs will have to wait.
      b8b6d0c2
  12. 01 May, 2003 1 kayıt (commit)
  13. 19 Nis, 2003 1 kayıt (commit)
  14. 15 Nis, 2003 1 kayıt (commit)
    • Guido van Rossum's avatar
      - pythunrun.c, Py_Finalize(): move the call to _Py_PrintReferences() · 0fc8f002
      Guido van Rossum yazdı
        even farther down, to just before the call to
        _PyObject_DebugMallocStats().  This required the following changes:
      
      - pystate.c, PyThreadState_GetDict(): changed not to raise an
        exception or issue a fatal error when no current thread state is
        available, but simply return NULL without raising an exception
        (ever).
      
      - object.c, Py_ReprEnter(): when PyThreadState_GetDict() returns NULL,
        don't raise an exception but return 0.  This means that when
        printing a container that's recursive, printing will go on and on
        and on.  But that shouldn't happen in the case we care about (see
        first bullet).
      
      - Updated Misc/NEWS and Doc/api/init.tex to reflect changes to
        PyThreadState_GetDict() definition.
      0fc8f002
  15. 19 Mar, 2003 1 kayıt (commit)
  16. 19 Şub, 2003 1 kayıt (commit)
  17. 08 Kas, 2002 1 kayıt (commit)
    • Michael W. Hudson's avatar
      Assorted patches from Armin Rigo: · 019a78e7
      Michael W. Hudson yazdı
      [ 617309 ] getframe hook (Psyco #1)
      [ 617311 ] Tiny profiling info (Psyco #2)
      [ 617312 ] debugger-controlled jumps (Psyco #3)
      
      These are forward ports from 2.2.2.
      019a78e7
  18. 03 Eyl, 2002 1 kayıt (commit)
  19. 19 Tem, 2001 1 kayıt (commit)
  20. 18 Tem, 2001 1 kayıt (commit)
  21. 03 Tem, 2001 1 kayıt (commit)
    • Fred Drake's avatar
      This change adjusts the profiling/tracing support so that the common · 9e3ad784
      Fred Drake yazdı
      path (with no profile/trace function) through eval_code2() and
      eval_frame() avoids several checks.
      
      In the common cases of calls, returns, and exception propogation,
      eval_code2() and eval_frame() used to test two values in the
      thread-state: the profiling function and the tracing function.  With
      this change, a flag is set in the thread-state if either of these is
      active, allowing a single check to suffice when both are NULL.  This
      also simplifies the code needed when either function is in use but is
      already active (to avoid profiling/tracing the profiler/tracer); the
      flag is set to 0 when the profile/trace code is entered, allowing the
      same check to suffice for "already in the tracer" for call/return/
      exception events.
      9e3ad784
  22. 27 Haz, 2001 1 kayıt (commit)
    • Fred Drake's avatar
      Revise the interface to the profiling and tracing support for the · 5755ce69
      Fred Drake yazdı
      Python interpreter.
      
      This change adds two new C-level APIs:  PyEval_SetProfile() and
      PyEval_SetTrace().  These can be used to install profile and trace
      functions implemented in C, which can operate at much higher speeds
      than Python-based functions.  The overhead for calling a C-based
      profile function is a very small fraction of a percent of the overhead
      involved in calling a Python-based function.
      
      The machinery required to call a Python-based profile or trace
      function been moved to sysmodule.c, where sys.setprofile() and
      sys.setprofile() simply become users of the new interface.
      
      As a side effect, SF bug #436058 is fixed; there is no longer a
      _PyTrace_Init() function to declare.
      5755ce69
  23. 23 Ock, 2001 1 kayıt (commit)
  24. 02 Eyl, 2000 1 kayıt (commit)
    • Tim Peters's avatar
      PyInterpreterState_New is not thread-safe, and the recent fix to _PyPclose · 412f2460
      Tim Peters yazdı
      can cause it to get called by multiple threads simultaneously.
      
      Ditto for PyInterpreterState_Delete.
      
      Of the former, the docs say "The interpreter lock need not be held, but may
      be held if it is necessary to serialize calls to this function".  This
      kinda implies it both is and isn't thread-safe.
      
      Of the latter, the docs merely say "The interpreter lock need not be
      held.", and the clause about serializing is absent.
      
      I expect it was *believed* these are both thread-safe, and the bit about
      serializing via the global lock was meant as a permission rather than a
      caution.
      
      I also expect we've never seen a problem here because the Python core
      (prior to the _PyPclose fix) only calls these functions once per run.
      The Py_NewInterpreter subsystem exposed by the C API (but not used by
      Python itself) also calls them, but that subsystem appears to be very
      rarely used.
      
      Whatever, they're both thread-safe now.
      412f2460
  25. 01 Eyl, 2000 1 kayıt (commit)
  26. 04 Agu, 2000 1 kayıt (commit)
  27. 22 Tem, 2000 1 kayıt (commit)
  28. 30 Haz, 2000 2 kayıt (commit)
  29. 18 Haz, 1999 1 kayıt (commit)
    • Guido van Rossum's avatar
      CRITICAL PATCH! · 1d5ad90c
      Guido van Rossum yazdı
      We occasionally received reports from people getting "invalid tstate"
      crashes (this is a fatal error in PyThreadState_Delete()).  Finally
      several people were able to reproduce it reliably and Tim Peters
      discovered that there is a race condition when multiple threads are
      calling this function without holding the global interpreter lock (the
      function may be called without holding that).
      
      Solved the race condition by adding a lock around the mutating uses of
      interp->tstate_head.  Tim and Jonathan Giddy have run tests that make
      it likely that this fixes the crashes -- although Tim hasn't heard
      from the person who reported the original problem.
      1d5ad90c
  30. 21 Ara, 1998 1 kayıt (commit)
  31. 10 Nis, 1998 1 kayıt (commit)
    • Guido van Rossum's avatar
      /* An extension mechanism to store arbitrary additional per-thread state. · ede0439c
      Guido van Rossum yazdı
         PyThreadState_GetDict() returns a dictionary that can be used to hold such
         state; the caller should pick a unique key and store its state there.  If
         PyThreadState_GetDict() returns NULL, an exception has been raised (most
         likely MemoryError) and the caller should pass on the exception. */
      
      PyObject *
      PyThreadState_GetDict()
      ede0439c
  32. 03 Kas, 1997 1 kayıt (commit)
  33. 21 Agu, 1997 1 kayıt (commit)
  34. 02 Agu, 1997 1 kayıt (commit)
  35. 19 Tem, 1997 1 kayıt (commit)