Цитата: ибо все потоки можно тупо пустить хоть даже через одну единственную критическую секцию для работы с данными и оно будет работать. Как оно будет тормозить это уже другой вопрос но работать будет... и тогда мы получим практически тот же однопоточный скрипт: все потоки будут ждать, пока выполняется один поток. При этом запросто можно "забыть" (или не догадаться) обернуть что-то важное в критическую секцию и все будет слетать в прямой зависимости от прогноза погоды на Марсе в каждую 7ю пятницу третьего високосного года. И сиди отлавливай такой баг.
А в случае использования одного потока все тупо и элементарно: создать общую глобальную очередь с таймером и добавлять туда то, что надо выполнить, а в главном цикле просто делать
while (queue.getTop().timer == 0)
{
script.exec(queue.getTop().code);
queue.deQueue();
}
Собственно, ПЗшка примерно так и делает.
Сам интерпретатор там тоже убогий до невозможности и портирование его не должно составлять никаких проблем.