From: Thomas Heller Date: Tue, 24 Sep 2002 17:30:31 +0000 (+0000) Subject: On Windows, select() does not accept empty lists. X-Git-Tag: v2.3c1~3993 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d8ce87ad84d748fb648b874d7dd9d9a3a835ec3d;p=python 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 5ab62255fa..abbbae69ad 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, \ @@ -100,11 +101,14 @@ 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 + 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] not in (EINTR, ENOENT): + raise for fd in r: obj = map.get(fd)