Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commandserver.py @ 29511:540c01a18bb7
commandserver: extract method to create commandserver instance per request
This is a step toward merging chgserver._requesthandler with commandserver's.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 21 May 2016 15:12:19 +0900 |
parents | 33770d2b6cf9 |
children | 538d0003c9e0 |
comparison
equal
deleted
inserted
replaced
29510:19205a0e2bf1 | 29511:540c01a18bb7 |
---|---|
332 _restoreio(ui, fin, fout) | 332 _restoreio(ui, fin, fout) |
333 | 333 |
334 class _requesthandler(socketserver.StreamRequestHandler): | 334 class _requesthandler(socketserver.StreamRequestHandler): |
335 def handle(self): | 335 def handle(self): |
336 ui = self.server.ui | 336 ui = self.server.ui |
337 repo = self.server.repo | |
338 sv = None | 337 sv = None |
339 try: | 338 try: |
340 sv = server(ui, repo, self.rfile, self.wfile) | 339 sv = self._createcmdserver() |
341 try: | 340 try: |
342 sv.serve() | 341 sv.serve() |
343 # handle exceptions that may be raised by command server. most of | 342 # handle exceptions that may be raised by command server. most of |
344 # known exceptions are caught by dispatch. | 343 # known exceptions are caught by dispatch. |
345 except error.Abort as inst: | 344 except error.Abort as inst: |
357 else: | 356 else: |
358 cerr = channeledoutput(self.wfile, 'e') | 357 cerr = channeledoutput(self.wfile, 'e') |
359 traceback.print_exc(file=cerr) | 358 traceback.print_exc(file=cerr) |
360 raise | 359 raise |
361 | 360 |
361 def _createcmdserver(self): | |
362 ui = self.server.ui | |
363 repo = self.server.repo | |
364 return server(ui, repo, self.rfile, self.wfile) | |
365 | |
362 class unixservice(object): | 366 class unixservice(object): |
363 """ | 367 """ |
364 Listens on unix domain socket and forks server per connection | 368 Listens on unix domain socket and forks server per connection |
365 """ | 369 """ |
366 def __init__(self, ui, repo, opts): | 370 def __init__(self, ui, repo, opts): |