Python asyncio - выход из цикла с заданием был уничтожен, но ожидается
Это соответствующий код моей программы на Python:
import discord
import asyncio
class Bot(discord.Client):
def __init__(self):
super().__init__()
@asyncio.coroutine
def my_background_task(self):
yield from self.wait_until_ready()
while not self.is_closed:
yield from asyncio.sleep(3600*24) # <- This is line 76 where it fails
doSomething()
bot = Bot()
loop = asyncio.get_event_loop()
try:
loop.create_task(bot.my_background_task())
loop.run_until_complete(bot.login('username', 'password'))
loop.run_until_complete(bot.connect())
except Exception:
loop.run_until_complete(bot.close())
finally:
loop.close()
Программа иногда завершает работу (сама по себе, хотя не должна) без каких-либо других ошибок или предупреждений, кроме
Task was destroyed but it is pending!
task: <Task pending coro=<my_background_task() running at bin/discordBot.py:76> wait_for=<Future pending cb=[Task._wakeup()]>>
Как убедиться, что программа не выйдет случайно? У меня есть Python 3.4.3+ на Xubuntu 15.10.