-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The barrier
instruction has lexical scope semantics
#44
Comments
Yes, the idea was that this sets a flag associated with every stack, which Perhaps a better way of providing the equivalent to barrier would be not as a block-like instruction, but as a variation of resume: That all said, this instruction is the one with the least-clear benefit, and perhaps we should just defer/cut it from the proposal. Our Wasmtime prototype has not yet implemented it either. |
Just to pop in here, we've been thinking about shared continuations over in the threads subgroup, and I believe that The top-level idea is that there may be situations where execution needs to move from a EDIT: actually, I've realised that the above might be making some unjustified assumptions about the way we would call between |
Rename new traps.wast test -> traps0.wast
* [spec] resume_throw should accept multiple handlers (#71) * Add missing * --------- Co-authored-by: Alan L <[email protected]>
Hello,
As we're now looking into implementing this proposal in Wizard, we noticed that the
barrier
instruction introduces a scope for instructions where suspends are dynamically disallowed. This has lexical behavior in that suspension is disallowed after entering the block and then reallowed after leaving the block. Two implementation strategies are afforded: dynamically updating a state variable associated with the current continuation, or stack-frame walking. As stack-frame walking is not necessary for suspension otherwise (only walking over stacks via the parent stack), thebarrier
seems to add some inherent cost here.The text was updated successfully, but these errors were encountered: