]> granicus.if.org Git - python/commitdiff
Issue #5798: Handle select.poll flag oddities properly on OS X.
authorMark Dickinson <dickinsm@gmail.com>
Wed, 4 Aug 2010 14:42:13 +0000 (14:42 +0000)
committerMark Dickinson <dickinsm@gmail.com>
Wed, 4 Aug 2010 14:42:13 +0000 (14:42 +0000)
This fixes test_asynchat and test_smtplib failures on OS X.
(Backport of r73182 from trunk.)

Lib/asyncore.py
Misc/NEWS

index 16fe43a237bd9cf65e9e5d674ae0ad902db3359f..8b9ba8795a69b8213203af7ee7a055b9ad95a8db 100644 (file)
@@ -103,10 +103,16 @@ def readwrite(obj, flags):
             obj.handle_read_event()
         if flags & select.POLLOUT:
             obj.handle_write_event()
-        if flags & (select.POLLHUP | select.POLLERR | select.POLLNVAL):
-            obj.handle_close()
         if flags & select.POLLPRI:
             obj.handle_expt_event()
+        if flags & (select.POLLHUP | select.POLLERR | select.POLLNVAL):
+            obj.handle_close()
+    except socket.error, e:
+        if e.args[0] not in (EBADF, ECONNRESET, ENOTCONN, ESHUTDOWN,
+ECONNABORTED):
+            obj.handle_error()
+        else:
+            obj.handle_close()
     except _reraised_exceptions:
         raise
     except:
index d6ac5a862bb24db400eb6da47eb5b59c4a12ef53..7c774c75e408ddc784348ea8d6350f4b2de0f270 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -4,6 +4,18 @@ Python News
 
 (editors: check NEWS.help for information about editing NEWS using ReST.)
 
+What's New in Python 2.6.6?
+===========================
+
+*Release date: XXXX-XX-XX*
+
+Library
+-------
+
+- Issue #5798: Handle select.poll flag oddities properly on OS X.
+  This fixes test_asynchat and test_smtplib failures on OS X.
+
+
 What's New in Python 2.6.6 rc 1?
 ================================