Skip to content

Commit 15c2f81

Browse files
author
Devdutt Shenoi
committed
refactor: delete_empty_directory_hot_tier
1 parent e8bf543 commit 15c2f81

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

src/hottier.rs

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -753,35 +753,35 @@ struct DiskUtil {
753753
}
754754

755755
async fn delete_empty_directory_hot_tier(path: &Path) -> io::Result<()> {
756-
async fn delete_helper(path: &Path) -> io::Result<()> {
757-
if path.is_dir() {
758-
let mut read_dir = fs::read_dir(path).await?;
759-
let mut subdirs = vec![];
760-
761-
while let Some(entry) = read_dir.next_entry().await? {
762-
let entry_path = entry.path();
763-
if entry_path.is_dir() {
764-
subdirs.push(entry_path);
765-
}
766-
}
767-
let mut tasks = vec![];
768-
for subdir in &subdirs {
769-
tasks.push(delete_empty_directory_hot_tier(subdir));
770-
}
771-
futures::stream::iter(tasks)
772-
.buffer_unordered(10)
773-
.try_collect::<Vec<_>>()
774-
.await?;
756+
if !path.is_dir() {
757+
return Ok(());
758+
}
759+
let mut read_dir = fs::read_dir(path).await?;
760+
let mut subdirs = vec![];
775761

776-
// Re-check the directory after deleting its subdirectories
777-
let mut read_dir = fs::read_dir(path).await?;
778-
if read_dir.next_entry().await?.is_none() {
779-
fs::remove_dir(path).await?;
780-
}
762+
while let Some(entry) = read_dir.next_entry().await? {
763+
let entry_path = entry.path();
764+
if entry_path.is_dir() {
765+
subdirs.push(entry_path);
781766
}
782-
Ok(())
783767
}
784-
delete_helper(path).await
768+
769+
let mut tasks = vec![];
770+
for subdir in &subdirs {
771+
tasks.push(delete_empty_directory_hot_tier(subdir));
772+
}
773+
futures::stream::iter(tasks)
774+
.buffer_unordered(10)
775+
.try_collect::<Vec<_>>()
776+
.await?;
777+
778+
// Re-check the directory after deleting its subdirectories
779+
let mut read_dir = fs::read_dir(path).await?;
780+
if read_dir.next_entry().await?.is_none() {
781+
fs::remove_dir(path).await?;
782+
}
783+
784+
Ok(())
785785
}
786786

787787
#[derive(Debug, thiserror::Error)]

0 commit comments

Comments
 (0)