clemens pecinovsky <clemens.pecinov...@gmx.at> added the comment: i also ran into the problem of cyclic dependencies. i know if i would call gc.collect() the problem would be solved, but calling gc.collect() takes a long time.
the problem is the cyclic dependency with r.recv=r.read i have fixed it localy by wrapping the addinfourl into a new class (i called it addinfourlFixCyclRef) and overloading the close method, and within the close method set the recv to none again. class addinfourlFixCyclRef(addinfourl): def close(self): if self.fp is not None and hasattr(self.fp, "_sock"): self.fp._sock.recv = None addinfourl.close(self) .... r.recv = r.read fp = socket._fileobject(r, close=True) resp = addinfourlFixCyclRef(fp, r.msg, req.get_full_url()) and when i call .close() from the response it just works. Unluckily i had to patch even more in case there is an exception called. For the whole fix see the attachment ---------- nosy: +peci Added file: http://bugs.python.org/file14827/urllib2.py _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue1208304> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com