Предполагая, что у меня есть 2 разных источника:
node_module.cc
threaded_class.cc
node_module.cc
это то, куда я звоню NODE_MODULE
инициализировать мой модуль. Этот модуль имеет функцию, которая делает экземпляр threaded_class.cc
(в отдельной теме). Я понимаю, что мне нужно использовать Lockers and Isolates для доступа к v8 в отдельном потоке, но моя проблема больше этого.
NODE_MODULE
Функция — мой единственный шанс поймать экземпляр модуля из моего понимания. Я нашел эту статью который использует кусок кода, который я точно ищу. Автор сохраняет дескриптор модуля в постоянном объекте следующим образом:
auto module_handle = Persistent<Object>::New(target);
Но это либо кажется устаревшим, либо невозможным. Однако я подумал, что это может быть достигнуто следующим образом:
auto module_handle = Persistent<Object>(context->GetIsolate() ,target);
Однако последние, когда я пытаюсь получить доступ к его свойствам, в основном являются частными методами и свойствами, ничего не стоит использовать, или я не знаю, как их использовать.
Мой вопрос: есть ли обновленное руководство о том, как правильно обрабатывать подобные вещи при написании модуля Node? Или вы можете показать мне пример, как я могу передать мой последний module_handle
в мой поток и использовать его, например, для выполнения функции JS под названием test
?
Я также хочу знать, в чем разница между NODE_MODULE
а также NODE_MODULE_CONTEXT_AWARE
при инициализации модуля узла?
Задача ещё не решена.