Thread event to stop inactivity WD

This commit is contained in:
Eden Kirin
2023-05-11 20:01:33 +02:00
parent 78c3286c17
commit b56071e2c7

View File

@ -2,7 +2,7 @@ import asyncio
import datetime
import logging
import time
from threading import Thread
from threading import Thread, Event
from hopper.models.player import PlayerList
from hopper.ws_server import WSServer
@ -15,13 +15,14 @@ class InactivityWatchdog(Thread):
) -> None:
self.players = players
self.ws_server = ws_server
self.stopped = False
self.stop_event = Event()
super().__init__(daemon=True)
def run(self) -> None:
logging.info("Starting inactivity watchdog")
while not self.stopped:
while not self.stop_event.is_set():
self.cleanup_players()
if not self.stop_event.is_set():
time.sleep(settings.inacivity_watchdog.TICK_INTERVAL)
def cleanup_players(self) -> None:
@ -64,4 +65,4 @@ class InactivityWatchdog(Thread):
asyncio.run(self.ws_server.send_game_dump())
def stop(self) -> None:
self.stopped = True
self.stop_event.set()