Python зависание катушки после закрытия крышки MacBook - PullRequest
1 голос
/ 05 августа 2020

При использовании concurrent.futures.ThreadPoolExecutor я получаю тихую ошибку, когда существующий пул потоков не перезапускается (Python 3.6.5, macOS 10.15.4). Пример, похожий на мой вариант использования:

from concurrent.futures import ThreadPoolExecutor
import requests
import time

def child_process(url):
   response = requests.get(url)
   time.sleep(2)
   return response.text


def main():
   counter = 0
   with ThreadPoolExecutor(10) as pool:
      while True:
         args = ['https://www.google.com' for _ in range(10)]
         results = pool.map(child_process, args)
         [i for i in results]
         counter += 1
         print(f'{counter}')

if __name__ == '__main__':
   main()

производит:

1
2
3
4
5
6
7
8
9
10
11
12

, где программа теперь зависает на 12 после закрытия крышки моего MacBook (при условии, что он находится в спящем или состояние энергосбережения) и повторное открытие.

Кто-нибудь еще сталкивался с этой проблемой? Есть ли способ обеспечить безопасный перезапуск программы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...