Имею я код игры для телеграм бота, создаётся таймер 60 секунд, для одной комнаты он создаётся нормально и работает, но когда создаются две комнаты, тобиж начинают работать два потока, таймер продолжается но бот останавливается и бот не реагирует на сообщения пользователей. Хочу исправить, чтобы таймер шёл независимо, чтобы можно было делать более 2 потоков не пересекающихся (Простите если не так говорю, я в потоках почти 0)
g_time = 0
pl_room_id = room_num
ng_threadadd(pl_room_id, g_time, host_id, player_id)
def ng_threadadd(pl_room_id, g_time, host_id, player_id):
event = threading.Event()
thread = threading.Thread(target=ng_everysectimer, args=(event,pl_room_id,g_time,host_id,player_id,))
thread.start()
while not event.isSet():
try:
logging.debug("Добавление из главного потока")
event.wait(0.75)
thread.join()
except KeyboardInterrupt:
event.set()
break
def ng_everysectimer(event, pl_room_id, g_time, host_id, player_id):
while not event.isSet():
connection = sqlite3.connect('database.db')
cursor = connection.cursor()
cursor.execute(f'SELECT game_ended FROM users WHERE user_id = {pl_room_id};')
boolgameend = cursor.fetchone()[0]
if str(pl_room_id) in games and host_id != 0 and player_id != 0 and boolgameend == 0:
if not g_time >= 60:
event.wait(1)
g_time = g_time + 1
else:
gameended(host_id, player_id, pl_room_id)
event.set()
break
elif boolgameend == 1:
event.set()
break
else:
event.set()
break