-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Deep JVM stack on return from scope after suspension #1574
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
Labels
Comments
elizarov
added a commit
that referenced
this issue
Sep 25, 2019
Calls of afterCompletionInternal are pulled up the call stack. This is very important, since scoped coroutines do "uCont.resumeWith" from afterCompletionInternal, which makes all the JVM method visible in the debugger call frames and in exceptions. Additionally, this allows for some simplification of the JobSupport code, as a number of methods do not need "mode" parameter anymore. Moreover, the kludge of MODE_IGNORE is no longer needed and is dropped. Fixes #1574
elizarov
added a commit
that referenced
this issue
Sep 26, 2019
Calls of afterCompletionInternal are pulled up the call stack. This is very important, since scoped coroutines do "uCont.resumeWith" from afterCompletionInternal, which makes all the JVM method visible in the debugger call frames and in exceptions. Additionally, this allows for some simplification of the JobSupport code, as a number of methods do not need "mode" parameter anymore. Moreover, the kludge of MODE_IGNORE is no longer needed and is dropped. Fixes #1574
elizarov
added a commit
that referenced
this issue
Sep 26, 2019
Calls of afterCompletionInternal are pulled up the call stack. This is very important, since scoped coroutines do "uCont.resumeWith" from afterCompletionInternal, which makes all the JVM method visible in the debugger call frames and in exceptions. Additionally, this allows for some simplification of the JobSupport code, as a number of methods do not need "mode" parameter anymore. Moreover, the kludge of MODE_IGNORE is no longer needed and is dropped. Fixes #1574
elizarov
added a commit
that referenced
this issue
Sep 27, 2019
Calls of afterCompletionInternal are pulled up the call stack. This is very important, since scoped coroutines do "uCont.resumeWith" from afterCompletionInternal, which makes all the JVM method visible in the debugger call frames and in exceptions. Additionally, this allows for some simplification of the JobSupport code, as a number of methods do not need "mode" parameter anymore. Moreover, the kludge of MODE_IGNORE is no longer needed and is dropped. Fixes #1574
elizarov
added a commit
that referenced
this issue
Sep 30, 2019
Calls of afterCompletionInternal are pulled up the call stack. This is very important, since scoped coroutines do "uCont.resumeWith" from afterCompletionInternal, which makes all the JVM method visible in the debugger call frames and in exceptions. Additionally, this allows for some simplification of the JobSupport code, as a number of methods do not need "mode" parameter anymore. Moreover, the kludge of MODE_IGNORE is no longer needed and is dropped. Fixes #1574
qwwdfsad
pushed a commit
that referenced
this issue
Oct 4, 2019
Calls of afterCompletionInternal are pulled up the call stack. This is very important, since scoped coroutines do "uCont.resumeWith" from afterCompletionInternal, which makes all the JVM method visible in the debugger call frames and in exceptions. Additionally, this allows for some simplification of the JobSupport code, as a number of methods do not need "mode" parameter anymore. Moreover, the kludge of MODE_IGNORE is no longer needed and is dropped. Make TimeoutCoroutine extends ScopedCoroutines. Fixes #1574
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Consider this suspending code:
Currently,
foo
would be called from quite a deep JVM stack that contains a lot of irrelevant JVM methods that are updating internal state-machines. Every scoped coroutine adds another level there.The text was updated successfully, but these errors were encountered: