Thread event to stop inactivity WD
This commit is contained in:
@ -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()
|
||||
|
||||
Reference in New Issue
Block a user