summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/library/os.rst4
-rw-r--r--Lib/test/test_threading.py6
-rw-r--r--Misc/NEWS3
3 files changed, 13 insertions, 0 deletions
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index c223e54..14784fa 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -1646,6 +1646,10 @@ written in Python, such as a mail server's external command delivery program.
Fork a child process. Return ``0`` in the child and the child's process id in the
parent. If an error occurs :exc:`OSError` is raised.
+
+ Note that some platforms including FreeBSD <= 6.3, Cygwin and OS/2 EMX have
+ known issues when using fork() from a thread.
+
Availability: Unix.
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index 4e87437..c8f9cac 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -380,6 +380,12 @@ class ThreadJoinOnShutdown(unittest.TestCase):
import os
if not hasattr(os, 'fork'):
return
+ # Skip platforms with known problems forking from a worker thread.
+ # See http://bugs.python.org/issue3863.
+ if sys.platform in ('freebsd4', 'freebsd5', 'freebsd6', 'os2emx'):
+ print >>sys.stderr, ('Skipping test_3_join_in_forked_from_thread'
+ ' due to known OS bugs on'), sys.platform
+ return
script = """if 1:
main_thread = threading.current_thread()
def worker():
diff --git a/Misc/NEWS b/Misc/NEWS
index 1b08d76..6e6c58d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -37,6 +37,9 @@ Library
- Issue #3879: A regression in urllib.getproxies_enviroment was fixed.
+- Issue #3863: Disabled a unit test of fork being called from a thread
+ when running on platforms known to exhibit OS bugs when attempting that.
+
Build
-----