Remove asyncio.Event creation from module level in Audio (#2454)

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
This commit is contained in:
Toby Harradine 2019-02-15 14:27:01 +11:00 committed by GitHub
parent 9b940de854
commit 7ecdf7a7be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -13,7 +13,7 @@ _JavaVersion = Tuple[int, int]
log = logging.getLogger("red.audio.manager") log = logging.getLogger("red.audio.manager")
proc = None proc = None
SHUTDOWN = asyncio.Event() shutdown = False
def has_java_error(pid): def has_java_error(pid):
@ -24,13 +24,16 @@ def has_java_error(pid):
async def monitor_lavalink_server(loop): async def monitor_lavalink_server(loop):
while not SHUTDOWN.is_set(): global shutdown
while shutdown is False:
if proc.poll() is not None: if proc.poll() is not None:
break break
await asyncio.sleep(0.5) await asyncio.sleep(0.5)
if not SHUTDOWN.is_set(): if shutdown is False:
# Lavalink was shut down by something else
log.info("Lavalink jar shutdown.") log.info("Lavalink jar shutdown.")
shutdown = True
if not has_java_error(proc.pid): if not has_java_error(proc.pid):
log.info("Restarting Lavalink jar.") log.info("Restarting Lavalink jar.")
await start_lavalink_server(loop) await start_lavalink_server(loop)
@ -116,13 +119,16 @@ async def start_lavalink_server(loop):
) )
log.info("Lavalink jar started. PID: {}".format(proc.pid)) log.info("Lavalink jar started. PID: {}".format(proc.pid))
global shutdown
shutdown = False
loop.create_task(monitor_lavalink_server(loop)) loop.create_task(monitor_lavalink_server(loop))
def shutdown_lavalink_server(): def shutdown_lavalink_server():
log.info("Shutting down lavalink server.") log.info("Shutting down lavalink server.")
SHUTDOWN.set() global shutdown
shutdown = True
global proc global proc
if proc is not None: if proc is not None:
proc.terminate() proc.terminate()