# HG changeset patch # User Yuya Nishihara # Date 1463892309 -32400 # Node ID 9da1adc18639caa328f4ad593896004f797caf05 # Parent 300318b7d66d9a9843dc0b848b73cad17c197d59 commandserver: drop old unixservice implementation It's been superseded by unixforkingservice. diff -r 300318b7d66d -r 9da1adc18639 mercurial/commandserver.py --- a/mercurial/commandserver.py Sun May 22 13:36:37 2016 +0900 +++ b/mercurial/commandserver.py Sun May 22 13:45:09 2016 +0900 @@ -25,8 +25,6 @@ util, ) -socketserver = util.socketserver - logfile = None def log(*args): @@ -423,48 +421,19 @@ serves for the current connection""" return server(self.ui, repo, 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 - return server(ui, repo, fin, fout) - -class unixservice(object): +class unixforkingservice(object): """ Listens on unix domain socket and forks server per connection """ - def __init__(self, ui, repo, opts): + + def __init__(self, ui, repo, opts, handler=None): self.ui = ui self.repo = repo self.address = opts['address'] - if not util.safehasattr(socketserver, 'UnixStreamServer'): + if not util.safehasattr(socket, 'AF_UNIX'): raise error.Abort(_('unsupported platform')) if not self.address: raise error.Abort(_('no socket path specified with --address')) - - def init(self): - class cls(socketserver.ForkingMixIn, socketserver.UnixStreamServer): - ui = self.ui - repo = self.repo - self.server = cls(self.address, _requesthandler) - self.ui.status(_('listening at %s\n') % self.address) - self.ui.flush() # avoid buffering of status message - - def _cleanup(self): - os.unlink(self.address) - - def run(self): - try: - self.server.serve_forever() - finally: - self._cleanup() - -class unixforkingservice(unixservice): - def __init__(self, ui, repo, opts, handler=None): - super(unixforkingservice, self).__init__(ui, repo, opts) self._servicehandler = handler or unixservicehandler(ui) self._sock = None self._oldsigchldhandler = None