Skip to content

Commit fb7e22d

Browse files
committed
Refactor symlink handling in CacheEntryImpl to improve thread safety and clarity
1 parent 4b67cdd commit fb7e22d

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

crates/pet-python-utils/src/cache.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,11 @@ impl CacheEntry for CacheEntryImpl {
153153
}
154154

155155
if let Some(ref cache_directory) = self.cache_directory {
156-
let (env, symlinks) = get_cache_from_file(cache_directory, &self.executable)?;
156+
let (env, mut symlinks) = get_cache_from_file(cache_directory, &self.executable)?;
157157
self.envoronment.lock().unwrap().replace(env.clone());
158-
self.symlinks.lock().unwrap().clear();
159-
self.symlinks.lock().unwrap().append(&mut symlinks.clone());
158+
let mut locked_symlinks = self.symlinks.lock().unwrap();
159+
locked_symlinks.clear();
160+
locked_symlinks.append(&mut symlinks);
160161
Some(env)
161162
} else {
162163
None
@@ -180,8 +181,11 @@ impl CacheEntry for CacheEntryImpl {
180181
symlinks.sort();
181182
symlinks.dedup();
182183

183-
self.symlinks.lock().unwrap().clear();
184-
self.symlinks.lock().unwrap().append(&mut symlinks.clone());
184+
{
185+
let mut locked_symlinks = self.symlinks.lock().unwrap();
186+
locked_symlinks.clear();
187+
locked_symlinks.append(&mut symlinks.clone());
188+
}
185189
self.envoronment
186190
.lock()
187191
.unwrap()

0 commit comments

Comments
 (0)