classification
Title: socket object method "makefile" has wrong doc
Type: Stage:
Components: Documentation Versions: Python 2.3
process
Status: closed Resolution: invalid
Dependencies: Superseder:
Assigned To: skip.montanaro Nosy List: irmen, neunhoef, skip.montanaro (3)
Priority: low Keywords

Created on 2003-11-03 21:23 by neunhoef, last changed 2004-12-20 15:04 by skip.montanaro.

Messages (4)
msg18880 - (view) Author: Max Neunhöffer (neunhoef) Date: 2003-11-03 21:23
The documentation of the method "makefile" for socket
objects still claims that the new file object
corresponds to a dup()ped file descriptor, which seems
to be wrong.

Python Version: 2.3.2 
Operating system: Debian GNU/Linux
msg18881 - (view) Author: Irmen de Jong (irmen) Date: 2004-11-07 19:00
Logged In: YES 
user_id=129426

Why does this seem to be wrong? 
If I look at the code in socketmodule.c, it seems to me that
sock_makefile does a dup() on the socket's fd, and returns a
file based on the new fd....
msg18882 - (view) Author: Max Neunhöffer (neunhoef) Date: 2004-12-20 10:18
Logged In: YES 
user_id=350896

I can no longer understand what made me file this bug
report. I vaguely remember having had the problem that no
dup was done,
but I am no longer sure what I have seen at the time.
Sorry for the inconvenience!
msg18883 - (view) Author: Skip Montanaro (skip.montanaro) Date: 2004-12-20 15:04
Logged In: YES 
user_id=44345

I'm pretty sure I know why you filed this item.  socket.py
contains code to work around shortcomings on Windows and BeOS 
(neither were able to dup() sockets).  At some point we
incorporated that
same code for other platforms for consistency reasons, thus
underlying
sockets are not really dup'd:

>>> import socket
>>> s = socket.socket()
>>> s
<socket._socketobject object at 0x81d9dec>
>>> t = s.dup()
>>> t
<socket._socketobject object at 0x81df02c>
>>> t._sock
<socket object, fd=3, family=2, type=2, protocol=0>
>>> s._sock
<socket object, fd=3, family=2, type=2, protocol=0>
>>> id(s._sock)
136563280
>>> id(t._sock)
136563280

Most of the time this doesn't affect anything, but I believe
it does
in certain cases.
History
Date User Action Args
2003-11-03 21:23:37neunhoefcreate