【发布时间】:2018-01-01 11:15:16
【问题描述】:
是否可以终止正在运行的 WebAssembly 代码并从 JavaScript 中清除任何剩余资源?
一般情况是这样的。 JS 初始化一个 WASM 模块并调用一个导出的函数。稍后,WASM 代码调用导入的函数f 将控制权转回给 JS。 f 做了一些事情,并根据结果决定是否保持 WASM 运行。
两种情况:
- WASM 应该保持运行。
f直接返回。 -
f决定终止 WASM 功能并可能清理任何与 WASM 相关的资源。它可以?怎么样?
如果可以更轻松地分析更具体的示例,请考虑 execve 的工作原理。如果调用失败,它只会返回指示失败。但是,如果它成功了,它就不会返回 - 一个广泛的过度简化是说它终止调用者并在它的位置开始一个新的调用者(保持一些环境不变)。
【问题讨论】:
-
你不能简单地使用杀戮标志吗? Afaik,您可以写入 wasm 内存,因此 js 程序可以设置 wasm 程序定期检查的标志
-
@JonasW。理想情况下,我想避免这种情况。我宁愿 WASM 模块不需要知道或有任何专门为此工作的东西。