Author: Amaury Forgeot d'Arc <[email protected]>
Branch: py3k
Changeset: r58987:5ec3a2cb4ebd
Date: 2012-11-18 23:32 +0100
http://bitbucket.org/pypy/pypy/changeset/5ec3a2cb4ebd/

Log:    _posixsubprocess: handle the (usual) case when preexec_fn is None,
        and correcly call all pre- and post-fork hooks.

diff --git a/pypy/module/_posixsubprocess/interp_subprocess.py 
b/pypy/module/_posixsubprocess/interp_subprocess.py
--- a/pypy/module/_posixsubprocess/interp_subprocess.py
+++ b/pypy/module/_posixsubprocess/interp_subprocess.py
@@ -131,14 +131,17 @@
         for i in range(len(fds_to_keep)):
             l_fds_to_keep[i] = fds_to_keep[i]
 
-        # if not space.is_none(w_preexec_fn):
-        #     _PyImport_AcquireLock()
-        preexec.space = space
-        preexec.w_preexec_fn = w_preexec_fn
+        if not space.is_none(w_preexec_fn):
+            preexec.space = space
+            preexec.w_preexec_fn = w_preexec_fn
+        else:
+            preexec.w_preexec_fn = None
 
         if not space.is_none(w_cwd):
             cwd = fsencode_w(space, w_cwd)
             l_cwd = rffi.str2charp(cwd)
+            
+        run_fork_hooks('before', space)
 
         try:
             pid = os.fork()
@@ -169,8 +172,6 @@
 
     # parent process
     finally:
-        # if not space.is_none(w_preexec_fn):
-        #     _PyImport_ReleaseLock()
         run_fork_hooks('parent', space)
         
         preexec.w_preexec_fn = None
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to