1 (2023-03-04 15:35:08 отредактировано nikolz)

Тема: Обращение к функциям QLUA из новой VMLua в новом потоке

Добрый день,swerg
Буду признателен, если подскажите как реализовать обращение к  функциям библиотеки QLUA 
из новой VMLua в новом потоке.
Поток и новый стейт запускаем на СИ.
-----------------
Спасибо.

2

Re: Обращение к функциям QLUA из новой VMLua в новом потоке

nikolz, добрый день!
Могли бы вы привести код по созданию "новой VMLua в новом потоке". Просто чтобы была база, от которой можно было бы что-то поисследовать.

3

Re: Обращение к функциям QLUA из новой VMLua в новом потоке

1. многопоточность в lua - идея совсем дурацкая. это как-то работает, но вообще, lua не предназначена для таких вещей.
2. создавать отдельные lua-машины можно, это нормально. например, lua_share так и работает. но если для запуска используется отдельный новый тред, создаваемый в библиотеке написанной на си - см пункт 1. и если я правильно помню, в таких стейтах есть проблемы с квиковыми расширениями.
3. в квике есть штатный способ создания lua-машин, для каждой запускается отдельный тред. это называется "запуск скриптов".

проблема не в том, чтобы создать lua-маштну из отдельного треда и в ней что-то запустить. проблема в том, чтобы все это корректно потом завершить, без утечек памяти, крашей и прочих радостей. это довольно непросто.

4

Re: Обращение к функциям QLUA из новой VMLua в новом потоке

вот, я делал proof-of-concept поддержки "настоящих" тредов в qlua: [url]https://github.com/untoxa/lua_threads[/url] но, честно скажу, все это так себе идея. конструкция хоть и работает корректно, но при этом все равно довольно хрупкая.