Shmuel wrote: Sun 19 Jan, 2025 22:08
Давайте подождём несколько дней, возможно будет больше обратной связи, примеров и т.д. Откатить никогда не поздно.
Давайте подождём, почему нет.
Но вроде всё очевидно:
- влияние на короткоживущие таймеры не будет вовсе (и например никто не заметит если 1/1000 раз таймер не сработает).
- "долгоживущие" же согласно вашей инструкции необходимо скорректировать, добавив "внешние" ссылки.
Если не скорректировать, то при сборке мусора они будут отваливаться. Опять же, если сборка мусора происходит не часто, то за пару дней можно и не заметить.
Shmuel wrote: Sun 19 Jan, 2025 22:08
То решение, которое я выбрал, оно типа "стандартное" для Lua.
"Стандартно" объект, доступа к которому нет, считается мусором, поскольку самостоятельно он не функционирует.
Программисту об этом беспокоиться не надо, поскольку всё очевидно из кода - нет обращений к объекту, значит он уже не нужен.
Всё несколько иначе при использовании
ffi: здесь нам приходится задумываться о времени жизни "объектов", поскольку оперируем мы ими на самом низком уровне, в обход стандартных механизмов.
Автоматизировать это никак нельзя: интерпретатор Lua мысли не читает.
Случай с таймером не такой, здесь заранее известно в какой момент объект надо уничтожить, и это легко автоматизировать.
Нет никакой выгоды от того, что это сейчас вдруг возложено на программиста.
Shmuel wrote: Sun 19 Jan, 2025 22:44
Возникла идея альтернативной реализации:
Почему бы и нет.
Но если мой гипотетический вариант тоже рабочий, то не вижу принципиальной разницы.