# HG changeset patch # User Yuya Nishihara # Date 1463811139 -32400 # Node ID 540c01a18bb733d0dd84661244b4113c7499ac1c # Parent 19205a0e2bf17d6d05e0897e77825e0305bae99a commandserver: extract method to create commandserver instance per request This is a step toward merging chgserver._requesthandler with commandserver's. diff -r 19205a0e2bf1 -r 540c01a18bb7 hgext/chgserver.py --- a/hgext/chgserver.py Mon Jul 11 21:40:02 2016 +0900 +++ b/hgext/chgserver.py Sat May 21 15:12:19 2016 +0900 @@ -545,11 +545,9 @@ # same state inherited from parent. random.seed() ui = self.server.ui - repo = self.server.repo sv = None try: - sv = chgcmdserver(ui, repo, self.rfile, self.wfile, self.connection, - self.server.hashstate, self.server.baseaddress) + sv = self._createcmdserver() try: sv.serve() # handle exceptions that may be raised by command server. most of @@ -576,6 +574,12 @@ # trigger __del__ since ForkingMixIn uses os._exit gc.collect() + def _createcmdserver(self): + ui = self.server.ui + repo = self.server.repo + return chgcmdserver(ui, repo, self.rfile, self.wfile, self.connection, + self.server.hashstate, self.server.baseaddress) + def _tempaddress(address): return '%s.%d.tmp' % (address, os.getpid()) diff -r 19205a0e2bf1 -r 540c01a18bb7 mercurial/commandserver.py --- a/mercurial/commandserver.py Mon Jul 11 21:40:02 2016 +0900 +++ b/mercurial/commandserver.py Sat May 21 15:12:19 2016 +0900 @@ -334,10 +334,9 @@ class _requesthandler(socketserver.StreamRequestHandler): def handle(self): ui = self.server.ui - repo = self.server.repo sv = None try: - sv = server(ui, repo, self.rfile, self.wfile) + sv = self._createcmdserver() try: sv.serve() # handle exceptions that may be raised by command server. most of @@ -359,6 +358,11 @@ traceback.print_exc(file=cerr) raise + def _createcmdserver(self): + ui = self.server.ui + repo = self.server.repo + return server(ui, repo, self.rfile, self.wfile) + class unixservice(object): """ Listens on unix domain socket and forks server per connection