1. 16 Eyl, 2009 1 kayıt (commit)
    • Thomas Wouters's avatar
      Merged revisions 74841 via svnmerge from · 448db215
      Thomas Wouters yazdı
      svn+ssh://pythondev@svn.python.org/python/trunk
      
      ........
        r74841 | thomas.wouters | 2009-09-16 12:55:54 -0700 (Wed, 16 Sep 2009) | 23 lines
      
      
        Fix issue #1590864, multiple threads and fork() can cause deadlocks, by
        acquiring the import lock around fork() calls. This prevents other threads
        from having that lock while the fork happens, and is the recommended way of
        dealing with such issues. There are two other locks we care about, the GIL
        and the Thread Local Storage lock. The GIL is obviously held when calling
        Python functions like os.fork(), and the TLS lock is explicitly reallocated
        instead, while also deleting now-orphaned TLS data.
      
        This only fixes calls to os.fork(), not extension modules or embedding
        programs calling C's fork() directly. Solving that requires a new set of API
        functions, and possibly a rewrite of the Python/thread_*.c mess. Add a
        warning explaining the problem to the documentation in the mean time.
      
        This also changes behaviour a little on AIX. Before, AIX (but only AIX) was
        getting the import lock reallocated, seemingly to avoid this very same
        problem. This is not the right approach, because the import lock is a
        re-entrant one, and reallocating would do the wrong thing when forking while
        holding the import lock.
      
        Will backport to 2.6, minus the tiny AIX behaviour change.
      ........
      448db215
  2. 07 Tem, 2006 1 kayıt (commit)
    • Neal Norwitz's avatar
      Restore rev 47014: · 84bc19a4
      Neal Norwitz yazdı
      The hppa ubuntu box sometimes hangs forever in these tests.  My guess
      is that the wait is failing for some reason.  Use WNOHANG, so we won't
      wait until the buildbot kills the test suite.
      
      I haven't been able to reproduce the failure, so I'm not sure if
      this will help or not.  Hopefully, this change will cause the test
      to fail, rather than hang.  That will be better since we will get
      the rest of the test results.  It may also help us debug the real problem.
      
      *** The reason this originally failed was because there were many
      zombie children outstanding before rev 47158 cleaned them up.
      There are still hangs in test_subprocess that need to be addressed,
      but that will take more work.  This should close some holes.
      84bc19a4
  3. 29 Haz, 2006 1 kayıt (commit)
    • Neal Norwitz's avatar
      Add new utility function, reap_children(), to test_support. This should · b15ac316
      Neal Norwitz yazdı
      be called at the end of each test that spawns children (perhaps it
      should be called from regrtest instead?).  This will hopefully prevent
      some of the unexplained failures in the buildbots (hppa and alpha)
      during tests that spawn children.  The problems were not reproducible.
      There were many zombies that remained at the end of several tests.
      In the worst case, this shouldn't cause any more problems,
      though it may not help either.  Time will tell.
      b15ac316
  4. 18 Haz, 2006 2 kayıt (commit)
  5. 20 Mar, 2006 1 kayıt (commit)
  6. 23 Tem, 2002 1 kayıt (commit)
  7. 11 Nis, 2001 1 kayıt (commit)
  8. 30 Ock, 2001 1 kayıt (commit)
  9. 17 Ock, 2001 1 kayıt (commit)
  10. 15 Agu, 2000 1 kayıt (commit)
    • Fred Drake's avatar
      Chris Herborth <chrish@pobox.com>: · 56221a7c
      Fred Drake yazdı
      Minor updates for BeOS R5.
      
      Use of OSError in test.test_fork1 changed to TestSkipped, with corresponding
      change in BeOS/README (by Fred).
      
      This closes SourceForge patch #100978.
      56221a7c
  11. 04 Agu, 2000 1 kayıt (commit)
  12. 04 May, 2000 1 kayıt (commit)
  13. 24 Nis, 2000 1 kayıt (commit)
  14. 10 Nis, 2000 1 kayıt (commit)
    • Fred Drake's avatar
      Use a constant to specify the number of child threads to create. · 1a4b593d
      Fred Drake yazdı
      Instead of assuming that the number process ids of the threads is the
      same as the process id of the controlling process, use a copy of the
      dictionary and check for changes in the process ids of the threads
      from the thread's process ids in the parent process.  This makes the
      test make more sense on systems which assign a new pid to each thread
      (i.e., Linux).
      
      This doesn't fix the other problems evident with this test on Linux.
      1a4b593d
  15. 25 Şub, 2000 1 kayıt (commit)