Hello!  I'm looking into unwinding to stack levels other than "the very 
top", which is all that emscripten_sleep() and friends seem to allow.

I found the following GitHub issue with an implementation of coroutines 
useful, for how to link and use the unwind/rewind functions:

https://github.com/WebAssembly/binaryen/issues/4484

>From that I was able to build and use the browser's debugger to step into 
asyncify_start_unwind() all right.  It validates the stack_range I pass it, 
dodging an unreachable inside the call.  But right after it returns, 
there's an unreachable that fires:

     call $asyncify_start_unwind
     global.get $global3
     local.get $var4
     i32.ne
     if
         unreachable  ;; <- this is where the problem is
     end

$global3 is 1, set by asyncify_start_unwind().  And $var4 is 0.

This seems suspiciously to me as being like the Asyncify.state check which 
is done by emscripten to make sure that "unauthorized" functions don't 
change the unwinding state.  (I was pretty sure it wasn't some alias of 
Asyncify.state, but for the heck of it I tried setting that to unwinding to 
see if it made any difference.)

Is this some other variable with bookkeeping in a similar spirit?  It 
didn't seem the GitHub issue I referenced had to worry about this.  Is 
there a way of getting past this, to have that same level of coroutine 
control, while still using the higher-level Emscripten toolchain features 
and building for the web?

Thanks!
--Brian

P. S. I'm supposed to have maximum -g3 debug information on, but there's no 
way to trace to what $global3 or $var4 are supposed to mean.  Is there a 
view that would give a better hint?

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/f37a3814-8395-43e1-966a-a987850de6e0n%40googlegroups.com.

Reply via email to