summaryrefslogtreecommitdiffstats
path: root/Modules/posixmodule.c
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2009-05-23 16:19:24 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2009-05-23 16:19:24 (GMT)
commitcd1376d75f97c87aaf1adf1e583a5affe2ca98e7 (patch)
tree0ba218faea4c408c3df2f7d7014d25c7d7f13a66 /Modules/posixmodule.c
parent794b3fc707d8ebc576c6881f85875c8a5a99c75a (diff)
downloadcpython-cd1376d75f97c87aaf1adf1e583a5affe2ca98e7.zip
cpython-cd1376d75f97c87aaf1adf1e583a5affe2ca98e7.tar.gz
cpython-cd1376d75f97c87aaf1adf1e583a5affe2ca98e7.tar.bz2
Merged revisions 72855 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r72855 | antoine.pitrou | 2009-05-23 18:06:49 +0200 (sam., 23 mai 2009) | 3 lines Some pid_t-expecting or producing functions were forgotten in r72852. ........
Diffstat (limited to 'Modules/posixmodule.c')
-rw-r--r--Modules/posixmodule.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 021b14f..f9439912 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -3816,7 +3816,7 @@ Return the current process id");
static PyObject *
posix_getpid(PyObject *self, PyObject *noargs)
{
- return PyInt_FromLong((long)getpid());
+ return PyLong_FromPid(getpid());
}
@@ -3870,13 +3870,13 @@ Call the system call getpgid().");
static PyObject *
posix_getpgid(PyObject *self, PyObject *args)
{
- int pid, pgid;
- if (!PyArg_ParseTuple(args, "i:getpgid", &pid))
+ pid_t pid, pgid;
+ if (!PyArg_ParseTuple(args, PARSE_PID ":getpgid", &pid))
return NULL;
pgid = getpgid(pid);
if (pgid < 0)
return posix_error();
- return PyInt_FromLong((long)pgid);
+ return PyLong_FromPid(pgid);
}
#endif /* HAVE_GETPGID */
@@ -3890,9 +3890,9 @@ static PyObject *
posix_getpgrp(PyObject *self, PyObject *noargs)
{
#ifdef GETPGRP_HAVE_ARG
- return PyInt_FromLong((long)getpgrp(0));
+ return PyLong_FromPid(getpgrp(0));
#else /* GETPGRP_HAVE_ARG */
- return PyInt_FromLong((long)getpgrp());
+ return PyLong_FromPid(getpgrp());
#endif /* GETPGRP_HAVE_ARG */
}
#endif /* HAVE_GETPGRP */
@@ -3926,7 +3926,7 @@ Return the parent's process id.");
static PyObject *
posix_getppid(PyObject *self, PyObject *noargs)
{
- return PyInt_FromLong(getppid());
+ return PyLong_FromPid(getppid());
}
#endif
@@ -4015,8 +4015,13 @@ Kill a process group with a signal.");
static PyObject *
posix_killpg(PyObject *self, PyObject *args)
{
- int pgid, sig;
- if (!PyArg_ParseTuple(args, "ii:killpg", &pgid, &sig))
+ int sig;
+ pid_t pgid;
+ /* XXX some man pages make the `pgid` parameter an int, others
+ a pid_t. Since getpgrp() returns a pid_t, we assume killpg should
+ take the same type. Moreover, pid_t is always at least as wide as
+ int (else compilation of this module fails), which is safe. */
+ if (!PyArg_ParseTuple(args, PARSE_PID "i:killpg", &pgid, &sig))
return NULL;
if (killpg(pgid, sig) == -1)
return posix_error();
@@ -6181,8 +6186,9 @@ Set the process group associated with the terminal given by a fd.");
static PyObject *
posix_tcsetpgrp(PyObject *self, PyObject *args)
{
- int fd, pgid;
- if (!PyArg_ParseTuple(args, "ii:tcsetpgrp", &fd, &pgid))
+ int fd;
+ pid_t pgid;
+ if (!PyArg_ParseTuple(args, "i" PARSE_PID ":tcsetpgrp", &fd, &pgid))
return NULL;
if (tcsetpgrp(fd, pgid) < 0)
return posix_error();