[pypy-commit] pypy py3.5: hg merge default

arigo pypy.commits at gmail.com
Sun Feb 5 13:06:32 EST 2017


Author: Armin Rigo <arigo at tunes.org>
Branch: py3.5
Changeset: r89949:9ba6ab77fd29
Date: 2017-02-05 19:05 +0100
http://bitbucket.org/pypy/pypy/changeset/9ba6ab77fd29/

Log:	hg merge default

diff --git a/pypy/module/cpyext/pystate.py b/pypy/module/cpyext/pystate.py
--- a/pypy/module/cpyext/pystate.py
+++ b/pypy/module/cpyext/pystate.py
@@ -1,6 +1,7 @@
 from pypy.module.cpyext.api import (
     cpython_api, generic_cpy_call, CANNOT_FAIL, CConfig, cpython_struct)
 from pypy.module.cpyext.pyobject import PyObject, Py_DecRef, make_ref, from_ref
+from pypy.interpreter.error import OperationError
 from rpython.rtyper.lltypesystem import rffi, lltype
 from rpython.rlib import rthread
 from rpython.rlib.objectmodel import we_are_translated
@@ -317,3 +318,16 @@
     be held.  The thread state must have been reset with a previous call to
     PyThreadState_Clear()."""
 
+ at cpython_api([], lltype.Void)
+def PyOS_AfterFork(space):
+    """Function to update some internal state after a process fork; this should be
+    called in the new process if the Python interpreter will continue to be used.
+    If a new executable is loaded into the new process, this function does not need
+    to be called."""
+    if not space.config.translation.thread:
+        return
+    from pypy.module.thread import os_thread
+    try:
+        os_thread.reinit_threads(space)
+    except OperationError as e:
+        e.write_unraisable(space, "PyOS_AfterFork()")
diff --git a/pypy/module/cpyext/stubs.py b/pypy/module/cpyext/stubs.py
--- a/pypy/module/cpyext/stubs.py
+++ b/pypy/module/cpyext/stubs.py
@@ -1468,14 +1468,6 @@
     one of the strings '<stdin>' or '???'."""
     raise NotImplementedError
 
- at cpython_api([], lltype.Void)
-def PyOS_AfterFork(space):
-    """Function to update some internal state after a process fork; this should be
-    called in the new process if the Python interpreter will continue to be used.
-    If a new executable is loaded into the new process, this function does not need
-    to be called."""
-    raise NotImplementedError
-
 @cpython_api([], rffi.INT_real, error=CANNOT_FAIL)
 def PyOS_CheckStack(space):
     """Return true when the interpreter runs out of stack space.  This is a reliable


More information about the pypy-commit mailing list