# HG changeset patch # Parent 99302634d7567845850a7b1830cfb8f0733583e9 diff -r 99302634d756 Lib/_pyio.py --- a/Lib/_pyio.py Sat Feb 14 01:39:17 2015 +0200 +++ b/Lib/_pyio.py Sat Feb 14 01:01:08 2015 +0000 @@ -727,6 +727,12 @@ def __init__(self, raw): self._raw = raw + def __del__(self): + try: + self.detach() + except Exception: # Already detached, error flushing, etc + pass + ### Positioning ### def seek(self, pos, whence=0): @@ -1261,6 +1267,9 @@ self.reader = BufferedReader(reader, buffer_size) self.writer = BufferedWriter(writer, buffer_size) + def __del__(self): + """Let wrapped objects clean themselves up""" + def read(self, size=None): if size is None: size = -1 @@ -1628,6 +1637,12 @@ # - "bytes_..." for integer variables that count input bytes # - "chars_..." for integer variables that count decoded characters + def __del__(self): + try: + self.detach() + except Exception: # Already detached, error flushing, etc + pass + def __repr__(self): result = "<{}.{}".format(self.__class__.__module__, self.__class__.__qualname__) diff -r 99302634d756 Lib/socket.py --- a/Lib/socket.py Sat Feb 14 01:39:17 2015 +0200 +++ b/Lib/socket.py Sat Feb 14 01:01:08 2015 +0000 @@ -641,6 +641,9 @@ self._sock._decref_socketios() self._sock = None + def __del__(self): + """Leave the wrapped socket open to trigger a ResourceWarning""" + def getfqdn(name=''): """Get fully qualified domain name from name.