@@ -46,7 +46,7 @@ pub fn search_impl(
4646 "Search implementation called with query: {}" ,
4747 query
4848 ) ;
49- let engine = state. lock ( ) . unwrap ( ) ;
49+ let engine = state. lock ( ) . map_err ( |_| "lock poisoned" ) ? ;
5050 engine. search ( & query)
5151}
5252
@@ -96,7 +96,7 @@ pub fn search_with_extension_impl(
9696 "Search with extension called: query='{}', extensions={:?}" ,
9797 query, extensions
9898 ) ;
99- let engine = state. lock ( ) . unwrap ( ) ;
99+ let engine = state. lock ( ) . map_err ( |_| "Failed to acquire lock on search engine state" ) ? ;
100100 engine. search_by_extension ( & query, extensions)
101101}
102102
@@ -173,7 +173,7 @@ pub fn add_paths_recursive_impl(
173173
174174 log_info ! ( "Starting optimized chunked indexing for path: {} with chunk size: {}" , folder, default_chunk_size) ;
175175
176- let engine_state = state. lock ( ) . unwrap ( ) ;
176+ let engine_state = state. lock ( ) . map_err ( |_| "Failed to acquire lock on search engine state" ) ? ;
177177 let result = engine_state. start_chunked_indexing ( path, default_chunk_size) ;
178178
179179 match & result {
@@ -212,7 +212,7 @@ pub fn add_path(
212212
213213pub fn add_path_impl ( path : String , state : Arc < Mutex < SearchEngineState > > ) -> Result < ( ) , String > {
214214 log_info ! ( "Add path called with: {}" , path) ;
215- let engine = state. lock ( ) . unwrap ( ) ;
215+ let engine = state. lock ( ) . map_err ( |_| "Failed to acquire lock on search engine state" ) ? ;
216216 engine. add_path ( & path)
217217}
218218
@@ -250,7 +250,7 @@ pub fn remove_paths_recursive_impl(
250250 "Remove paths recursive called with folder: {}" ,
251251 folder
252252 ) ;
253- let engine = state. lock ( ) . unwrap ( ) ;
253+ let engine = state. lock ( ) . map_err ( |_| "Failed to acquire lock on search engine state" ) ? ;
254254 engine. remove_paths_recursive ( & folder)
255255}
256256
@@ -282,7 +282,7 @@ pub fn remove_path(
282282
283283pub fn remove_path_impl ( path : String , state : Arc < Mutex < SearchEngineState > > ) -> Result < ( ) , String > {
284284 log_info ! ( "Remove path called with: {}" , path) ;
285- let engine = state. lock ( ) . unwrap ( ) ;
285+ let engine = state. lock ( ) . map_err ( |_| "Failed to acquire lock on search engine state" ) ? ;
286286 engine. remove_path ( & path)
287287}
288288
@@ -313,12 +313,12 @@ pub fn clear_search_engine(
313313pub fn clear_search_engine_impl ( state : Arc < Mutex < SearchEngineState > > ) -> Result < ( ) , String > {
314314 log_info ! ( "Clear search engine called" ) ;
315315
316- let state = state. lock ( ) . unwrap ( ) ;
317- let mut engine = state. engine . write ( ) . unwrap ( ) ;
316+ let state = state. lock ( ) . map_err ( |_| "Failed to acquire lock on search engine state" ) ? ;
317+ let mut engine = state. engine . write ( ) . map_err ( |_| "Failed to acquire write lock on search engine" ) ? ;
318318 engine. clear ( ) ;
319319
320320 // Update state
321- let mut data = state. data . lock ( ) . unwrap ( ) ;
321+ let mut data = state. data . lock ( ) . map_err ( |_| "Failed to acquire lock on search engine data" ) ? ;
322322 data. last_updated = chrono:: Utc :: now ( ) . timestamp_millis ( ) as u64 ;
323323
324324 Ok ( ( ) )
@@ -376,7 +376,7 @@ pub fn get_search_engine_info_impl(
376376 state : Arc < Mutex < SearchEngineState > > ,
377377) -> Result < SearchEngineInfo , String > {
378378 log_info ! ( "Get search engine info called" ) ;
379- let engine = state. lock ( ) . unwrap ( ) ;
379+ let engine = state. lock ( ) . map_err ( |_| "Failed to acquire lock on search engine state" ) ? ;
380380 Ok ( engine. get_search_engine_info ( ) )
381381}
382382
@@ -395,7 +395,7 @@ pub async fn get_indexing_progress(
395395 progress. files_indexed,
396396 progress. files_discovered,
397397 progress. percentage_complete,
398- progress. current_path. as_ref( ) . map ( |p| p. split( '/' ) . last( ) . unwrap_or( p ) ) ,
398+ progress. current_path. as_ref( ) . and_then ( |p| p. split( '/' ) . last( ) ) . unwrap_or( "" ) ,
399399 data. status
400400 ) ;
401401
@@ -756,11 +756,11 @@ pub fn get_suggestions_impl(
756756 return Ok ( Vec :: new ( ) ) ;
757757 }
758758
759- let search_engine_state = state. lock ( ) . unwrap ( ) ;
759+ let search_engine_state = state. lock ( ) . map_err ( |_| "Failed to acquire lock on search engine state" ) ? ;
760760
761761 // Check if search engine is enabled
762762 {
763- let data = search_engine_state. data . lock ( ) . unwrap ( ) ;
763+ let data = search_engine_state. data . lock ( ) . map_err ( |_| "Failed to acquire lock on search engine data" ) ? ;
764764 if !data. config . search_engine_enabled {
765765 log_error ! ( "Search engine is disabled in configuration." ) ;
766766 return Err ( "Search engine is disabled in configuration" . to_string ( ) ) ;
0 commit comments