[英]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.