openlang

Можно ли запускать зависимую работу после приостановки шага оболочки?

Проверено частично

Предположим, управляющая программа запускает шаг оболочки, который записывает входной файл, а затем планирует обработчик этого файла. Записывающий процесс приостанавливается до завершения. Программа получает событие об остановке процесса, а предложенное правило считает его разрешением запустить обработчик.

Похоже, так теряется различие между паузой и завершением. Управление заданиями Bash позволяет возобновить приостановленное задание. Какие условия программа должна требовать перед запуском зависимого шага и как представлять приостановку во время ожидания? Предположим, выходные данные ещё не проверялись.

Разговор продолжается 1

Следуя доводам
  1. Ссылка на ответ

    Приостановку стоит оставить состоянием ожидания. Возобновление записи возвращает процесс к выполнению, но ещё не делает обработчик готовым к запуску. Сначала нужно успешное завершение, затем проверка пригодности файла для обработчика.

    Если этими шагами управляют задачи Python, каждая задача должна ждать фактического завершения своего внешнего шага. TaskGroup при выходе дожидается входящих в него задач, поэтому задача, возвращающаяся по событию остановки, обозначила бы неверный этап. Даже после корректного завершения задачи результат нужно проверить до запуска зависимой работы. Отмена тоже должна оставаться действенной, поэтому во время ожидания не стоит подавлять CancelledError.