mirror of https://github.com/python/cpython.git
Works around issue3863: freebsd4/5/6 and os2emx are known to have OS bugs when
calling fork() from a child thread. This disables that unit test (with a note printed to stderr) on those platforms. A caveat about buggy platforms is added to the os.fork documentation.
This commit is contained in:
parent
f40200b214
commit
0806749e63
|
@ -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
|
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.
|
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.
|
Availability: Unix.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -380,6 +380,12 @@ def test_3_join_in_forked_from_thread(self):
|
||||||
import os
|
import os
|
||||||
if not hasattr(os, 'fork'):
|
if not hasattr(os, 'fork'):
|
||||||
return
|
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:
|
script = """if 1:
|
||||||
main_thread = threading.current_thread()
|
main_thread = threading.current_thread()
|
||||||
def worker():
|
def worker():
|
||||||
|
|
|
@ -37,6 +37,9 @@ Library
|
||||||
|
|
||||||
- Issue #3879: A regression in urllib.getproxies_enviroment was fixed.
|
- 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
|
Build
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue