diff Lib/socket.py @ 21473:e1f3fe5677da legacy-trunk

Move the helper class _closedsocket *into* the _socketobject class. This way, when a socket object is deleted after the socket module has already been zapped by module shutdown, we don't get annoying warnings about exceptions in __del__ methods.
author Guido van Rossum <guido@python.org>
date Tue, 18 Dec 2001 22:22:25 +0000
parents b3b2fa76a392
children 2faa23facef7 3957d155f8c5
line wrap: on
line diff
--- a/Lib/socket.py	Tue Dec 18 21:08:15 2001 +0000
+++ b/Lib/socket.py	Tue Dec 18 22:22:25 2001 +0000
@@ -129,11 +129,16 @@
 
 class _socketobject:
 
+    class _closedsocket:
+        def __getattr__(self, name):
+            raise error(9, 'Bad file descriptor')
+
     def __init__(self, sock):
         self._sock = sock
 
     def close(self):
-        self._sock = _closedsocket()
+        # Avoid referencing globals here
+        self._sock = self.__class__._closedsocket()
 
     def __del__(self):
         self.close()
@@ -153,12 +158,6 @@
         exec _s % (_m, _m)
 
 
-class _closedsocket:
-
-    def __getattr__(self, name):
-        raise error(9, 'Bad file descriptor')
-
-
 class _fileobject:
 
     def __init__(self, sock, mode, bufsize):