[Python-checkins] CVS: python/dist/src/Lib socket.py,1.15,1.16

Guido van Rossum gvanrossum@users.sourceforge.net
Tue, 18 Dec 2001 14:22:27 -0800


Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv10114

Modified Files:
	socket.py 
Log Message:
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.


Index: socket.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/socket.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** socket.py	2001/10/29 07:13:53	1.15
--- socket.py	2001/12/18 22:22:25	1.16
***************
*** 130,138 ****
  class _socketobject:
  
      def __init__(self, sock):
          self._sock = sock
  
      def close(self):
!         self._sock = _closedsocket()
  
      def __del__(self):
--- 130,143 ----
  class _socketobject:
  
+     class _closedsocket:
+         def __getattr__(self, name):
+             raise error(9, 'Bad file descriptor')
+ 
      def __init__(self, sock):
          self._sock = sock
  
      def close(self):
!         # Avoid referencing globals here
!         self._sock = self.__class__._closedsocket()
  
      def __del__(self):
***************
*** 152,161 ****
      for _m in _socketmethods:
          exec _s % (_m, _m)
- 
- 
- class _closedsocket:
- 
-     def __getattr__(self, name):
-         raise error(9, 'Bad file descriptor')
  
  
--- 157,160 ----