]> granicus.if.org Git - python/commitdiff
Merged revisions 78531 via svnmerge from
authorGregory P. Smith <greg@mad-scientist.com>
Mon, 1 Mar 2010 17:04:45 +0000 (17:04 +0000)
committerGregory P. Smith <greg@mad-scientist.com>
Mon, 1 Mar 2010 17:04:45 +0000 (17:04 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78531 | gregory.p.smith | 2010-02-28 18:31:33 -0800 (Sun, 28 Feb 2010) | 2 lines

  Fix for r78527.  It left out updating forkpty.
........

Modules/posixmodule.c

index 202fae53690c17bf8d52423cafdc3cfc0052248e..abe618919518b30c50723a573f63d390d2d28938 100644 (file)
@@ -3880,15 +3880,18 @@ To both, return fd of newly opened pseudo-terminal.\n");
 static PyObject *
 posix_forkpty(PyObject *self, PyObject *noargs)
 {
-       int master_fd = -1, result;
+       int master_fd = -1, result = 0;
        pid_t pid;
 
        _PyImport_AcquireLock();
        pid = forkpty(&master_fd, NULL, NULL, NULL);
-       if (pid == 0)
+       if (pid == 0) {
+               /* child: this clobbers and resets the import lock. */
                PyOS_AfterFork();
-
-       result = _PyImport_ReleaseLock();
+       } else {
+               /* parent: release the import lock. */
+               result = _PyImport_ReleaseLock();
+       }
        if (pid == -1)
                return posix_error();
        if (result < 0) {