diff options
author | Jon Moroney <darakian@gmail.com> | 2020-07-09 17:11:51 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-09 17:11:51 -0700 |
commit | 2992e6c0fd586ff4253f1ff3de9b3d02f8cac40a (patch) | |
tree | 66c27ed227bd22a8a0a38d4b6933c19d3f23d3dc | |
parent | dddf30caa1840a3083111672f1130958e60ef088 (diff) | |
parent | 92f2f62350f10033e9f055e1f80bc0d863d42958 (diff) |
Merge pull request #28 from darakian/debug-thread-file-panics
Debug thread file panics
-rw-r--r-- | src/lib.rs | 11 |
1 files changed, 4 insertions, 7 deletions
@@ -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) => { |