On Windows, select() does not accept empty lists.
Patch suggested by Guido, fixes SF item 611464.
Bugfix candidate, will backport to release22-maint myself.
import select
import socket
import sys
+import time
import os
from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET, \
r.append (fd)
if obj.writable():
w.append (fd)
- try:
- r,w,e = select.select (r,w,e, timeout)
- except select.error, err:
- if err[0] != EINTR:
- raise
- r = []; w = []; e = []
+ if [] == r == w == e:
+ time.sleep(timeout)
+ else:
+ try:
+ r,w,e = select.select (r,w,e, timeout)
+ except select.error, err:
+ if err[0] != EINTR:
+ raise
+ r = []; w = []; e = []
if DEBUG:
print r,w,e