繁体   English   中英

从JavaScript终止WebAssembly

[英]Terminate WebAssembly from JavaScript

是否可以终止正在运行的WebAssembly代码并从JavaScript中清除所有剩余资源?

通常情况是这样的。 JS初始化WASM模块并调用导出的函数。 在稍后的时间点,WASM代码调用导入的函数f将控制权转回JS。 f做一些事情,并根据结果决定是否保持WASM运行。

两种情况:

  • WASM应该保持运行。 f只是返回。
  • f决定终止WASM功能,并可能清除所有与WASM相关的资源。 它可以? 怎么样?

如果这样可以execve一个具体示例的分析,请考虑execve工作方式。 如果呼叫失败,它将简单地返回指示失败。 但是,如果成功,它将不会返回-过于简单化就是说它将终止调用方并在该位置启动一个新的调用方(保持某些环境不变)。

终止调用者的唯一方法(无论调用者是Wasm还是JavaScript)都是引发异常。 这就留给了呼叫者适当的反应。 特别是,如果需要进行清理,则应编写它以便捕获可能的异常,执行清理并重新抛出(或等效地,使用try-finally结构(如果可用))。

Wasm当前不直接支持异常处理,但是可以通过对JavaScript进行模拟来模拟。 Wasm的未来版本将提供适当的异常处理支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM