fk0, легенда (01.12.2018 14:23, просмотров: 614) ответил SciFi на Обожаю Main Loop, жить без него не могу. Захотелось прикрутить интерпретатор тикля, а там весь скрипт исполняется разом, в главный цикл выходит только в конце. Что делать? Только не RTOS! Прикрутил простейшую переключалку потока на setjmp/longjmp,
Ты что-то не то говоришь. В тикле там свой встроенный цикл обработки событий, либо можно свой написать вместо него, смотря как удобнее. Скрипт естественно махом исполняется за раз. Поэтому либо должен быть нашпигован командами after (vwait, блокирующий read наконец, или gets...), либо скрипт должен считываться с stdin (где на ожидании ввода и встанет), либо нужно писать свой цикл с любыми нужными свойствами. Я последнее использовал: т.е. в существующий код содержащий big loop просто в цикл вставлялся вызов функции, которая вычитывает и обрабатывает тиклевские события. Ну там само собой скрипт загружался заранее, до биг лупа, и исполнялся, он там биндился к событиям и дальше всё по событиям или таймеру (after). В принципе можно и наоборот извернуть, чтоб в функции обработки событий вызывать big loop. Это без особой разницы. Идея в том, что скрипт состоит либо из функций привязанных к событиям, либо единая программа/функция в которой временами (after, vwait, read...) вызывается big loop.
[ZX]