Parallelise.
This commit is contained in:
@@ -78,8 +78,18 @@ impl LibraryItemAdapter {
|
||||
|
||||
impl VideoPort for LibraryItemAdapter {
|
||||
fn list_root_folder(&self) -> Result<Vec<LibraryRawItem>, VideoError> {
|
||||
let file_system_items = self.get_root_folder_read_library_items()?;
|
||||
let db_items = self.get_all_library_items_from_db()
|
||||
let adapter1 = self.clone();
|
||||
let file_system_handle = std::thread::spawn(move || {
|
||||
adapter1.get_root_folder_read_library_items()
|
||||
});
|
||||
|
||||
let adapter2 = self.clone();
|
||||
let db_handle = std::thread::spawn(move || {
|
||||
adapter2.get_all_library_items_from_db()
|
||||
});
|
||||
|
||||
let file_system_items = file_system_handle.join().unwrap()?;
|
||||
let db_items = db_handle.join().unwrap()
|
||||
.map_err(|_| VideoError::FileReadingTechnicalIssue)?;
|
||||
|
||||
let merged = Self::merge_item_lists(file_system_items, db_items);
|
||||
|
||||
Reference in New Issue
Block a user