Skip to content
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

Open
wants to merge 6 commits into
base: develop
Choose a base branch
from

Conversation

avpotapov00
Copy link
Collaborator

@avpotapov00 avpotapov00 commented Jul 28, 2024

Closes #122

@avpotapov00 avpotapov00 requested a review from ndkoval July 28, 2024 22:56
@avpotapov00 avpotapov00 self-assigned this Jul 28, 2024
@eupp eupp self-requested a review August 16, 2024 10:48
@eupp
Copy link
Collaborator

eupp commented Aug 16, 2024

We discussed this PR today with @avpotapov00 , and come to the conclusion that it overlaps with #361.

This PR implements three things:

  1. Fix for events tracking in a resumption part of a coroutine.
  2. Fix for the trace collection in a resumption part of a coroutine.
  3. Multiple suspension points support.

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).
As we discussed today, this fix also handles more complicated case, when the resumed part of the coroutine has several nested suspend functions. To handle this case, I save the stack of suspended functions, and then restore it on resumption.

So after the discussion, we thought that it would be good idea to split this PR into two parts.

  1. The first part should contain fixes for problems (1) and (2), and will be delivered under Fix resumption trace collection and printing logic #361
  2. The second part should contain the multiple suspension points logic, and should be delivered after the first part.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants