8203848: Missing remembered set entry in j.l.ref.references after JDK-8203028

Collect remembered sets for discovered fields while adding them to the list of discovered references.

Reviewed-by: kbarrett, eosterlund
This commit is contained in:
Thomas Schatzl 2018-07-02 09:38:20 +02:00
parent cbec44e846
commit e02646e05b

View File

@ -1033,7 +1033,7 @@ ReferenceProcessor::add_to_discovered_list_mt(DiscoveredList& refs_list,
// The last ref must have its discovered field pointing to itself.
oop next_discovered = (current_head != NULL) ? current_head : obj;
oop retest = RawAccess<>::oop_atomic_cmpxchg(next_discovered, discovered_addr, oop(NULL));
oop retest = HeapAccess<AS_NO_KEEPALIVE>::oop_atomic_cmpxchg(next_discovered, discovered_addr, oop(NULL));
if (retest == NULL) {
// This thread just won the right to enqueue the object.