mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-12-25 22:20:06 +01:00
Change the update loop to be more explicit on index clear
This commit is contained in:
parent
6d686ac14f
commit
1def56ea11
@ -55,7 +55,23 @@ fn update_awaiter(
|
|||||||
index: Index,
|
index: Index,
|
||||||
) -> MResult<()> {
|
) -> MResult<()> {
|
||||||
let mut receiver = receiver.into_iter();
|
let mut receiver = receiver.into_iter();
|
||||||
while let Some(UpdateEvent::NewUpdate) = receiver.next() {
|
while let Some(event) = receiver.next() {
|
||||||
|
|
||||||
|
// if we receive a *MustClear* event, clear the index and break the loop
|
||||||
|
if let UpdateEvent::MustClear = event {
|
||||||
|
let mut writer = env.typed_write_txn::<MainT>()?;
|
||||||
|
let mut update_writer = update_env.typed_write_txn::<UpdateT>()?;
|
||||||
|
|
||||||
|
store::clear(&mut writer, &mut update_writer, &index)?;
|
||||||
|
|
||||||
|
writer.commit()?;
|
||||||
|
update_writer.commit()?;
|
||||||
|
|
||||||
|
debug!("store {} cleared", index_uid);
|
||||||
|
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
// We instantiate a *write* transaction to *block* the thread
|
// We instantiate a *write* transaction to *block* the thread
|
||||||
// until the *other*, notifiying, thread commits
|
// until the *other*, notifiying, thread commits
|
||||||
@ -115,14 +131,6 @@ fn update_awaiter(
|
|||||||
|
|
||||||
debug!("update loop system stopped");
|
debug!("update loop system stopped");
|
||||||
|
|
||||||
let mut writer = env.typed_write_txn::<MainT>()?;
|
|
||||||
let mut update_writer = update_env.typed_write_txn::<UpdateT>()?;
|
|
||||||
store::clear(&mut writer, &mut update_writer, &index)?;
|
|
||||||
writer.commit()?;
|
|
||||||
update_writer.commit()?;
|
|
||||||
|
|
||||||
debug!("store {} cleared", index_uid);
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user