我有一个第三方 C++库,这个库会在收到消息时通过回调通知给 napi,由于这个回调不属于 napi 的主线程,运行后会报错
Fatal error in v8::HandleScope::CreateHandle()
Cannot create a handle without a HandleScope zsh: illegal hardware instruction node test.js
该怎么解决这个问题,没办法改这个第三方库的源码。。。
1
ysc3839 2020-12-15 15:07:39 +08:00 via Android
随便搜索了一下,找到了这个 https://github.com/mika-fischer/napi-thread-safe-callback
我没有了解过 V8 引擎,也不确定这个是否适合你的用途。 |
3
zy445566 2020-12-16 10:15:24 +08:00
感觉你这个写的功能就是个坑啊,肯定会让接收的人很头疼,我觉得你得修改下实现方法才是最优解。我有几个问题。
你这个 C++库的作用是干嘛的,只是为了开多线程么? 还有方法不能 rpc 序列化后再到另一个线程复现方法么? 且不说你这样传万一上下文丢失容易产生错误,光这样传指针就非常危险,为什么非要这样做呢? |
4
zy445566 2020-12-16 10:17:16 +08:00
主要是觉得如果没有什么深层次原因且这是唯一解决方法,我觉得非常不建议这样做。
|