]> granicus.if.org Git - python/commitdiff
Move the helper class _closedsocket *into* the _socketobject class.
authorGuido van Rossum <guido@python.org>
Tue, 18 Dec 2001 22:22:25 +0000 (22:22 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 18 Dec 2001 22:22:25 +0000 (22:22 +0000)
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.

Lib/socket.py

index b45b4dc8e7d8c8dbf288d8df5fa7638d27afa965..d2ac5932a28102a5be65d8a9021fe1dcee0293a9 100644 (file)
@@ -129,11 +129,16 @@ _socketmethods = (
 
 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 @@ class _socketobject:
         exec _s % (_m, _m)
 
 
-class _closedsocket:
-
-    def __getattr__(self, name):
-        raise error(9, 'Bad file descriptor')
-
-
 class _fileobject:
 
     def __init__(self, sock, mode, bufsize):