Parallelise.
This commit is contained in:
@@ -78,8 +78,18 @@ impl LibraryItemAdapter {
|
|||||||
|
|
||||||
impl VideoPort for LibraryItemAdapter {
|
impl VideoPort for LibraryItemAdapter {
|
||||||
fn list_root_folder(&self) -> Result<Vec<LibraryRawItem>, VideoError> {
|
fn list_root_folder(&self) -> Result<Vec<LibraryRawItem>, VideoError> {
|
||||||
let file_system_items = self.get_root_folder_read_library_items()?;
|
let adapter1 = self.clone();
|
||||||
let db_items = self.get_all_library_items_from_db()
|
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)?;
|
.map_err(|_| VideoError::FileReadingTechnicalIssue)?;
|
||||||
|
|
||||||
let merged = Self::merge_item_lists(file_system_items, db_items);
|
let merged = Self::merge_item_lists(file_system_items, db_items);
|
||||||
|
|||||||
Reference in New Issue
Block a user