]> granicus.if.org Git - python/commitdiff
Store all errors signaling a disconnection into a global frozenset to save some compu...
authorGiampaolo Rodolà <g.rodola@gmail.com>
Wed, 15 Sep 2010 21:43:47 +0000 (21:43 +0000)
committerGiampaolo Rodolà <g.rodola@gmail.com>
Wed, 15 Sep 2010 21:43:47 +0000 (21:43 +0000)
Lib/asyncore.py

index edb1c7bf5013230dcf43a49f6058ecf98b9af0fa..fbbee29bc3b6da5e3dd4b2ee3c41db1067dc6d94 100644 (file)
@@ -56,6 +56,8 @@ import os
 from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET, EINVAL, \
      ENOTCONN, ESHUTDOWN, EINTR, EISCONN, EBADF, ECONNABORTED, errorcode
 
+DISCONNECTED = frozenset((ECONNRESET, ENOTCONN, ESHUTDOWN, ECONNABORTED))
+
 try:
     socket_map
 except NameError:
@@ -364,7 +366,7 @@ class dispatcher:
         except socket.error as why:
             if why.args[0] == EWOULDBLOCK:
                 return 0
-            elif why.args[0] in (ECONNRESET, ENOTCONN, ESHUTDOWN, ECONNABORTED):
+            elif why.args[0] in DISCONNECTED:
                 self.handle_close()
                 return 0
             else:
@@ -382,7 +384,7 @@ class dispatcher:
                 return data
         except socket.error as why:
             # winsock sometimes throws ENOTCONN
-            if why.args[0] in [ECONNRESET, ENOTCONN, ESHUTDOWN, ECONNABORTED]:
+            if why.args[0] in DISCONNECTED:
                 self.handle_close()
                 return b''
             else: