提交 fc104d7c authored 作者: Frederic's avatar Frederic

Make sure to not delete empty folder when we do not have the lock

上级 1d9b897b
...@@ -663,10 +663,16 @@ class ModuleCache(object): ...@@ -663,10 +663,16 @@ class ModuleCache(object):
too_old_to_use = [] too_old_to_use = []
to_delete = [] to_delete = []
to_delete_empty = []
def rmtree(*args, **kwargs): def rmtree(*args, **kwargs):
if cleanup: if cleanup:
to_delete.append((args, kwargs)) to_delete.append((args, kwargs))
def rmtree_empty(*args, **kwargs):
if cleanup:
to_delete_empty.append((args, kwargs))
# add entries that are not in the entry_from_key dictionary # add entries that are not in the entry_from_key dictionary
time_now = time.time() time_now = time.time()
# Go through directories in alphabetical order to ensure consistent # Go through directories in alphabetical order to ensure consistent
...@@ -684,7 +690,11 @@ class ModuleCache(object): ...@@ -684,7 +690,11 @@ class ModuleCache(object):
if not os.path.isdir(root): if not os.path.isdir(root):
continue continue
files = os.listdir(root) files = os.listdir(root)
if not files or 'delete.me' in files: if not files:
rmtree_empty(root, ignore_nocleanup=True,
msg="empty dir")
continue
if 'delete.me' in files:
rmtree(root, ignore_nocleanup=True, rmtree(root, ignore_nocleanup=True,
msg="delete.me found in dir") msg="delete.me found in dir")
continue continue
...@@ -900,10 +910,14 @@ class ModuleCache(object): ...@@ -900,10 +910,14 @@ class ModuleCache(object):
pkl_file_to_remove) pkl_file_to_remove)
self.loaded_key_pkl.remove(pkl_file_to_remove) self.loaded_key_pkl.remove(pkl_file_to_remove)
if to_delete: if to_delete or to_delete_empty:
with compilelock.lock_ctx(): with compilelock.lock_ctx():
for a, kw in to_delete: for a, kw in to_delete:
_rmtree(*a, **kw) _rmtree(*a, **kw)
for a, kw in to_delete_empty:
files = os.listdir(a[0])
if not files:
_rmtree(*a, **kw)
_logger.debug('Time needed to refresh cache: %s', _logger.debug('Time needed to refresh cache: %s',
(time.time() - start_time)) (time.time() - start_time))
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论