I think manual ref count tracking (like _make_filerefs) + defining __del__ on 
the socket objects would fix it.  But there may be issues w/ that - when we 
first encountered this I pinged python-dev and I recall Guido saying that there 
were problems getting anything else working on Windows.  So there may be some 
oddity that prevents this from working but I don't know what that is off the 
top of my head.

> -----Original Message-----
> From: users-boun...@lists.ironpython.com [mailto:users-
> boun...@lists.ironpython.com] On Behalf Of Zachary Gramana
> Sent: Tuesday, May 17, 2011 3:38 PM
> To: Discussion of IronPython
> Subject: Re: [IronPython] socket, _socket, and socket.py
> 
> I noticed this, with a little disappointment. I also noticed that they
> implemented a sort of ersatz/platform agnostic reference tracking system in
> ssl.py.  Seeing the _makefile_refs system got me thinking about the whole
> ssl.py/_ssl.pyd paradigm and sockets.cs, since I remembered you tackled this
> issue once before (or one very similar to it:
> http://lists.ironpython.com/pipermail/users-ironpython.com/2007-
> May/004946.html).
> 
> Perhaps something along the lines of _makefile_refs and
> GC.SuppressFinalize might get us closer?
> 
> On 5/17/2011 6:06 PM, Dino Viehland wrote:
> > There is actually more of a story to this though - Cpython's socket.py
> > relies upon reference counting for handling dup.  See this comment
> > from
> > socket.py:
> >
> > # Wrapper around platform socket objects. This implements
> >
> > # a platform-independent dup() functionality. The
> >
> > # implementation currently relies on reference counting
> >
> > # to close the underlying socket object.
> >
> > class _socketobject(object):
> >
> > Because IronPython doesn't have a reference counting GC we cannot
> > simply use socket.py.  So someone would need to patch both IronPython
> > and socket.py so this would work.  For the record it looks like Jython
> > also has a custom socket.py.
> >
> _______________________________________________
> Users mailing list
> Users@lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to