[Part of patch #909005] Handle POLLPRI flag, and various errors cases.  Fixes bug #887279
diff --git a/Lib/asyncore.py b/Lib/asyncore.py
index c886f92..588f99b 100644
--- a/Lib/asyncore.py
+++ b/Lib/asyncore.py
@@ -82,10 +82,12 @@
 
 def readwrite(obj, flags):
     try:
-        if flags & select.POLLIN:
+        if flags & (select.POLLIN | select.POLLPRI):
             obj.handle_read_event()
         if flags & select.POLLOUT:
             obj.handle_write_event()
+        if flags & (select.POLLERR | select.POLLHUP | select.POLLNVAL):
+            obj.handle_expt_event()
     except ExitNow:
         raise
     except: