mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-05 04:28:55 +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,
|
||||
) -> MResult<()> {
|
||||
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 {
|
||||
// We instantiate a *write* transaction to *block* the thread
|
||||
// until the *other*, notifiying, thread commits
|
||||
@ -115,14 +131,6 @@ fn update_awaiter(
|
||||
|
||||
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(())
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user