comparison mercurial/commandserver.py @ 32277:1ada3d18e7fb

commandserver: move printbanner logic to bindsocket bindsocket now handles listen automatically. "printbanner" seems to be just a part of "bindsocket". This simplifies the interface a bit.
author Jun Wu <quark@fb.com>
date Sun, 30 Apr 2017 11:21:05 -0700
parents c8b9943c07eb
children 0407a51b9d8c
comparison
equal deleted inserted replaced
32276:c8b9943c07eb 32277:1ada3d18e7fb
408 self.ui = ui 408 self.ui = ui
409 409
410 def bindsocket(self, sock, address): 410 def bindsocket(self, sock, address):
411 util.bindunixsocket(sock, address) 411 util.bindunixsocket(sock, address)
412 sock.listen(socket.SOMAXCONN) 412 sock.listen(socket.SOMAXCONN)
413 self.ui.status(_('listening at %s\n') % address)
414 self.ui.flush() # avoid buffering of status message
413 415
414 def unlinksocket(self, address): 416 def unlinksocket(self, address):
415 os.unlink(address) 417 os.unlink(address)
416
417 def printbanner(self, address):
418 self.ui.status(_('listening at %s\n') % address)
419 self.ui.flush() # avoid buffering of status message
420 418
421 def shouldexit(self): 419 def shouldexit(self):
422 """True if server should shut down; checked per pollinterval""" 420 """True if server should shut down; checked per pollinterval"""
423 return False 421 return False
424 422
453 def init(self): 451 def init(self):
454 self._sock = socket.socket(socket.AF_UNIX) 452 self._sock = socket.socket(socket.AF_UNIX)
455 self._servicehandler.bindsocket(self._sock, self.address) 453 self._servicehandler.bindsocket(self._sock, self.address)
456 o = signal.signal(signal.SIGCHLD, self._sigchldhandler) 454 o = signal.signal(signal.SIGCHLD, self._sigchldhandler)
457 self._oldsigchldhandler = o 455 self._oldsigchldhandler = o
458 self._servicehandler.printbanner(self.address)
459 self._socketunlinked = False 456 self._socketunlinked = False
460 457
461 def _unlinksocket(self): 458 def _unlinksocket(self):
462 if not self._socketunlinked: 459 if not self._socketunlinked:
463 self._servicehandler.unlinksocket(self.address) 460 self._servicehandler.unlinksocket(self.address)