# HG changeset patch # User Yuya Nishihara # Date 1463811503 -32400 # Node ID 538d0003c9e0c97bb8ea3f7da79d3cce1bd258ed # Parent 540c01a18bb733d0dd84661244b4113c7499ac1c commandserver: promote .cleanup() hook from chgserver This allows us to unify _requesthandler.handle(). diff -r 540c01a18bb7 -r 538d0003c9e0 hgext/chgserver.py --- a/hgext/chgserver.py Sat May 21 15:12:19 2016 +0900 +++ b/hgext/chgserver.py Sat May 21 15:18:23 2016 +0900 @@ -353,6 +353,7 @@ self.capabilities['validate'] = chgcmdserver.validate def cleanup(self): + super(chgcmdserver, self).cleanup() # dispatch._runcatch() does not flush outputs if exception is not # handled by dispatch._dispatch() self.ui.flush() diff -r 540c01a18bb7 -r 538d0003c9e0 mercurial/commandserver.py --- a/mercurial/commandserver.py Sat May 21 15:12:19 2016 +0900 +++ b/mercurial/commandserver.py Sat May 21 15:18:23 2016 +0900 @@ -179,6 +179,10 @@ self.client = fin + def cleanup(self): + """release and restore resources taken during server session""" + pass + def _read(self, size): if not size: return '' @@ -329,6 +333,7 @@ sv = server(ui, self.repo, fin, fout) return sv.serve() finally: + sv.cleanup() _restoreio(ui, fin, fout) class _requesthandler(socketserver.StreamRequestHandler): @@ -348,6 +353,8 @@ raise except KeyboardInterrupt: pass + finally: + sv.cleanup() except: # re-raises # also write traceback to error channel. otherwise client cannot # see it because it is written to server's stderr by default.