mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 04:01:32 -06:00
Core: explicitly limit threadpool (#2334)
This commit is contained in:
11
Main.py
11
Main.py
@@ -301,15 +301,16 @@ def main(args, seed=None, baked_server_options: Optional[Dict[str, object]] = No
|
|||||||
|
|
||||||
output = tempfile.TemporaryDirectory()
|
output = tempfile.TemporaryDirectory()
|
||||||
with output as temp_dir:
|
with output as temp_dir:
|
||||||
with concurrent.futures.ThreadPoolExecutor(world.players + 2) as pool:
|
output_players = [player for player in world.player_ids if AutoWorld.World.generate_output.__code__
|
||||||
|
is not world.worlds[player].generate_output.__code__]
|
||||||
|
with concurrent.futures.ThreadPoolExecutor(len(output_players) + 2) as pool:
|
||||||
check_accessibility_task = pool.submit(world.fulfills_accessibility)
|
check_accessibility_task = pool.submit(world.fulfills_accessibility)
|
||||||
|
|
||||||
output_file_futures = [pool.submit(AutoWorld.call_stage, world, "generate_output", temp_dir)]
|
output_file_futures = [pool.submit(AutoWorld.call_stage, world, "generate_output", temp_dir)]
|
||||||
for player in world.player_ids:
|
for player in output_players:
|
||||||
# skip starting a thread for methods that say "pass".
|
# skip starting a thread for methods that say "pass".
|
||||||
if AutoWorld.World.generate_output.__code__ is not world.worlds[player].generate_output.__code__:
|
output_file_futures.append(
|
||||||
output_file_futures.append(
|
pool.submit(AutoWorld.call_single, world, "generate_output", player, temp_dir))
|
||||||
pool.submit(AutoWorld.call_single, world, "generate_output", player, temp_dir))
|
|
||||||
|
|
||||||
# collect ER hint info
|
# collect ER hint info
|
||||||
er_hint_data: Dict[int, Dict[int, str]] = {}
|
er_hint_data: Dict[int, Dict[int, str]] = {}
|
||||||
|
Reference in New Issue
Block a user