From 6ec9a36faf1d29062539bc654358e730395c377e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Tue, 9 Oct 2001 10:10:33 +0000 Subject: Patch #468647: Fix exception propagation in asyncore. --- Lib/asyncore.py | 72 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 34 deletions(-) (limited to 'Lib/asyncore.py') 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): -- cgit v1.2.1