Я пишу DLL-оболочку вокруг libnode.dll и, похоже, мне нужно вызвать
Код: Выделить всё
node::SpinEventLoop(env)У меня вопрос: необходимо ли это? И если да, то как мне войти в среду выполнения Nodejs из другого потока приложения C++, как
Код: Выделить всё
node::SpinEventLoop(env)Код: Выделить всё
v8::LockerКод: Выделить всё
v8::Object::GetКод: Выделить всё
v8::ValueВ настоящее время я разрешаю
Код: Выделить всё
SpinEventLoopКод: Выделить всё
void spinEventLoop() {
v8::Locker locker(isolate);
printf("locked isolate, spinning event loop\n");
node::SpinEventLoop(env).FromMaybe(1);
printf("unlocking isolate, finished spinning event loop\n");
}
EXTERN void MyLib_SpinEventLoop() {
std::thread t(spinEventLoop);
t.detach();
}
Код: Выделить всё
setInterval(() => {}, 60000)Код: Выделить всё
SpinEventLoopJust by way of explanation. The asynchronous methods are being run in a v8 MicroTask, perhaps this is the issue, and I need to do a PerformMicrotaskCheckpoint each time I run the tasks?
Источник: https://stackoverflow.com/questions/781 ... le-threads
Мобильная версия