From 2f7f4302ba3adfe516fe6e0f88bb6be5ae11e565 Mon Sep 17 00:00:00 2001 From: Geoff Salmon Date: Mon, 5 Sep 2011 16:45:26 -0400 Subject: [PATCH] ensure any errors from zmq are raise on thread that called send/recv --- eventlet/green/zmq.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/eventlet/green/zmq.py b/eventlet/green/zmq.py index 87719c1..3d70e8e 100644 --- a/eventlet/green/zmq.py +++ b/eventlet/green/zmq.py @@ -412,13 +412,19 @@ class Socket(__zmq__.Socket): if e.errno == EAGAIN: return result else: - # message failed to send writers.popleft() if current is writer: raise else: hub.schedule_call_global(0, writer.throw, e) continue + except: + writers.popleft() + if current is writer: + raise + else: + hub.schedule_call_global(0, writer.throw, e) + continue # move to the next msg writers.popleft() @@ -456,13 +462,19 @@ class Socket(__zmq__.Socket): if e.errno == EAGAIN: return None else: - # message failed to send readers.popleft() if current is reader: raise else: hub.schedule_call_global(0, reader.throw, e) continue + except: + readers.popleft() + if current is reader: + raise + else: + hub.schedule_call_global(0, reader.throw, e) + continue # move to the next reader readers.popleft()