[Python-Dev] PEP 446: issue with sockets (original) (raw)

Victor Stinner victor.stinner at gmail.com
Wed Aug 21 02:19:50 CEST 2013


2013/8/21 Guido van Rossum <guido at python.org>:

Also, are you sure the things returned by socket.fleno() are really Windows handles? I thought they were some other artificial namespace used just by sockets.

(You know what? I know understand and love the UNIX concept "everything is file"!)

I don't know if a socket handle is similar to file handles or if they are specials. At least, GetHandleInformation() and SetHandleInformation() functions, used by os.get/set_handle_inheritable(), accept socket handles.

Outside the socket module, the subprocess and multiprocessing modules use also Windows handles. The subprocess has for example a private _make_inheritable() method which could be replaced with os.set_handle_inheritable(). I'm not sure because _make_inheritable() duplicates the input handle, whereas os.set_handle_inheritable() modify directly the handle. I don't know why the handle needs to be duplicated.

Victor



More information about the Python-Dev mailing list