use general error for lock fn on handle

This commit is contained in:
Aiden McClelland
2021-12-16 12:23:29 -07:00
committed by Aiden McClelland
parent afea35995d
commit 84cbed52c2
2 changed files with 6 additions and 6 deletions

View File

@@ -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?))

View File

@@ -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()