[issue1983] Return from fork() is pid_t, not int
Christian Heimes
report at bugs.python.org
Fri Feb 1 20:18:33 CET 2008
Christian Heimes added the comment:
Martin v. Löwis wrote:
> If so, Python would now fail to compile under that
> patch. Backporting a change that causes Python to fail
> to compile on some systems is not a good idea.
I added the size comparison to identify systems with sizeof(pid_t) >
sizeof(long).
> If that aspect was fixed also (e.g. by always returning
> long ints on systems where sizeof(pid_t)>sizeof(long)),
> a backport would be ok. For a perfect backport, that
> change might still cause a behavior change: on
> a system where sizeof(pid_t)>sizeof(long), yet the
> system only ever uses pid_t values < INT_MAX, people
> would see that the fork return type changes unreasonably;
> a perfect backport would only return longs if the values
> are out of range. This is probably over-cautious, as
> it's fairly unlikely that such systems actually exist.
Your proposal looks sound and good to me, but it involves some work. The
chance would require a new format operator 'p' for argument parsing and
new functions like PyInt_FromPid_t() and PyInt_AsPid_t().
In r60504 I've changed the type for the remaining functions like waitpit
and getsid to pid_t. It should make it easy to spot the lines that have
to be changed.
Christian
__________________________________
Tracker <report at bugs.python.org>
<http://bugs.python.org/issue1983>
__________________________________
More information about the Python-bugs-list
mailing list