From f01368739741ef9b3bcc827f7dbc2ab9d5b48df4 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Sat, 21 Dec 2019 16:50:15 -0800 Subject: performance: reduce system calls required for remove_dead_links `os.path.exists()` will report False if the target of a symlink doesn't exist, so we can avoid a costly call to realpath here. --- lib/spack/llnl/util/filesystem.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py index 0095e3fd21..f6c8d161d7 100644 --- a/lib/spack/llnl/util/filesystem.py +++ b/lib/spack/llnl/util/filesystem.py @@ -917,10 +917,8 @@ def remove_if_dead_link(path): Parameters: path (str): The potential dead link """ - if os.path.islink(path): - real_path = os.path.realpath(path) - if not os.path.exists(real_path): - os.unlink(path) + if os.path.islink(path) and not os.path.exists(path): + os.unlink(path) def remove_linked_tree(path): -- cgit v1.2.3-70-g09d2