Как бы вы использовали libuv внутри виртуальной машины с байт-кодом, скажем, у меня есть эта функция
void vm_run(vm_t* vm);
Что запускает виртуальную машину для выполнения кода, она будет продолжать работать до тех пор, пока это делает код пользователя, теперь я хочу добавить асинхронный материал в языковую виртуальную машину, скажем, setTimeout
/setInterval
, например JavaScript, я могу открыть нативную функцию пользователю, но когда чтобы фактически запустить цикл событий, uv_run
блокируется до тех пор, пока не останется событий, и виртуальная машина также блокируется до тех пор, пока код пользователя не закончится, как мне запустить оба вместе, чтобы виртуальная машина выполняла асинхронный ввод-вывод, я просто пытаюсь понять Идея цикла событий правильно в таком контексте, кто-нибудь, пожалуйста, направьте меня на правильный путь.