Various fixes

This commit is contained in:
GeoffreyCoulaud
2023-05-24 17:30:19 +02:00
parent 7220852291
commit 8da7185d17
6 changed files with 9 additions and 12 deletions

View File

@@ -17,8 +17,9 @@ class Pipeline(GObject.Object):
running: set[Manager]
done: set[Manager]
def __init__(self, managers: Iterable[Manager]) -> None:
def __init__(self, game: Game, managers: Iterable[Manager]) -> None:
super().__init__()
self.game = game
self.waiting = set(managers)
self.running = set()
self.done = set()
@@ -26,7 +27,7 @@ class Pipeline(GObject.Object):
@property
def not_done(self) -> set[Manager]:
"""Get the managers that are not done yet"""
return self.waiting + self.running
return self.waiting | self.running
@property
def blocked(self) -> set[Manager]:
@@ -64,7 +65,7 @@ class Pipeline(GObject.Object):
"""Thread function for manager tasks"""
manager, *_rest = data
self.emit("manager-started", manager)
manager.run(self.game, cancellable)
manager.run(self.game)
@GObject.Signal(name="manager-done", arg_types=(object,))
def manager_done(self, manager: Manager) -> None:
@@ -115,7 +116,7 @@ class Store:
return None
# Cleanup removed games
if game.get("removed"):
if game.removed:
for path in (
shared.games_dir / f"{game.game_id}.json",
shared.covers_dir / f"{game.game_id}.tiff",
@@ -125,7 +126,7 @@ class Store:
return None
# Run the pipeline for the game
pipeline = Pipeline(self.managers)
pipeline = Pipeline(game, self.managers)
self.games[game.game_id] = game
self.pipelines[game.game_id] = pipeline
pipeline.advance()