如何将 v8::FunctionCallbackInfo<v8::Value> 数组从一个隔离复制到另一个隔离?
How to copy v8::FunctionCallbackInfo<v8::Value> array from one isolate to another?
在我的项目中,我有多个线程,它们有自己的 V8 隔离。所以目前我不需要任何 v8::储物柜。但是现在我想实现一个可以异步执行其他脚本的函数"execute":
Thread1: execute("script1", "param1">(; execute("script2", {param1: "参数1", 参数2: 5}(;
线程 2:执行脚本 1
线程 3:执行脚本 2
目前为止,一切都好。。。但是现在我想跨隔离区传递 V8 参数。那么有没有办法将 v8::FunctionCallbackInfo 参数数组从一个隔离传递到另一个隔离?
使用我目前的架构,我不需要任何 v8:Lockers,因此最好使用一种无需在整个代码库中使用它们的解决方案。
这里的V8 开发人员。 v8::值通常绑定到一个隔离。在另一个隔离中使用它们的唯一方法是在那里创建相应的值。根据您的要求,您可以直接复制它们(逐个属性循环访问对象,并在第二个隔离中创建匹配的对象(,也可以在两者之间使用序列化格式(JSON 或结构化克隆,或您自己定义的内容(。
技术背景是每个隔离都有一个垃圾回收堆,这些值存储在该堆上。一个隔离无法访问另一个隔离的堆,因此它需要自己的想要处理的任何对象的副本。它们被称为"隔离物",因为它们彼此隔离;-(
相关文章:
- 带内存和隔离功能的SQLite
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 如何使用隔离>终止执行来停止所有线程
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- 从矢量中删除元素后出现隔离错误
- 在 G++ v8.2.0 中使用 std::experimental::可选
- 在 gtest 中初始化堆栈上的引用变量的隔离错误
- 如何为 v8::P ersistent<v8::Function> 创建到 c++ 函数的包装器
- v8::HandleScope::CreateHandle() # 中的致命错误无法在没有 HandleScope 的情
- 如何将节点 V8 字符串转换为 C++ 字符串
- 线程时访问静态映射时出现隔离错误
- 在 C++ 中嵌入 V8 会导致与 libcpp 相关的"unrecognized external symbol"错误
- 比特币隔离见证钱包地址计算
- 并行快速排序分区中的隔离错误
- C++多线程程序:变量定义为类成员的隔离错误
- 当我使用 V8 库中的 GetInternalField() 时出现分段错误
- 如何将 v8::FunctionCallbackInfo<v8::Value> 数组从一个隔离复制到另一个隔离?
- v8::隔离::新的空访问冲突
- 如何判断v8隔离实例使用了太多内存
- V8 "Hello World" "InitializeBuiltinTypedArrays"上的隔离错误