This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author jnoller
Recipients Albert.Strasheim, aljungberg, asksol, bquinlan, gdb, hongqn, jnoller, pitrou, vlasovskikh, vstinner
Date 2011-03-31.13:13:15
SpamBayes Score 1.31387e-07
Marked as misclassified No
Message-id <>
In-reply-to <>
On Thu, Mar 31, 2011 at 9:05 AM, Antoine Pitrou <> wrote:
> Antoine Pitrou <> added the comment:
> Possible plan for POSIX, where a connection uses a pipe() or socketpair(): exploit the fact that an endpoint becomes ready for reading (indicating EOF) when the other endpoint is closed:
>>>> r, w = os.pipe()
>>>>[r], [], [r], 0)
> ([], [], [])
>>>> os.close(w)
>>>>[r], [], [r], 0)
> ([4], [], [])
>>>> a, b = socket.socketpair()
>>>>[b], [], [b], 0)
> ([], [], [])
>>>> a.close()
>>>>[b], [], [b], 0)
> ([<socket.socket object, fd=8, family=1, type=1, proto=0>], [], [])
> So, each Process could have a sentinel fd in the parent process, which becomes ready when the process exits. These sentinel fds can be used in the various select() calls underlying Queue.get().
> (I don't understand why _multiprocessing/socket_connection.c in written in C. Rewriting it in Python would make improvements much easier)

I concur with you. The only reason it is in C is legacy; I don't see
an immediate reason why it should continue to be that way
Date User Action Args
2011-03-31 13:13:16jnollersetrecipients: + jnoller, bquinlan, pitrou, vstinner, hongqn, asksol, vlasovskikh, gdb, Albert.Strasheim, aljungberg
2011-03-31 13:13:15jnollerlinkissue9205 messages
2011-03-31 13:13:15jnollercreate