Please sign in to comment.
Introduce explicit scanned state for mature GC
This uses an additional bit for the mark field, which now has a separate flag to indicate that the object has been completely scanned. This will be used in the write barrier for concurrent collection. This is needed for the case where we store an unmarked object into an already scanned object so we don't accidentally free the unmarked object. This makes the black state of the tri color GC invariant explicit. Before this was implicit by it being black when it was marked and not anymore in the mark stack. For concurrent GC we want this explicit so we don't have to check the mark stack in each write barrier.
- Loading branch information...
Showing with 47 additions and 16 deletions.