mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-09-18 10:04:55 +08:00
fix(release): 修复发布一致性与并发边界
This commit is contained in:
@@ -30,6 +30,21 @@ impl FileSystemCasRepository {
|
||||
self.engine().await.map(|_| ())
|
||||
}
|
||||
|
||||
/// Releases one release-owned CAS reference exactly once.
|
||||
pub async fn release_reference_once(
|
||||
&self,
|
||||
release_id: &str,
|
||||
ordinal: u64,
|
||||
id: &ObjectId,
|
||||
) -> bat_core::Result<bool> {
|
||||
let hash = Self::parse_object_id(id)?;
|
||||
self.engine()
|
||||
.await?
|
||||
.release_reference_once(release_id, ordinal, &hash)
|
||||
.await
|
||||
.map_err(Self::map_error)
|
||||
}
|
||||
|
||||
async fn engine(&self) -> bat_core::Result<&engine_repository::FileSystemCasRepository> {
|
||||
self.inner
|
||||
.get_or_try_init(|| async {
|
||||
|
||||
Reference in New Issue
Block a user