Reorganize Space::acquire #1381
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We rewrite the function into a more linear style and remove duplicated code of handling blocking for GC.
Although this PR does not intend to change the logic of Space::acquire, it does fix some obvious bugs.
Previously if the current thread is a mutator, or GC is not enabled,
the thread will attempt to poll and block for GC if it fails to get
new pages from the PageResource. Now it panicks.
Previously the
on_pending_allocation
after failing to get newpages from PageResource did not include side metadata. Now it
always includes side metadata.