-
Notifications
You must be signed in to change notification settings - Fork 7.8k
GC fiber unfinished executions #9810
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
Conversation
af9443f
to
6c72d50
Compare
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.
I don't object.
Unfortunately, this GC part becomes too complex and actually makes the idea of backup cycle collection completely inefficient. Classic mark-and-sweep GC might win now.
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.
Based on my limited knowledge of the GC this looks good. Thanks for tackling this issue!
Because it increases the size of the graph, right? or because of the get_gc handler overhead?
Classic mark-and-sweep would make destructor execution non deterministic though |
Because get_gc handler starts to copy stack slots to GC buffer. That is very similar to "mark roots" phase of mark-and-sweep.
I know. Destructors and GC are conceptually incompatible. |
Fixes #9735