Получение ссылки на Node-модуль и работа с ним в отдельном потоке

Предполагая, что у меня есть 2 разных источника:

  1. node_module.cc
  2. 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 при инициализации модуля узла?

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]