Состояние энергосбережения Mac - в каком состоянии все еще запущен существующий процесс, но не может запустить новый процесс? - PullRequest
0 голосов
/ 29 апреля 2019

Я создал очень простой тест, который запускает и закрывает программное обеспечение, которое я тестировал, используя платформу тестирования Python Nose, чтобы отследить ошибку в последовательности запуска программного обеспечения, над которым я работал.

Тест был настроен так, чтобы он запускался и закрывался примерно 1500 раз в режиме одиночного выполнения.

Несколько часов спустя я обнаружил, что тест не смог запустить программное обеспечение после 300 итераций. Время истекло, ожидая начала процесса. Как только я снова вошел в систему, тест запустил процесс без проблем, и все тесты также прошли успешно.

Это довольно загадочно для меня. Я никогда не видел такого поведения. Этого никогда не случалось и в Windows.

Мне интересно, существует ли какое-то состояние энергосбережения, когда Mac ожидал завершения текущего запущенного процесса и запрещает запуск нового процесса.

Буду очень признателен, если кто-нибудь сможет пролить свет на эту путаницу.

Я работал на Python 2.7.x в High Sierra.

1 Ответ

0 голосов
/ 29 апреля 2019

Мне не известно ни о каком состоянии, когда система полностью отказывается от новых процессов, в то время как старые все еще работают.

Однако я легко могу представить ситуацию, в которой процесс может зависнуть из-за некоторой неожиданной зависимости, например, от оконный сервер. Например, я однажды заметил, что в rsvg-convert, конвертере SVG-в-образ командной строки, работающем в сеансе SSH, были доступны разные шрифты в зависимости от того, одновременно ли я вошел в систему на консоли. Это поведение исчезло, когда я перекомпилировал библиотеки SVG, чтобы исключить все ссылки на определенные библиотеки macOS ...

...