summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Moroney <darakian@gmail.com>2020-07-09 17:11:51 -0700
committerGitHub <noreply@github.com>2020-07-09 17:11:51 -0700
commit2992e6c0fd586ff4253f1ff3de9b3d02f8cac40a (patch)
tree66c27ed227bd22a8a0a38d4b6933c19d3f23d3dc
parentdddf30caa1840a3083111672f1130958e60ef088 (diff)
parent92f2f62350f10033e9f055e1f80bc0d863d42958 (diff)
Merge pull request #28 from darakian/debug-thread-file-panics
Debug thread file panics
-rw-r--r--src/lib.rs11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 3560e69..6a52695 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -247,7 +247,7 @@ pub fn deduplicate_dirs<P: AsRef<Path> + Sync>(search_dirs: Vec<P>) -> (Vec<File
}
fn traverse_and_spawn(current_path: &Path, sender: Sender<ChannelPackage>) -> (){
- let current_path_metadata = match fs::metadata(current_path) {
+ let current_path_metadata = match fs::symlink_metadata(current_path) {
Err(e) =>{
sender.send(
ChannelPackage::Fail(current_path.to_path_buf(), e)
@@ -284,11 +284,8 @@ fn traverse_and_spawn(current_path: &Path, sender: Sender<ChannelPackage>) -> ()
.map(|x| x.unwrap())
.collect();
let (files, dirs): (Vec<&DirEntry>, Vec<&DirEntry>) = good_entries.par_iter().partition(|&x|
- x.path()
- .as_path()
- .symlink_metadata()
- .expect("Error reading Symlink Metadata")
- .file_type()
+ x.file_type()
+ .expect("Error reading DirEntry file type")
.is_file()
);
files.par_iter().for_each_with(sender.clone(), |sender, x|
@@ -302,7 +299,7 @@ fn traverse_and_spawn(current_path: &Path, sender: Sender<ChannelPackage>) -> ()
);
dirs.into_par_iter()
.for_each_with(sender, |sender, x| {
- traverse_and_spawn(x.path().as_path(), sender.clone());
+ traverse_and_spawn(x.path().as_path(), sender.clone());
})
},
Err(e) => {