Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 99d2fbb

Browse files
committed
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.
1 parent f499b03 commit 99d2fbb

1 file changed

Lines changed: 6 additions & 7 deletions

File tree

Lib/socket.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,16 @@ def getfqdn(name=''):
129129

130130
class _socketobject:
131131

132+
class _closedsocket:
133+
def __getattr__(self, name):
134+
raise error(9, 'Bad file descriptor')
135+
132136
def __init__(self, sock):
133137
self._sock = sock
134138

135139
def close(self):
136-
self._sock = _closedsocket()
140+
# Avoid referencing globals here
141+
self._sock = self.__class__._closedsocket()
137142

138143
def __del__(self):
139144
self.close()
@@ -153,12 +158,6 @@ def makefile(self, mode='r', bufsize=-1):
153158
exec _s % (_m, _m)
154159

155160

156-
class _closedsocket:
157-
158-
def __getattr__(self, name):
159-
raise error(9, 'Bad file descriptor')
160-
161-
162161
class _fileobject:
163162

164163
def __init__(self, sock, mode, bufsize):

0 commit comments

Comments
 (0)