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

Fix stack promotion. #14

Merged
merged 1 commit into from
Jul 24, 2015
Merged

Conversation

kayceesrk
Copy link
Contributor

As a part of promoting the stack, objects pointed to by the stack should also be promoted. This commit fixes a bug that ignores the latter if the stack is on a minor heap; caml_scan_dirty_stack only scans dirty stack whereas stacks in a minor heap are never marked as dirty. The fix always scans the stack, and also marks it clean since the stack no longer points to a minor heap.

The unconditional stack scanning can be optimized by only scanning the stack if the stack is in the minor heap or in the major heap and is marked as dirty.

As a part of promoting the stack, objects pointed to by the stack should
also be promoted. This commit fixes a bug that ignores the latter if the
stack is on a minor heap. The fix always scans the stack, and also marks
it clean since the stack no longer points to a minor heap.

The unconditional stack scanning can be optimized by only scanning the
stack if the stack is in the minor heap or in the major heap and is
marked as dirty.
@kayceesrk
Copy link
Contributor Author

Also, this fixes #13.

stedolan added a commit that referenced this pull request Jul 24, 2015
@stedolan stedolan merged commit ce29581 into ocaml-multicore:master Jul 24, 2015
@kayceesrk kayceesrk deleted the promote-stack branch August 13, 2015 16:24
sadiqj pushed a commit to sadiqj/ocaml-multicore that referenced this pull request Feb 13, 2020
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

2 participants