From: Martin v. Löwis Date: Tue, 9 Oct 2001 10:10:33 +0000 (+0000) Subject: Patch #468647: Fix exception propagation in asyncore. X-Git-Tag: v2.2.1c1~1389 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6ec9a36faf1d29062539bc654358e730395c377e;p=python Patch #468647: Fix exception propagation in asyncore. --- diff --git a/Lib/asyncore.py b/Lib/asyncore.py index e97016243f..00b02e300f 100644 --- a/Lib/asyncore.py +++ b/Lib/asyncore.py @@ -85,26 +85,28 @@ def poll (timeout=0.0, map=None): for fd in r: try: obj = map[fd] - try: - obj.handle_read_event() - except ExitNow: - raise ExitNow - except: - obj.handle_error() except KeyError: - pass + continue + + try: + obj.handle_read_event() + except ExitNow: + raise ExitNow + except: + obj.handle_error() for fd in w: try: obj = map[fd] - try: - obj.handle_write_event() - except ExitNow: - raise ExitNow - except: - obj.handle_error() except KeyError: - pass + continue + + try: + obj.handle_write_event() + except ExitNow: + raise ExitNow + except: + obj.handle_error() def poll2 (timeout=0.0, map=None): import poll @@ -127,17 +129,18 @@ def poll2 (timeout=0.0, map=None): for fd, flags in r: try: obj = map[fd] - try: - if (flags & poll.POLLIN): - obj.handle_read_event() - if (flags & poll.POLLOUT): - obj.handle_write_event() - except ExitNow: - raise ExitNow - except: - obj.handle_error() except KeyError: - pass + continue + + try: + if (flags & poll.POLLIN): + obj.handle_read_event() + if (flags & poll.POLLOUT): + obj.handle_write_event() + except ExitNow: + raise ExitNow + except: + obj.handle_error() def poll3 (timeout=0.0, map=None): # Use the poll() support added to the select module in Python 2.0 @@ -160,17 +163,18 @@ def poll3 (timeout=0.0, map=None): for fd, flags in r: try: obj = map[fd] - try: - if (flags & select.POLLIN): - obj.handle_read_event() - if (flags & select.POLLOUT): - obj.handle_write_event() - except ExitNow: - raise ExitNow - except: - obj.handle_error() except KeyError: - pass + continue + + try: + if (flags & select.POLLIN): + obj.handle_read_event() + if (flags & select.POLLOUT): + obj.handle_write_event() + except ExitNow: + raise ExitNow + except: + obj.handle_error() def loop (timeout=30.0, use_poll=0, map=None):