|
@@ -51,14 +51,12 @@ class ChessSession:
|
|
|
self.board.push(chess.Move.null())
|
|
|
self.move_ts = time.time()
|
|
|
|
|
|
- async def end(self):
|
|
|
- await self.engine.quit()
|
|
|
-
|
|
|
|
|
|
class ChessManager:
|
|
|
def __init__(self, engine_path):
|
|
|
self.engine_path = engine_path
|
|
|
|
|
|
+ self.engine = None
|
|
|
self.sessions = {}
|
|
|
|
|
|
async def cleanup(self):
|
|
@@ -75,9 +73,10 @@ class ChessManager:
|
|
|
if id in self.sessions:
|
|
|
await self.end(id)
|
|
|
|
|
|
- _, engine = await chess.engine.popen_uci(self.engine_path)
|
|
|
+ if not self.engine:
|
|
|
+ _, self.engine = await chess.engine.popen_uci(self.engine_path)
|
|
|
|
|
|
- self.sessions[id] = ChessSession(engine)
|
|
|
+ self.sessions[id] = ChessSession(self.engine)
|
|
|
|
|
|
async def end(self, id):
|
|
|
session = self.sessions.get(id)
|
|
@@ -86,8 +85,6 @@ class ChessManager:
|
|
|
|
|
|
del self.sessions[id]
|
|
|
|
|
|
- await session.end()
|
|
|
-
|
|
|
return True
|
|
|
|
|
|
async def move(self, id, move=None):
|