mirror of
https://github.com/Start9Labs/patch-db.git
synced 2026-03-26 02:11:54 +00:00
use general error for lock fn on handle
This commit is contained in:
committed by
Aiden McClelland
parent
afea35995d
commit
84cbed52c2
@@ -8,7 +8,7 @@ use serde_json::Value;
|
|||||||
use tokio::sync::broadcast::Receiver;
|
use tokio::sync::broadcast::Receiver;
|
||||||
use tokio::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard};
|
use tokio::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard};
|
||||||
|
|
||||||
use crate::locker::{Guard, LockError, LockType};
|
use crate::locker::{Guard, LockType};
|
||||||
use crate::patch::DiffPatch;
|
use crate::patch::DiffPatch;
|
||||||
use crate::{Error, Locker, PatchDb, Revision, Store, Transaction};
|
use crate::{Error, Locker, PatchDb, Revision, Store, Transaction};
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ pub trait DbHandle: Send + Sync {
|
|||||||
patch: DiffPatch,
|
patch: DiffPatch,
|
||||||
store_write_lock: Option<RwLockWriteGuard<'_, Store>>,
|
store_write_lock: Option<RwLockWriteGuard<'_, Store>>,
|
||||||
) -> Result<Option<Arc<Revision>>, Error>;
|
) -> Result<Option<Arc<Revision>>, Error>;
|
||||||
async fn lock(&mut self, ptr: JsonPointer, lock_type: LockType) -> Result<(), LockError>;
|
async fn lock(&mut self, ptr: JsonPointer, lock_type: LockType) -> Result<(), Error>;
|
||||||
async fn get<
|
async fn get<
|
||||||
T: for<'de> Deserialize<'de>,
|
T: for<'de> Deserialize<'de>,
|
||||||
S: AsRef<str> + Send + Sync,
|
S: AsRef<str> + Send + Sync,
|
||||||
@@ -154,7 +154,7 @@ impl<Handle: DbHandle + ?Sized> DbHandle for &mut Handle {
|
|||||||
) -> Result<Option<Arc<Revision>>, Error> {
|
) -> Result<Option<Arc<Revision>>, Error> {
|
||||||
(*self).apply(patch, store_write_lock).await
|
(*self).apply(patch, store_write_lock).await
|
||||||
}
|
}
|
||||||
async fn lock(&mut self, ptr: JsonPointer, lock_type: LockType) -> Result<(), LockError> {
|
async fn lock(&mut self, ptr: JsonPointer, lock_type: LockType) -> Result<(), Error> {
|
||||||
(*self).lock(ptr, lock_type).await
|
(*self).lock(ptr, lock_type).await
|
||||||
}
|
}
|
||||||
async fn get<
|
async fn get<
|
||||||
@@ -266,7 +266,7 @@ impl DbHandle for PatchDbHandle {
|
|||||||
) -> Result<Option<Arc<Revision>>, Error> {
|
) -> Result<Option<Arc<Revision>>, Error> {
|
||||||
self.db.apply(patch, None, store_write_lock).await
|
self.db.apply(patch, None, store_write_lock).await
|
||||||
}
|
}
|
||||||
async fn lock(&mut self, ptr: JsonPointer, lock_type: LockType) -> Result<(), LockError> {
|
async fn lock(&mut self, ptr: JsonPointer, lock_type: LockType) -> Result<(), Error> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.locks
|
.locks
|
||||||
.push(self.db.locker.lock(self.id.clone(), ptr, lock_type).await?))
|
.push(self.db.locker.lock(self.id.clone(), ptr, lock_type).await?))
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ use tokio::sync::broadcast::Receiver;
|
|||||||
use tokio::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard};
|
use tokio::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard};
|
||||||
|
|
||||||
use crate::handle::HandleId;
|
use crate::handle::HandleId;
|
||||||
use crate::locker::{Guard, LockError, LockType, Locker};
|
use crate::locker::{Guard, LockType, Locker};
|
||||||
use crate::patch::{DiffPatch, Revision};
|
use crate::patch::{DiffPatch, Revision};
|
||||||
use crate::store::Store;
|
use crate::store::Store;
|
||||||
use crate::{DbHandle, Error, PatchDbHandle};
|
use crate::{DbHandle, Error, PatchDbHandle};
|
||||||
@@ -165,7 +165,7 @@ impl<Parent: DbHandle + Send + Sync> DbHandle for Transaction<Parent> {
|
|||||||
self.updates.append(patch);
|
self.updates.append(patch);
|
||||||
Ok(None)
|
Ok(None)
|
||||||
}
|
}
|
||||||
async fn lock(&mut self, ptr: JsonPointer, lock_type: LockType) -> Result<(), LockError> {
|
async fn lock(&mut self, ptr: JsonPointer, lock_type: LockType) -> Result<(), Error> {
|
||||||
Ok(self.locks.push(
|
Ok(self.locks.push(
|
||||||
self.parent
|
self.parent
|
||||||
.locker()
|
.locker()
|
||||||
|
|||||||
Reference in New Issue
Block a user