8202845: Refactor reference processing for improved parallelism

Fold reference processing's nine phases into four to decrease startup and termination time of this phase.

Reviewed-by: kbarrett, sjohanss
This commit is contained in:
Thomas Schatzl 2018-05-29 09:26:00 +02:00
parent 643f255fa8
commit 1a0553e4eb
14 changed files with 940 additions and 785 deletions

View file

@ -47,6 +47,11 @@ bool DiscoveredList::is_empty() const {
return head() == NULL;
}
void DiscoveredList::clear() {
set_head(NULL);
set_length(0);
}
DiscoveredListIterator::DiscoveredListIterator(DiscoveredList& refs_list,
OopClosure* keep_alive,
BoolObjectClosure* is_alive):
@ -57,10 +62,8 @@ DiscoveredListIterator::DiscoveredListIterator(DiscoveredList& refs_list,
#ifdef ASSERT
_first_seen(refs_list.head()),
#endif
#ifndef PRODUCT
_processed(0),
_removed(0),
#endif
_next_discovered(NULL),
_keep_alive(keep_alive),
_is_alive(is_alive) {