这个有点奇怪……
我编写了一个大多数时候运行良好的 NodeJS 本机模块,但是该类包含一个在共享内存的上下文中运行时会破坏模块的方法。
粗略地说,该模块打开了一个 IO 服务器,但是有一个错误需要我打开和关闭 IO 服务器以检索特定值...当我执行此操作时,找到引用旧 IO 服务器对象的任何指针显然会中断/ segfault(“涂鸦空间”错误,对吧?)。
为了解决这个问题,我目前使用 NodeJS 的 child_process.fork() 在隔离上下文中运行 errant 方法,并在主进程和分叉进程之间传递消息以使程序按要求运行(即我调用里面的方法分叉的进程,并使用 'process.on("message", ...)' 检索结果)。这很好用,但感觉就像一个非常昂贵的黑客......
作为记录,我尝试使用 Libuv 线程来运行该方法,但我遇到了同样的问题。我猜那是因为函数调用仍然是在共享内存中进行的。
无论如何,我是否可以使用 C++ 在“NodeJS 风格”进程中运行一小部分(或更多......)C/C++ 代码?