From: Thomas Heller Date: Tue, 24 Sep 2002 17:44:40 +0000 (+0000) Subject: backport of the checkin of revision 1.36 of asyncore.py X-Git-Tag: v2.2.2b1~121 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9391943e08825567cc5167d8158d06c2201fb3e7;p=thirdparty%2FPython%2Fcpython.git backport of the checkin of revision 1.36 of asyncore.py On Windows, select() does not accept empty lists. Patch suggested by Guido, fixes SF item 611464. Bugfix candidate, will backport to release22-maint myself. --- diff --git a/Lib/asyncore.py b/Lib/asyncore.py index 96cc9cc77c2e..bae416b56063 100644 --- a/Lib/asyncore.py +++ b/Lib/asyncore.py @@ -50,6 +50,7 @@ import exceptions import select import socket import sys +import time import os from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET, \ @@ -75,12 +76,15 @@ def poll (timeout=0.0, map=None): 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