[Python-checkins] cpython: Issue #11382: Trivial system calls, such as dup() or pipe(), needn't

antoine.pitrou python-checkins at python.org
Sat Apr 23 17:21:42 CEST 2011


http://hg.python.org/cpython/rev/eb7297fd5840
changeset: 69532:eb7297fd5840
parent: 69528:fecf9e6d7630
user: Antoine Pitrou <solipsis at pitrou.net>
date: Sat Apr 23 17:21:13 2011 +0200
summary:
 Issue #11382: Trivial system calls, such as dup() or pipe(), needn't
release the GIL. Patch by Charles-François Natali.
files:
 Misc/NEWS | 3 +++
 Modules/posixmodule.c | 14 --------------
 2 files changed, 3 insertions(+), 14 deletions(-)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -113,6 +113,9 @@
 Library
 -------
 
+- Issue #11382: Trivial system calls, such as dup() or pipe(), needn't
+ release the GIL. Patch by Charles-François Natali.
+
 - Issue #11223: Add threading._info() function providing informations about
 the thread implementation.
 
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -3083,9 +3083,7 @@
 if (!PyArg_ParseTuple(args, "ii", &which, &who))
 return NULL;
 errno = 0;
- Py_BEGIN_ALLOW_THREADS
 retval = getpriority(which, who);
- Py_END_ALLOW_THREADS
 if (errno != 0)
 return posix_error();
 return PyLong_FromLong((long)retval);
@@ -3105,9 +3103,7 @@
 
 if (!PyArg_ParseTuple(args, "iii", &which, &who, &prio))
 return NULL;
- Py_BEGIN_ALLOW_THREADS
 retval = setpriority(which, who, prio);
- Py_END_ALLOW_THREADS
 if (retval == -1)
 return posix_error();
 Py_RETURN_NONE;
@@ -6010,9 +6006,7 @@
 return NULL;
 if (!_PyVerify_fd(fd))
 return posix_error();
- Py_BEGIN_ALLOW_THREADS
 fd = dup(fd);
- Py_END_ALLOW_THREADS
 if (fd < 0)
 return posix_error();
 return PyLong_FromLong((long)fd);
@@ -6031,9 +6025,7 @@
 return NULL;
 if (!_PyVerify_fd_dup2(fd, fd2))
 return posix_error();
- Py_BEGIN_ALLOW_THREADS
 res = dup2(fd, fd2);
- Py_END_ALLOW_THREADS
 if (res < 0)
 return posix_error();
 Py_INCREF(Py_None);
@@ -6525,9 +6517,7 @@
 HFILE read, write;
 APIRET rc;
 
- Py_BEGIN_ALLOW_THREADS
 rc = DosCreatePipe( &read, &write, 4096);
- Py_END_ALLOW_THREADS
 if (rc != NO_ERROR)
 return os2_error(rc);
 
@@ -6536,9 +6526,7 @@
 #if !defined(MS_WINDOWS)
 int fds[2];
 int res;
- Py_BEGIN_ALLOW_THREADS
 res = pipe(fds);
- Py_END_ALLOW_THREADS
 if (res != 0)
 return posix_error();
 return Py_BuildValue("(ii)", fds[0], fds[1]);
@@ -6546,9 +6534,7 @@
 HANDLE read, write;
 int read_fd, write_fd;
 BOOL ok;
- Py_BEGIN_ALLOW_THREADS
 ok = CreatePipe(&read, &write, NULL, 0);
- Py_END_ALLOW_THREADS
 if (!ok)
 return win32_error("CreatePipe", NULL);
 read_fd = _open_osfhandle((Py_intptr_t)read, 0);
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /