Issue #808164: Fixed socket.close to avoid references to globals, to
avoid issues when socket.close is called from a __del__ method.
diff --git a/Lib/socket.py b/Lib/socket.py
index 7818875..30a01aa 100644
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -172,10 +172,12 @@
         if self._closed:
             self.close()
 
-    def _real_close(self):
-        _socket.socket.close(self)
+    def _real_close(self, _ss=_socket.socket):
+        # This function should not reference any globals.  See Issue808164
+        _ss.close(self)
 
     def close(self):
+        # This function should not reference any globals.  See Issue808164
         self._closed = True
         if self._io_refs <= 0:
             self._real_close()