Skip to content

Multi session service#53762

Merged
tmat merged 8 commits intodotnet:mainfrom
tmat:MultiSessionService
Jun 10, 2021
Merged

Multi session service#53762
tmat merged 8 commits intodotnet:mainfrom
tmat:MultiSessionService

Conversation

@tmat
Copy link
Member

@tmat tmat commented May 28, 2021

Refactors EditAndContinueWorkspaceService, DebuggingSession and EditSession to allow for multiple active DebuggingSessions at the same time. The currently active sessions are tracked by EditAndContinueWorkspaceService.

Adds UnitTestingHotReloadService to ExternalAccess. This service currently only allows a single Unit Testing hot reload session to be active at any time, but it's easy to change to keep track of multiple sessions.

Implements #53701

@ghost ghost added the Area-Interactive label May 28, 2021
@tmat tmat force-pushed the MultiSessionService branch from eb98d6b to d7faa1d Compare June 5, 2021 20:15
@tmat tmat force-pushed the MultiSessionService branch from a2b7dd6 to bf6778c Compare June 9, 2021 17:09
@tmat tmat marked this pull request as ready for review June 9, 2021 18:14
@tmat tmat requested review from a team as code owners June 9, 2021 18:14
@tmat
Copy link
Member Author

tmat commented Jun 9, 2021

@davidwengier PTAL

@vritant24
Copy link
Member

So is the behaviour for multiple sessions so?:

  1. A starts a hot reload session and starts tracking changes.
  2. User makes change P.
  3. B starts a hot reload session and starts tracking changes.
  4. User makes change Q.
  5. B emits updates.

After 3, if A emits updates, it receives all the changes P and Q in the deltas provided by the EnC service.
i.e Are all session are tracking changes parallely, but separately committing them?

@tmat
Copy link
Member Author

tmat commented Jun 9, 2021

StartSession and EmitSolutionUpdate take Solution snapshot as a parameter. EmitSolutionUpdate returns the diff between last Solution snapshot (either passed to StartSession or previous EmitSolutionUpdate) and the current one.

Copy link
Member

@davidwengier davidwengier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@tmat tmat merged commit 8f24ed6 into dotnet:main Jun 10, 2021
@ghost ghost added this to the Next milestone Jun 10, 2021
@tmat tmat deleted the MultiSessionService branch June 10, 2021 18:37
@tmat tmat removed this from the Next milestone Jun 10, 2021
@tmat tmat added this to the 17.0.P2 milestone Jun 10, 2021
@RikkiGibson
Copy link
Member

The compiler changes look fine to me, but there was no sign off for them. Perhaps we need to adjust our process to ensure the compiler team reviews these PRs in a timely manner.

Copy link
Contributor

@cston cston left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Compiler changes LGTM.

@tmat
Copy link
Member Author

tmat commented Jun 10, 2021

Thanks for review. I forgot these files are shared with the compiler.

333fred added a commit that referenced this pull request Jun 14, 2021
…ures/interpolated-string

* upstream/main: (95 commits)
  Update official build number in separate job
  Update Language Feature Status.md (#54015)
  Remove IRazorDocumentOptionsService inheritance interface (#54047)
  Fix comment
  Simplify
  Do not create a cache field for lambda if it depends on caller's type argument (#44939)
  Documentation
  Documentation
  Documentation
  Update test impls
  Just pass null
  Pull diagnostics should just request from the doc, not the whole project.
  Add test plan for file-scoped namespace (#54003)
  Add source build to official build
  Improved nullable 'is' analysis (#53311)
  Multi session service (#53762)
  Resolve Versions.props conflicts
  Revert "Revert "Require partial method signatures to match" (47576) (#47879)" (#53352)
  Broaden enforcement on prototype marker (#53886)
  Update Language Feature Status.md (#53926)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants