[Checkins] SVN: Sandbox/J1m/resumelb/src/zc/resumelb/ Refactor to use zc.resumelb.util.Disconnected to signal disconnected
Jim Fulton
jim at zope.com
Sun Jan 22 13:35:25 UTC 2012
Log message for revision 124127:
Refactor to use zc.resumelb.util.Disconnected to signal disconnected
connections.
Changed:
U Sandbox/J1m/resumelb/src/zc/resumelb/lb.py
U Sandbox/J1m/resumelb/src/zc/resumelb/util.py
U Sandbox/J1m/resumelb/src/zc/resumelb/worker.py
-=-
Modified: Sandbox/J1m/resumelb/src/zc/resumelb/lb.py
===================================================================
--- Sandbox/J1m/resumelb/src/zc/resumelb/lb.py 2012-01-22 13:28:01 UTC (rev 124126)
+++ Sandbox/J1m/resumelb/src/zc/resumelb/lb.py 2012-01-22 13:35:24 UTC (rev 124127)
@@ -51,7 +51,7 @@
result = worker.handle(rclass, env, start_response)
self.pool.put(worker)
return result
- except worker.Disconnected:
+ except zc.resumelb.util.Disconnected:
# XXX need to be more careful about whether
# start_response was called.
if (int(env.get('CONTENT_LENGTH', 0)) == 0 and
@@ -240,7 +240,7 @@
while self.is_connected:
try:
rno, data = zc.resumelb.util.read_message(socket)
- except gevent.GreenletExit:
+ except zc.resumelb.util.Disconnected:
self.disconnected()
return
@@ -279,7 +279,7 @@
data = get()
if data is None:
- raise self.Disconnected()
+ raise zc.resumelb.util.Disconnected()
logger.debug('start_response %r', data)
start_response(*data)
@@ -290,7 +290,7 @@
logger.debug('yield %r', data)
yield data
elif data is None:
- raise self.Disconnected()
+ raise zc.resumelb.util.Disconnected()
else:
self.end(rno)
break
Modified: Sandbox/J1m/resumelb/src/zc/resumelb/util.py
===================================================================
--- Sandbox/J1m/resumelb/src/zc/resumelb/util.py 2012-01-22 13:28:01 UTC (rev 124126)
+++ Sandbox/J1m/resumelb/src/zc/resumelb/util.py 2012-01-22 13:35:24 UTC (rev 124127)
@@ -10,13 +10,16 @@
disconnected_errors = (errno.EPIPE, errno.ECONNRESET, errno.ENOTCONN,
errno.ESHUTDOWN, errno.ECONNABORTED)
+class Disconnected(Exception):
+ pass
+
def read_message(sock):
data = ''
while len(data) < 8:
recieved = sock.recv(8-len(data))
if not recieved:
logger.info("read_message disconnected %s", sock)
- raise gevent.GreenletExit()
+ raise Disconnected()
data += recieved
rno, l = unpack(">II", data)
@@ -26,7 +29,7 @@
recieved = sock.recv(l-len(data))
if not recieved:
logger.info("read_message disconnected %s", sock)
- raise gevent.GreenletExit()
+ raise Disconnected()
data += recieved
return rno, marshal.loads(data)
@@ -45,7 +48,7 @@
except socket.error, err:
if err.args[0] in disconnected_errors:
logger.debug("write_message disconnected %s", sock)
- raise gevent.GreenletExit()
+ raise Disconnected()
else:
raise
data = data[sent:]
@@ -55,7 +58,7 @@
rno, data = writeq.get()
try:
write_message(sock, rno, data)
- except gevent.GreenletExit:
+ except Disconnected:
multiplexer.disconnected()
return
@@ -84,11 +87,8 @@
def end(self, rno):
del self.readers[rno]
- class Disconnected(Exception):
- pass
-
def put_disconnected(self, *a, **k):
- raise self.Disconnected()
+ raise Disconnected()
def disconnected(self):
logger.info('worker disconnected %s', self.addr)
Modified: Sandbox/J1m/resumelb/src/zc/resumelb/worker.py
===================================================================
--- Sandbox/J1m/resumelb/src/zc/resumelb/worker.py 2012-01-22 13:28:01 UTC (rev 124126)
+++ Sandbox/J1m/resumelb/src/zc/resumelb/worker.py 2012-01-22 13:35:24 UTC (rev 124127)
@@ -50,7 +50,7 @@
while conn.is_connected:
try:
rno, data = zc.resumelb.util.read_message(sock)
- except gevent.GreenletExit:
+ except zc.resumelb.util.Disconnected:
conn.disconnected()
self.connections.remove(conn)
return
@@ -120,7 +120,7 @@
for (rclass, (sum, n)) in byrclass.iteritems()
))
- except conn.Disconnected:
+ except zc.resumelb.util.Disconnected:
return # whatever
except:
error('handle_connection')
@@ -133,7 +133,7 @@
if conn.is_connected:
try:
conn.put((0, resume))
- except conn.Disconnected:
+ except zc.resumelb.util.Disconnected:
pass
More information about the checkins
mailing list