Автозапускаемые программы (NTF)

Периодически, раз в 10 секунд, система сканирует программные файлы с расширением ".ntf" по путям, перечисленным в клиентском red-файле проекта. Если будет найдена новая NTF-программа, она будет запущена и отработает один раз. Далее система запомнит, что NTF-программа с таким именем и временем последней модификации уже отработала, чтобы больше не запускать ее. Если на очередном сканировании NTF-программа с запомненным именем исчезнет, система забудет о ней; когда впоследствии программа появится снова, она будет выполнена. Если же обнаружится, что у запомненной NTF-программы изменилось время последней модификации файла, система сочтет, что старая программа была удалена, а новая появилась, следовательно, новую надо выполнить.

Если на очередном сканировании обнаружится, что NTF-файл удален или изменился, а соответствующая программа еще выполняется, программу необходимо прервать. Для этого система будет выброшено исключение 301 класса Exc_TermByUser - подобно прерыванию ASL-программы кнопкой Esc. Правила выброса и обработки исключений класса Exc_TermByUser для NTF-программ те же, что для ASL. В частности, в режиме TERM_BY_USER_IGNORE исключение 301 не выбрасывается, т.е. блок кода NTF-программы можно защитить от прерывания.

С периодичностью один раз в 10 секунд либо запускается одна новая NTF-программа, либо прерывается измененная/удаленная программа. Т.е. если в какой-то момент времени обнаруживается сразу несколько новых NTF-программ, то стартовать они будут с периодичностью 10 секунд, причем порядок их старта неизвестен. NTF-программы могут стартовать во время выполнения другой NTF-программы также, как и при выполнении любого другого процесса.

Ниже перечислены некоторые особенности выполнения NTF-программ.