< prev index next >
src/share/vm/gc/shared/genCollectedHeap.cpp
Print this page
rev 12906 : [mq]: gc_interface
*** 124,135 ****
return JNI_ENOMEM;
}
initialize_reserved_region((HeapWord*)heap_rs.base(), (HeapWord*)(heap_rs.base() + heap_rs.size()));
! _rem_set = collector_policy()->create_rem_set(reserved_region());
! set_barrier_set(rem_set()->bs());
ReservedSpace young_rs = heap_rs.first_part(gen_policy()->young_gen_spec()->max_size(), false, false);
_young_gen = gen_policy()->young_gen_spec()->init(young_rs, rem_set());
heap_rs = heap_rs.last_part(gen_policy()->young_gen_spec()->max_size());
--- 124,138 ----
return JNI_ENOMEM;
}
initialize_reserved_region((HeapWord*)heap_rs.base(), (HeapWord*)(heap_rs.base() + heap_rs.size()));
! _rem_set = new CardTableRS(reserved_region());
! _rem_set->initialize();
! CardTableModRefBS *bs = new CardTableModRefBS(_rem_set);
! bs->initialize();
! set_barrier_set(bs);
ReservedSpace young_rs = heap_rs.first_part(gen_policy()->young_gen_spec()->max_size(), false, false);
_young_gen = gen_policy()->young_gen_spec()->init(young_rs, rem_set());
heap_rs = heap_rs.last_part(gen_policy()->young_gen_spec()->max_size());
*** 1311,1315 ****
--- 1314,1334 ----
if (UseConcMarkSweepGC) {
ConcurrentMarkSweepThread::cmst()->stop();
}
#endif
}
+
+ void GenCollectedHeap::safepoint_synchronize_begin() {
+ #if INCLUDE_ALL_GCS
+ if (UseConcMarkSweepGC) {
+ ConcurrentMarkSweepThread::synchronize(false);
+ }
+ #endif
+ }
+
+ void GenCollectedHeap::safepoint_synchronize_end() {
+ #if INCLUDE_ALL_GCS
+ if (UseConcMarkSweepGC) {
+ ConcurrentMarkSweepThread::desynchronize(false);
+ }
+ #endif
+ }
< prev index next >