[英]Terminate WebAssembly from JavaScript
是否可以终止正在运行的WebAssembly代码并从JavaScript中清除所有剩余资源?
通常情况是这样的。 JS初始化WASM模块并调用导出的函数。 在稍后的时间点,WASM代码调用导入的函数f
将控制权转回JS。 f
做一些事情,并根据结果决定是否保持WASM运行。
两种情况:
f
只是返回。 f
决定终止WASM功能,并可能清除所有与WASM相关的资源。 它可以? 怎么样? 如果这样可以execve
一个具体示例的分析,请考虑execve
工作方式。 如果呼叫失败,它将简单地返回指示失败。 但是,如果成功,它将不会返回-过于简单化就是说它将终止调用方并在该位置启动一个新的调用方(保持某些环境不变)。
终止调用者的唯一方法(无论调用者是Wasm还是JavaScript)都是引发异常。 这就留给了呼叫者适当的反应。 特别是,如果需要进行清理,则应编写它以便捕获可能的异常,执行清理并重新抛出(或等效地,使用try-finally结构(如果可用))。
Wasm当前不直接支持异常处理,但是可以通过对JavaScript进行模拟来模拟。 Wasm的未来版本将提供适当的异常处理支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.