forked from Deuxfleurs/garage
Optim & refactor
This commit is contained in:
parent
831eb35763
commit
9b118160a8
1 changed files with 11 additions and 8 deletions
|
@ -116,10 +116,7 @@ where
|
|||
}
|
||||
|
||||
for (k, vhash) in excluded {
|
||||
let _ = self
|
||||
.data
|
||||
.gc_todo
|
||||
.compare_and_swap::<_, _, Vec<u8>>(k, Some(vhash), None)?;
|
||||
self.todo_remove_if_equal(&k[..], vhash)?;
|
||||
}
|
||||
|
||||
if entries.len() == 0 {
|
||||
|
@ -197,15 +194,20 @@ where
|
|||
|
||||
for (k, vhash) in deletes {
|
||||
self.data.delete_if_equal_hash(&k[..], vhash)?;
|
||||
let _ = self
|
||||
.data
|
||||
.gc_todo
|
||||
.compare_and_swap::<_, _, Vec<u8>>(k, Some(vhash), None)?;
|
||||
self.todo_remove_if_equal(&k[..], vhash)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn todo_remove_if_equal(&self, key: &[u8], vhash: Hash) -> Result<(), Error> {
|
||||
let _ = self
|
||||
.data
|
||||
.gc_todo
|
||||
.compare_and_swap::<_, _, Vec<u8>>(key, Some(vhash), None)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
// ---- RPC HANDLER ----
|
||||
|
||||
fn register_handler(self: &Arc<Self>, rpc_server: &mut RpcServer, path: String) {
|
||||
|
@ -232,6 +234,7 @@ where
|
|||
GcRPC::DeleteIfEqualHash(items) => {
|
||||
for (key, vhash) in items.iter() {
|
||||
self.data.delete_if_equal_hash(&key[..], *vhash)?;
|
||||
self.todo_remove_if_equal(&key[..], *vhash)?;
|
||||
}
|
||||
Ok(GcRPC::Ok)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue