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

define a new ZoeSeatKit that doesn't create cycles #8672

Closed
Chris-Hibbert opened this issue Dec 18, 2023 · 0 comments · Fixed by #8682
Closed

define a new ZoeSeatKit that doesn't create cycles #8672

Chris-Hibbert opened this issue Dec 18, 2023 · 0 comments · Fixed by #8682
Assignees
Labels
enhancement New feature or request performance Performance related issues Zoe package: Zoe

Comments

@Chris-Hibbert
Copy link
Contributor

Chris-Hibbert commented Dec 18, 2023

What is the Problem Being Solved?

When we create ZoeSeats, we accidentally create a cycle that prevents garbage collection.

Description of the Design

Leave the existing definition of ZoeSeatKits, so existing seats continue to function. Stop invoking its maker.

Create a new pair of exo classes that separate the userSeat from the rest of the kit, and which can break the cycle when the seat is exited. (See Avoiding Cycles In The First Place in #8401). Use the maker when making new seats.

Security Considerations

None. But don't lose existing seats that might be providing access to assets.

Scaling Considerations

Stops creating cyclic data structures that GC can't free.

Test Plan

verify that we don't create uncollectible cycles.

Upgrade Considerations

Requires a Zoe upgrade.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request performance Performance related issues Zoe package: Zoe
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant