From b834e3d469977827a4e1b46cfa5d4b2c54b9af76 Mon Sep 17 00:00:00 2001 From: Karthik Nadig Date: Mon, 6 Apr 2026 10:18:54 -0700 Subject: [PATCH] fix: use atomic counter in pet-pipenv test temp dirs to prevent parallel collisions --- crates/pet-pipenv/src/lib.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/pet-pipenv/src/lib.rs b/crates/pet-pipenv/src/lib.rs index 12ceb192..0081672b 100644 --- a/crates/pet-pipenv/src/lib.rs +++ b/crates/pet-pipenv/src/lib.rs @@ -495,15 +495,15 @@ impl Locator for PipEnv { #[cfg(test)] mod tests { use super::*; - use std::time::{SystemTime, UNIX_EPOCH}; + use std::sync::atomic::{AtomicU64, Ordering}; + + static TEST_DIR_COUNTER: AtomicU64 = AtomicU64::new(0); fn unique_temp_dir() -> PathBuf { let mut dir = std::env::temp_dir(); - let nanos = SystemTime::now() - .duration_since(UNIX_EPOCH) - .unwrap() - .as_nanos(); - dir.push(format!("pet_pipenv_test_{}", nanos)); + let id = std::process::id(); + let counter = TEST_DIR_COUNTER.fetch_add(1, Ordering::Relaxed); + dir.push(format!("pet_pipenv_test_{}_{}", id, counter)); dir }