簡體   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