Проблема заключается в том, что команда aws ecr get-login извлекает токен, действительный для указанного реестра в течение 12 часов, а затем печатает команду входа в Docker с этим токеном авторизации, и мы не выполняем полученную нами команду назад.
Нам нужно выполнить эту напечатанную команду, чтобы войти в ваш реестр с помощью Docker. В моем случае я использую eval для выполнения напечатанной команды, которую я получаю из aws ecr get-login, например:
eval $ (aws ecr get-login --region eu-west-1 - -профиль)
У меня комбинированное решение. Используйте WaitForSingleObject (), чтобы определить, приостановлен поток или нет.
Если он не приостановлен, счетчик приостановки, очевидно, равен 0.
Если он приостановлен, можно безопасно вызвать SuspendThread () для получения счетчика приостановки. Поскольку он уже приостановлен, вы ничего не остановите.
Возможно, с помощью WaitForSingleObject вы можете проверить, приостановлен ли поток, но не можете получить счетчик приостановки.
Вы никогда не должны приостанавливать работу какого-либо потока ни на какой платформе.
Вы вместо этого следует добавить точки синхронизации в ваш потоковый код, который явно ожидает, пока флаг станет сигнальным, прежде чем ему будет разрешено продолжить. Таким образом, вы знаете , где он будет приостановлен, или, по крайней мере, знаете, что он будет приостановлен в безопасных точках.
Следующие операции с потоками должны быть полностью запрещены на любой платформе для любого программиста:
Никогда и никогда не следует принудительно навязывать свою волю извне на поток . У вас нет гарантии, что он делает, какие ресурсы он в настоящее время блокирует.
Всегда пишите потоки в кооперативном режиме. Ваш поток должен осознавать свое окружение и уступать желаниям внешнего мира либо выйти упорядоченным образом, либо приостановиться, пока не сможет безопасно продолжить.
Даже если поток активен, вы все равно получите результат WAIT_TIMEOUT, потому что потоки сигнализируют только о завершении, а не о завершении. повторно запущен.
Это говорит о WaitForSingleObject (hThread,