Я пытаюсь запустить tclsh с моим пакетом (разделяемой библиотекой), написанным на C ++. Для пакета необходим механизм, аналогичный Windows PumpMessage, который периодически вызывается в главном потоке после его загрузки через пакет req.
При желании я могу просто зарегистрировать обработчик таймера через Tcl_CreateTimerHandler
и это работает нормально.
С tclsh цикл обработки событий не существует, поэтому я не могу подключиться к своему пакету. Я попытался настроить основной цикл (Tcl_SetMainLoop
), но это вызывается один раз и впоследствии устанавливается в NULL.
Есть идеи, как мне этого добиться?
Понял после просмотра кода ТК. Основной цикл должен делать сам цикл (он не вызывается в цикле, как я ожидал).
Если основной цикл, установленный в tcl, выполняет цикл while, он работает нормально.