Support explicit cancellation of Wasm execution#28
Draft
jtakakura wants to merge 8 commits intoclojurewasm:mainfrom
Draft
Support explicit cancellation of Wasm execution#28jtakakura wants to merge 8 commits intoclojurewasm:mainfrom
jtakakura wants to merge 8 commits intoclojurewasm:mainfrom
Conversation
c643a26 to
d5b5615
Compare
ac45a2c to
1d2dee7
Compare
perf: optimize atomic memory ordering in cancellation logic and add VS Code project settings
a0323eb to
3438e30
Compare
3438e30 to
04e81c8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements a mechanism to explicitly cancel a running WebAssembly instance from an external thread, as requested in #27.
Previously, execution could only be stopped via pre-set fuel limits or deadline timeouts. This change introduces a thread-safe cancelled flag in the Vm struct, allowing host applications to interrupt long-running or infinite loops from a different thread.
Proposed Changes
Core VM Implementation
Public API
Testing
Related Issue
Closes #27