Index: Lib/socket.py =================================================================== --- Lib/socket.py (révision 68329) +++ Lib/socket.py (copie de travail) @@ -239,9 +239,11 @@ if self.closed: return io.RawIOBase.close(self) + self._sock._decref_socketios() def __del__(self): - self._sock._decref_socketios() + if not self.closed: + self._sock._decref_socketios() def getfqdn(name=''): Index: Lib/test/test_socket.py =================================================================== --- Lib/test/test_socket.py (révision 68329) +++ Lib/test/test_socket.py (copie de travail) @@ -829,6 +829,14 @@ msg = self.serv_file.read() self.assertEqual(msg, MSG) + def testRealClose(self): + self.serv_file.close() + self.cli_conn.close() + self.assertEquals(self.cli_conn.fileno(), -1) + + def _testRealClose(self): + pass + def _testCloseAfterMakefile(self): self.cli_file.write(MSG) self.cli_file.flush()