commandserver: extract method to create commandserver instance per request
This is a step toward merging chgserver._requesthandler with commandserver's.
--- 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())
--- 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