• Jeremy Hylton's avatar
    Make sure socket.close() doesn't interfere with socket.makefile(). · 5accbdb8
    Jeremy Hylton yazdı
    If a makefile()-generated object is open and its parent socket is
    closed, the parent socket should remain open until the child is
    closed, too.  The code to support this is moderately complex and
    requires one extra slots in the socket object.
    
    This change fixes httplib so that several urllib2net test cases pass
    again.
    
    Add SocketCloser class to socket.py, which encapsulates the
    refcounting logic for sockets after makefile() has been called.
    
    Move SocketIO class from io module to socket module.  It's only use is
    to implement the raw I/O methods on top of a socket to support
    makefile().
    
    Add unittests to test_socket to cover various patterns of close and
    makefile.
    5accbdb8
socket.py 10.4 KB