From: Giampaolo RodolĂ  Date: Wed, 15 Sep 2010 21:43:47 +0000 (+0000) Subject: Store all errors signaling a disconnection into a global frozenset to save some compu... X-Git-Tag: v3.2a3~249 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=985b68e611e5902bd21ce3159e849b2dcd370afb;p=thirdparty%2FPython%2Fcpython.git Store all errors signaling a disconnection into a global frozenset to save some computation time on recv() and send(). --- diff --git a/Lib/asyncore.py b/Lib/asyncore.py index edb1c7bf5013..fbbee29bc3b6 100644 --- a/Lib/asyncore.py +++ b/Lib/asyncore.py @@ -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: