Deadlock fixes (#85)

* fixed deadlock

* added missing files to commit

* clippy & dist
This commit is contained in:
Wyatt Verchere
2023-04-17 16:07:09 -07:00
committed by GitHub
parent 19a4aa6689
commit 63d2785b2f
6 changed files with 22 additions and 16 deletions

View File

@@ -89,19 +89,23 @@ pub async fn list() -> crate::Result<std::collections::HashMap<PathBuf, Profile>
#[tracing::instrument]
pub async fn sync(path: &Path) -> crate::Result<()> {
let state = State::get().await?;
let mut profiles = state.profiles.write().await;
let result = {
let mut profiles: tokio::sync::RwLockWriteGuard<
crate::state::Profiles,
> = state.profiles.write().await;
if let Some(profile) = profiles.0.get_mut(path) {
profile.sync().await?;
State::sync().await?;
Ok(())
} else {
Err(
crate::ErrorKind::UnmanagedProfileError(path.display().to_string())
.as_error(),
)
}
if let Some(profile) = profiles.0.get_mut(path) {
profile.sync().await?;
Ok(())
} else {
Err(crate::ErrorKind::UnmanagedProfileError(
path.display().to_string(),
)
.as_error())
}
};
State::sync().await?;
result
}
/// Add a project from a version