]> granicus.if.org Git - python/commitdiff
Patch #468647: Fix exception propagation in asyncore.
authorMartin v. Löwis <martin@v.loewis.de>
Tue, 9 Oct 2001 10:10:33 +0000 (10:10 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Tue, 9 Oct 2001 10:10:33 +0000 (10:10 +0000)
Lib/asyncore.py

index e97016243f94eed1b76fd8fdb6ca37621a7c7e90..00b02e300f301f04e7d37e8a0cc89d4e9ed61bad 100644 (file)
@@ -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):