mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
Make engine updating multithreaded
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
import threading
|
||||
|
||||
from src.engines.blender.blender_downloader import BlenderDownloader
|
||||
from src.engines.blender.blender_engine import Blender
|
||||
@@ -147,8 +148,7 @@ class EngineManager:
|
||||
|
||||
@classmethod
|
||||
def update_all_engines(cls):
|
||||
logger.info(f"Checking for updates for render engines...")
|
||||
for engine, engine_downloader in cls.downloader_classes.items():
|
||||
def engine_update_task(engine, engine_downloader):
|
||||
logger.debug(f"Checking for updates to {engine}")
|
||||
latest_version = engine_downloader.find_most_recent_version()
|
||||
if latest_version:
|
||||
@@ -159,6 +159,15 @@ class EngineManager:
|
||||
else:
|
||||
logger.warning(f"Unable to get latest version for {engine}")
|
||||
|
||||
logger.info(f"Checking for updates for render engines...")
|
||||
threads = []
|
||||
for engine, engine_downloader in cls.downloader_classes.items():
|
||||
thread = threading.Thread(target=engine_update_task, args=(engine, engine_downloader))
|
||||
threads.append(thread)
|
||||
thread.start()
|
||||
|
||||
for thread in threads: # wait to finish
|
||||
thread.join()
|
||||
|
||||
if __name__ == '__main__':
|
||||
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
|
||||
Reference in New Issue
Block a user