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

Branch/fix gc hooks (fixes #4899) #4909

Merged
merged 2 commits into from
Feb 19, 2024
Merged

Branch/fix gc hooks (fixes #4899) #4909

merged 2 commits into from
Feb 19, 2024

Conversation

cfbolz
Copy link
Member

@cfbolz cfbolz commented Feb 19, 2024

No description provided.

the problem is that making sure the ActionFlag.fire method does not
collect is not enough. it must also not change any pointer fields that
would trigger the write barrier to be called (unfortunately we have no
annotation for that).

the bug in 4899 is an invariant in the GC being violated by a GC hook
action being inserted into the linked list of actions.

the new approach is to have a list of all actions and a bitfield that
signifies if an action has fired. that way we don't need to put an
action into a linked list at all if it fires, instead we just set the
corresponding bit.
@cfbolz cfbolz merged commit 2519a15 into main Feb 19, 2024
3 checks passed
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.

None yet

1 participant