On Fri, 11 Sep 2020 10:54:42 GMT, Aleksey Shipilev <sh...@openjdk.org> wrote:
>> Hi @shipilev, >> I have update a PR that trying to reuse code in serial and parallel >> heap iteration. >> would you like to review again? Thanks >> -Lin > > Thank you, we'll take a look next week. Hi Lin, 1) The patch does not compile with assertion on @@ -1490,7 +1490,7 @@ private: cl->do_object(obj); obj->oop_iterate(&oops); } - assert(q.is_empty(), "should be empty"); + assert(q->is_empty(), "should be empty"); 2) I don't like to export following methods as public. Instead, you can declare ShenandoahParallelObjectIterator as friend class of ShenandoahHeap. void scan_roots_for_iteration(Stack<oop, mtGC>* oop_stack, ObjectIterateScanRootClosure* oops); bool prepare_aux_bitmap_for_iteration(); void reclaim_aux_bitmap_for_iteration(); 3) Please rename ObjectIterateParScanClosure to ShenandoahObjectIterateParScanClosure for code convention 4) There is no point to seed mark roots if prepare_aux_bitmap_for_iteration() failed in ShenandoahParallelObjectIterator constructor. ------------- PR: https://git.openjdk.java.net/jdk/pull/67