-
Notifications
You must be signed in to change notification settings - Fork 34
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
Multiple suspension points support #348
base: develop
Are you sure you want to change the base?
Conversation
We discussed this PR today with @avpotapov00 , and come to the conclusion that it overlaps with #361. This PR implements three things:
Independently, while working on the new model checking strategy, I also discovered problems (1) and (2), and opened PR #361. At first I was only aware that this PR fixes (1), so I borrowed the relevant code in the commit ab760ef. Then I independently developed different fix for (2). So after the discussion, we thought that it would be good idea to split this PR into two parts.
|
3c70b8f
to
83a7d5d
Compare
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
83a7d5d
to
13ffe5c
Compare
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
@avpotapov00 @ndkoval I've rebased the PR on |
val (resumedValue, continuation) = suspendResultToContinuation | ||
// Erase the current result | ||
completion.resWithCont.set(null) | ||
// We must exit the ignored section to keep tracking execution after the resumption. | ||
runOutsideIgnoredSection(thread) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why should this code be called outside the ignored section?
} | ||
if (guarantee == ManagedGuaranteeType.TREAT_AS_ATOMIC) { | ||
if (guarantee == ManagedGuaranteeType.TREAT_AS_ATOMIC && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please add a comment explaining what is going on here?
Closes #122