python multiprocessing программа преждевременно заканчивает свою работу

Создаю процесс для запуска бота следующим способом:

from multiprocessing import Process
if __name__ == '__main__':
    token = ''
    logger.info(f'Create new process for bot, token: {token }')
    p = Process(target=create_bot, args=(token,))
    p.start()

В версии питона 3.6.9 программа почему-то сразу закрывается (после создания процесса с ботом).

А в версии питона Python 3.8.2 все хорошо, бот работает и обрабатывает сообщения.

Код функции создания бота:

def create_bot(token):
    """Start the bot."""
    updater = Updater(token, use_context=True)
    dp = updater.dispatcher
    dp.add_handler(MessageHandler(Filters.text))
    updater.start_polling(clean=True)

Как сделать, чтобы на версии 3.6.9 процесс сразу не закрывался? Я также заметил, что если в версии 3.6.9 добавить бесконечный цикл в create_bot, то процесс не закрывается и все работает как задумано, но это наверное не очень красивое решение:

def create_bot(token):
        """Start the bot."""
        updater = Updater(token, use_context=True)
        dp = updater.dispatcher
        dp.add_handler(MessageHandler(Filters.text))
        updater.start_polling(clean=True)
        while True:
            pass

Ответы (1 шт):

Автор решения: Hyppoprogramm

Убери while и добавь это:

p.wait()

wait заставит программу дождаться завершения процесса.

→ Ссылка