Mercurial > hg
changeset 29543:d74b8a4fde3b
commandserver: extract function that serves for the current connection
This will be used by new server implementation.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 22 May 2016 12:49:22 +0900 |
parents | 6011ad3b0a42 |
children | 024e8f82f3de |
files | hgext/chgserver.py mercurial/commandserver.py |
diffstat | 2 files changed, 10 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/chgserver.py Sun May 22 12:44:25 2016 +0900 +++ b/hgext/chgserver.py Sun May 22 12:49:22 2016 +0900 @@ -533,9 +533,8 @@ 'setumask': setumask}) class _requesthandler(commandserver._requesthandler): - def _createcmdserver(self, conn, fin, fout): + def _createcmdserver(self, repo, conn, fin, fout): ui = self.server.ui - repo = self.server.repo return chgcmdserver(ui, repo, fin, fout, conn, self.server.hashstate, self.server.baseaddress)
--- a/mercurial/commandserver.py Sun May 22 12:44:25 2016 +0900 +++ b/mercurial/commandserver.py Sun May 22 12:49:22 2016 +0900 @@ -338,8 +338,8 @@ sv.cleanup() _restoreio(ui, fin, fout) -class _requesthandler(socketserver.BaseRequestHandler): - def handle(self): +def _serverequest(ui, repo, conn, createcmdserver): + if True: # TODO: unindent # use a different process group from the master process, making this # process pass kernel "is_current_pgrp_orphaned" check so signals like # SIGTSTP, SIGTTIN, SIGTTOU are not ignored. @@ -347,14 +347,12 @@ # change random state otherwise forked request handlers would have a # same state inherited from parent. random.seed() - ui = self.server.ui - conn = self.request fin = conn.makefile('rb') fout = conn.makefile('wb') sv = None try: - sv = self._createcmdserver(conn, fin, fout) + sv = createcmdserver(repo, conn, fin, fout) try: sv.serve() # handle exceptions that may be raised by command server. most of @@ -387,9 +385,13 @@ # trigger __del__ since ForkingMixIn uses os._exit gc.collect() - def _createcmdserver(self, conn, fin, fout): +class _requesthandler(socketserver.BaseRequestHandler): + def handle(self): + _serverequest(self.server.ui, self.server.repo, self.request, + self._createcmdserver) + + def _createcmdserver(self, repo, conn, fin, fout): ui = self.server.ui - repo = self.server.repo return server(ui, repo, fin, fout) class unixservice(object):