makes the updates getters smoother to uses

This commit is contained in:
Tamo 2022-09-07 20:44:33 +02:00 committed by Clément Renault
parent 7879189c6b
commit 72b2e68de4
No known key found for this signature in database
GPG Key ID: 92ADA4E935E71FA4
2 changed files with 17 additions and 26 deletions

View File

@ -169,21 +169,16 @@ impl IndexScheduler {
if let Some(indexes) = task.indexes() {
for index in indexes {
self.update_index(&mut wtxn, index, |mut bitmap| {
bitmap.insert(task_id);
bitmap
})?;
self.update_index(&mut wtxn, index, |bitmap| drop(bitmap.insert(task_id)))?;
}
}
self.update_status(&mut wtxn, Status::Enqueued, |mut bitmap| {
self.update_status(&mut wtxn, Status::Enqueued, |bitmap| {
bitmap.insert(task_id);
bitmap
})?;
self.update_kind(&mut wtxn, task.kind.as_kind(), |mut bitmap| {
bitmap.insert(task_id);
bitmap
self.update_kind(&mut wtxn, task.kind.as_kind(), |bitmap| {
(bitmap.insert(task_id));
})?;
// we persist the file in last to be sure everything before was applied successfuly

View File

@ -50,24 +50,20 @@ impl IndexScheduler {
.ok_or(Error::CorruptedTaskQueue)?;
if old_task.status != task.status {
self.update_status(wtxn, old_task.status, |mut bitmap| {
self.update_status(wtxn, old_task.status, |bitmap| {
bitmap.remove(task.uid);
bitmap
})?;
self.update_status(wtxn, task.status, |mut bitmap| {
self.update_status(wtxn, task.status, |bitmap| {
bitmap.insert(task.uid);
bitmap
})?;
}
if old_task.kind.as_kind() != task.kind.as_kind() {
self.update_kind(wtxn, old_task.kind.as_kind(), |mut bitmap| {
self.update_kind(wtxn, old_task.kind.as_kind(), |bitmap| {
bitmap.remove(task.uid);
bitmap
})?;
self.update_kind(wtxn, task.kind.as_kind(), |mut bitmap| {
self.update_kind(wtxn, task.kind.as_kind(), |bitmap| {
bitmap.insert(task.uid);
bitmap
})?;
}
@ -91,10 +87,10 @@ impl IndexScheduler {
&self,
wtxn: &mut RwTxn,
index: &str,
f: impl Fn(RoaringBitmap) -> RoaringBitmap,
f: impl Fn(&mut RoaringBitmap),
) -> Result<()> {
let tasks = self.get_index(&wtxn, index)?;
let tasks = f(tasks);
let mut tasks = self.get_index(&wtxn, index)?;
f(&mut tasks);
self.put_index(wtxn, index, &tasks)?;
Ok(())
@ -117,10 +113,10 @@ impl IndexScheduler {
&self,
wtxn: &mut RwTxn,
status: Status,
f: impl Fn(RoaringBitmap) -> RoaringBitmap,
f: impl Fn(&mut RoaringBitmap),
) -> Result<()> {
let tasks = self.get_status(&wtxn, status)?;
let tasks = f(tasks);
let mut tasks = self.get_status(&wtxn, status)?;
f(&mut tasks);
self.put_status(wtxn, status, &tasks)?;
Ok(())
@ -143,10 +139,10 @@ impl IndexScheduler {
&self,
wtxn: &mut RwTxn,
kind: Kind,
f: impl Fn(RoaringBitmap) -> RoaringBitmap,
f: impl Fn(&mut RoaringBitmap),
) -> Result<()> {
let tasks = self.get_kind(&wtxn, kind)?;
let tasks = f(tasks);
let mut tasks = self.get_kind(&wtxn, kind)?;
f(&mut tasks);
self.put_kind(wtxn, kind, &tasks)?;
Ok(())