Merge - Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
diff --git a/Lib/asyncore.py b/Lib/asyncore.py
index d647606..e699815 100644
--- a/Lib/asyncore.py
+++ b/Lib/asyncore.py
@@ -132,7 +132,8 @@
is_w = obj.writable()
if is_r:
r.append(fd)
- if is_w:
+ # accepting sockets should not be writable
+ if is_w and not obj.accepting:
w.append(fd)
if is_r or is_w:
e.append(fd)
@@ -179,7 +180,8 @@
flags = 0
if obj.readable():
flags |= select.POLLIN | select.POLLPRI
- if obj.writable():
+ # accepting sockets should not be writable
+ if obj.writable() and not obj.accepting:
flags |= select.POLLOUT
if flags:
# Only check for exceptions if object was either readable
diff --git a/Misc/NEWS b/Misc/NEWS
index a206a17..18c79a0 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -225,6 +225,8 @@
Library
-------
+- Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
+
- Issue #4376: ctypes now supports nested structures in a endian different than
the parent structure. Patch by Vlad Riscutia.