##// END OF EJS Templates
inotify: Clarify the use of "watcher" name....
Nicolas Dumazet -
r8335:713ec3f9 default
parent child Browse files
Show More
@@ -114,7 +114,7 b' def _explain_watch_limit(ui, repo, count'
114 raise util.Abort(_('cannot watch %s until inotify watch limit is raised')
114 raise util.Abort(_('cannot watch %s until inotify watch limit is raised')
115 % repo.root)
115 % repo.root)
116
116
117 class Watcher(object):
117 class RepoWatcher(object):
118 poll_events = select.POLLIN
118 poll_events = select.POLLIN
119 statuskeys = 'almr!?'
119 statuskeys = 'almr!?'
120
120
@@ -545,10 +545,10 b' class Watcher(object):'
545 class Server(object):
545 class Server(object):
546 poll_events = select.POLLIN
546 poll_events = select.POLLIN
547
547
548 def __init__(self, ui, repo, watcher, timeout):
548 def __init__(self, ui, repo, repowatcher, timeout):
549 self.ui = ui
549 self.ui = ui
550 self.repo = repo
550 self.repo = repo
551 self.watcher = watcher
551 self.repowatcher = repowatcher
552 self.timeout = timeout
552 self.timeout = timeout
553 self.sock = socket.socket(socket.AF_UNIX)
553 self.sock = socket.socket(socket.AF_UNIX)
554 self.sockpath = self.repo.join('inotify.sock')
554 self.sockpath = self.repo.join('inotify.sock')
@@ -602,36 +602,38 b' class Server(object):'
602
602
603 self.ui.note(_('answering query for %r\n') % states)
603 self.ui.note(_('answering query for %r\n') % states)
604
604
605 if self.watcher.timeout:
605 if self.repowatcher.timeout:
606 # We got a query while a rescan is pending. Make sure we
606 # We got a query while a rescan is pending. Make sure we
607 # rescan before responding, or we could give back a wrong
607 # rescan before responding, or we could give back a wrong
608 # answer.
608 # answer.
609 self.watcher.handle_timeout()
609 self.repowatcher.handle_timeout()
610
610
611 if not names:
611 if not names:
612 def genresult(states, tree):
612 def genresult(states, tree):
613 for fn, state in self.watcher.walk(states, tree):
613 for fn, state in self.repowatcher.walk(states, tree):
614 yield fn
614 yield fn
615 else:
615 else:
616 def genresult(states, tree):
616 def genresult(states, tree):
617 for fn in names:
617 for fn in names:
618 l = self.watcher.lookup(fn, tree)
618 l = self.repowatcher.lookup(fn, tree)
619 try:
619 try:
620 if l in states:
620 if l in states:
621 yield fn
621 yield fn
622 except TypeError:
622 except TypeError:
623 for f, s in self.watcher.walk(states, l, fn):
623 for f, s in self.repowatcher.walk(states, l, fn):
624 yield f
624 yield f
625
625
626 results = ['\0'.join(r) for r in [
626 results = ['\0'.join(r) for r in [
627 genresult('l', self.watcher.statustrees['l']),
627 genresult('l', self.repowatcher.statustrees['l']),
628 genresult('m', self.watcher.statustrees['m']),
628 genresult('m', self.repowatcher.statustrees['m']),
629 genresult('a', self.watcher.statustrees['a']),
629 genresult('a', self.repowatcher.statustrees['a']),
630 genresult('r', self.watcher.statustrees['r']),
630 genresult('r', self.repowatcher.statustrees['r']),
631 genresult('!', self.watcher.statustrees['!']),
631 genresult('!', self.repowatcher.statustrees['!']),
632 '?' in states and genresult('?', self.watcher.statustrees['?']) or [],
632 '?' in states
633 and genresult('?', self.repowatcher.statustrees['?'])
634 or [],
633 [],
635 [],
634 'c' in states and genresult('n', self.watcher.tree) or [],
636 'c' in states and genresult('n', self.repowatcher.tree) or [],
635 ]]
637 ]]
636
638
637 try:
639 try:
@@ -661,10 +663,10 b' class Master(object):'
661 self.ui = ui
663 self.ui = ui
662 self.repo = repo
664 self.repo = repo
663 self.poll = select.poll()
665 self.poll = select.poll()
664 self.watcher = Watcher(ui, repo, self)
666 self.repowatcher = RepoWatcher(ui, repo, self)
665 self.server = Server(ui, repo, self.watcher, timeout)
667 self.server = Server(ui, repo, self.repowatcher, timeout)
666 self.table = {}
668 self.table = {}
667 for obj in (self.watcher, self.server):
669 for obj in (self.repowatcher, self.server):
668 fd = obj.fileno()
670 fd = obj.fileno()
669 self.table[fd] = obj
671 self.table[fd] = obj
670 self.poll.register(fd, obj.poll_events)
672 self.poll.register(fd, obj.poll_events)
@@ -677,7 +679,7 b' class Master(object):'
677 obj.shutdown()
679 obj.shutdown()
678
680
679 def run(self):
681 def run(self):
680 self.watcher.setup()
682 self.repowatcher.setup()
681 self.ui.note(_('finished setup\n'))
683 self.ui.note(_('finished setup\n'))
682 if os.getenv('TIME_STARTUP'):
684 if os.getenv('TIME_STARTUP'):
683 sys.exit(0)
685 sys.exit(0)
@@ -733,7 +735,7 b' def start(ui, repo):'
733 if pid:
735 if pid:
734 return pid
736 return pid
735
737
736 closefds([m.server.fileno(), m.watcher.fileno()])
738 closefds([m.server.fileno(), m.repowatcher.fileno()])
737 os.setsid()
739 os.setsid()
738
740
739 fd = os.open('/dev/null', os.O_RDONLY)
741 fd = os.open('/dev/null', os.O_RDONLY)
General Comments 0
You need to be logged in to leave comments. Login now