X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=client;h=83dfd66d02cc7ca0d92d3459fbba95ecf05d51e6;hb=c13ee6e6ebf8336c44baacae7d8ee7a501b37f90;hp=e6ea8edfb1b81442e14a7f1adcf21a3269f7c9cc;hpb=e8ed0029ef6388f2c9af9467f3958bdd145b2f9b;p=hippotat.git diff --git a/client b/client index e6ea8ed..83dfd66 100755 --- a/client +++ b/client @@ -93,7 +93,7 @@ class ResponseConsumer(GeneralResponseConsumer): return try: self._ssd.flush() - req_fin(req) + req_fin(self._req) except Exception as e: self._handleexception() @@ -154,7 +154,7 @@ def req_err(req, err): raise RuntimeError('[%#x] previously %s' % (id(req), outstanding[req])) outstanding[req] = err log_outstanding() - reactor.callLater(c.http_retry, (lambda: req_fin(req))) + reactor.callLater(c.http_retry, partial(req_fin, req)) except Exception as e: crash(traceback.format_exc() + '\n----- handling -----\n' + err) @@ -163,6 +163,12 @@ def req_fin(req): log_debug(DBG.HTTP_CTRL, 'req_fin OS=%d' % len(outstanding), idof=req) check_outbound() +class Errb: + def __init__(self, req): + self._req = req + def call(self, err): + req_err(self._req, err) + def check_outbound(): global outstanding @@ -216,8 +222,8 @@ def check_outbound(): outstanding[req] = len(d) log_debug(DBG.HTTP_CTRL, 'request OS=%d' % len(outstanding), idof=req, d=d) req.addTimeout(c.http_timeout, reactor) - req.addCallback((lambda resp: req_ok(req, resp))) - req.addErrback((lambda err: req_err(req, err))) + req.addCallback(partial(req_ok, req)) + req.addErrback(partial(req_err, req)) log_outstanding()