diff --git a/server/src/search.rs b/server/src/search.rs index ccf11dd..3180134 100644 --- a/server/src/search.rs +++ b/server/src/search.rs @@ -69,7 +69,7 @@ impl MemoryIndex { type_field => "entity", namespace_field => e.namespace.clone() ); - let writer = writer.lock().unwrap(); + let writer = writer.lock().unwrap_or_else(|e| e.into_inner()); writer.add_document(doc)?; Ok(()) }) @@ -92,7 +92,7 @@ impl MemoryIndex { type_field => "task", namespace_field => "global" ); - let writer = writer.lock().unwrap(); + let writer = writer.lock().unwrap_or_else(|e| e.into_inner()); writer.add_document(doc)?; Ok(()) }) @@ -101,7 +101,7 @@ impl MemoryIndex { pub async fn commit(&self) -> tantivy::Result<()> { let writer = Arc::clone(&self.writer); tokio::task::spawn_blocking(move || { - let mut writer = writer.lock().unwrap(); + let mut writer = writer.lock().unwrap_or_else(|e| e.into_inner()); writer.commit()?; Ok(()) }) @@ -184,7 +184,7 @@ impl MemoryIndex { type_field => "snippet", namespace_field => "global" ); - let writer = writer.lock().unwrap(); + let writer = writer.lock().unwrap_or_else(|e| e.into_inner()); writer.add_document(doc)?; Ok(()) }) @@ -207,7 +207,7 @@ impl MemoryIndex { type_field => "adr", namespace_field => "global" ); - let writer = writer.lock().unwrap(); + let writer = writer.lock().unwrap_or_else(|e| e.into_inner()); writer.add_document(doc)?; Ok(()) }) @@ -228,7 +228,7 @@ impl MemoryIndex { let namespace_field = self.namespace_field; tokio::task::spawn_blocking(move || { - let writer = writer.lock().unwrap(); + let writer = writer.lock().unwrap_or_else(|e| e.into_inner()); for e in entities { writer.add_document(doc!(