Add more quit points for watching thread.

This commit is contained in:
Leo Vasanko 2023-11-13 16:28:53 -08:00
parent 7077b21159
commit 3e50149d4d

View File

@ -129,7 +129,7 @@ def watcher_thread(loop):
global rootpath global rootpath
import inotify.adapters import inotify.adapters
while True: while not quit:
rootpath = config.config.path rootpath = config.config.path
i = inotify.adapters.InotifyTree(rootpath.as_posix()) i = inotify.adapters.InotifyTree(rootpath.as_posix())
# Initialize the tree from filesystem # Initialize the tree from filesystem
@ -218,11 +218,15 @@ def _walk(rel: PurePosixPath, isfile: int, st: stat_result) -> list[FileEntry]:
try: try:
li = [] li = []
for f in path.iterdir(): for f in path.iterdir():
if quit:
raise SystemExit("quit")
if f.name.startswith("."): if f.name.startswith("."):
continue # No dotfiles continue # No dotfiles
s = f.stat() s = f.stat()
li.append((int(not stat.S_ISDIR(s.st_mode)), f.name, s)) li.append((int(not stat.S_ISDIR(s.st_mode)), f.name, s))
for [isfile, name, s] in humansorted(li): for [isfile, name, s] in humansorted(li):
if quit:
raise SystemExit("quit")
subtree = _walk(rel / name, isfile, s) subtree = _walk(rel / name, isfile, s)
child = subtree[0] child = subtree[0]
entry.mtime = max(entry.mtime, child.mtime) entry.mtime = max(entry.mtime, child.mtime)