From d8ce87ad84d748fb648b874d7dd9d9a3a835ec3d Mon Sep 17 00:00:00 2001 From: Thomas Heller Date: Tue, 24 Sep 2002 17:30:31 +0000 Subject: [PATCH] On Windows, select() does not accept empty lists. Patch suggested by Guido, fixes SF item 611464. Bugfix candidate, will backport to release22-maint myself. --- Lib/asyncore.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) 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) -- 2.40.0