У меня есть скрипт tcl (myscript.tcl), который имеет цикл while {1}
, который вызывается (выполняется) через другой скрипт tcl (test.tcl). и если myscript.tcl застрял из-за цикла while, то как можно завершить использование test.tcl после определенного периода времени (например, 10 секунд)TCL Как закончить бесконечный цикл
1
A
ответ
2
Если вы запустили скрипт myscript.tcl
в подчиненном интерпретаторе, вы можете установить ограничение по времени выполнение с помощью interp limit
, чтобы ребенок-переводчик не мог продолжать вечно; когда предел достигнут, генерируется ошибка, которая пузырится на внешний управляющий интерпретатор. Мы явно проверяем, может ли код, поддерживающий лимиты, выйти из бесконечных циклов.
set helper [interp create]
# You might need to do some more setup here; do that before setting up the limit
interp limit $helper time -seconds [expr {[clock seconds] + 10}]
catch {interp eval $helper [list source myscript.tcl]}
Смежные вопросы
- 1. Как закончить бесконечный цикл
- 2. Как закончить этот бесконечный цикл
- 3. TCL: из стека (бесконечный цикл?)
- 4. Как закончить бесконечный цикл «изменения» в VBA
- 5. Python Как закончить бесконечный цикл после 3 попыток
- 6. Как закончить бесконечный цикл while через setTimeout в Javascript
- 7. Как закончить бесконечный поток akka
- 8. Бесконечный цикл C, бесконечный цикл
- 9. Как закончить мой цикл?
- 10. Как закончить цикл while?
- 11. Как закончить цикл?
- 12. Как закончить цикл/нить
- 13. Как закончить цикл while?
- 14. Как закончить вложенный цикл?
- 15. Как закончить этот цикл?
- 16. Как это бесконечный цикл?
- 17. Как реализовать бесконечный цикл
- 18. Как преодолеть бесконечный цикл?
- 19. Как заменить бесконечный цикл?
- 20. Как остановить бесконечный цикл?
- 21. Как устранить бесконечный цикл
- 22. Как для (;;) бесконечный цикл?
- 23. Как запустить бесконечный цикл?
- 24. Бесконечный цикл
- 25. Как закончить цикл while правильно?
- 26. Как закончить цикл в Python?
- 27. Как закончить цикл do while?
- 28. Как обнаружить бесконечный цикл в рекурсивном вызове?
- 29. QThread: как остановить бесконечный цикл
- 30. Как остановить бесконечный цикл программно?
Когда вы говорите, что он вызывается через другой скрипт tcl, вы имеете в виду через 'exec' или вызываете процедуру? – Dinesh
Улучшенный подход может выполнять валидацию в самом подчиненном устройстве и возвращать результат для управления, чтобы с ним можно было безопасно играть. – Dinesh
Вызывается через другой скрипт tcl через источник myscript.tcl –