@@ -60,6 +60,12 @@ object iterator??!!
60
60
61
61
MMTkHeap* MMTkHeap::_heap = NULL ;
62
62
63
+ MMTkHeap::MMTkHeap (MMTkCollectorPolicy* policy) : CollectedHeap(), _collector_policy(policy), _root_tasks(new SubTasksDone(MMTk_NumElements)), _n_workers(0 ), _gc_lock(new Monitor(Mutex::safepoint, " MMTkHeap::_gc_lock" , true , Monitor::_safepoint_check_sometimes))
64
+ // , _par_state_string(StringTable::weak_storage())
65
+ {
66
+ _heap = this ;
67
+ }
68
+
63
69
jint MMTkHeap::initialize () {
64
70
65
71
const size_t heap_size = collector_policy ()->max_heap_byte_size ();
@@ -92,7 +98,7 @@ jint MMTkHeap::initialize() {
92
98
93
99
NoBarrier* const barrier_set = new NoBarrier (reserved_region ());
94
100
// barrier_set->initialize();
95
- set_barrier_set (barrier_set);
101
+ BarrierSet:: set_barrier_set (barrier_set);
96
102
97
103
// Set up the GCTaskManager
98
104
// _mmtk_gc_task_manager = mmtkGCTaskManager::create(ParallelGCThreads);
@@ -325,10 +331,11 @@ void MMTkHeap::scan_global_roots(OopClosure& cl) {
325
331
if (!_root_tasks->is_task_claimed (MMTk_Management_oops_do)) Management::oops_do (&cl);
326
332
if (!_root_tasks->is_task_claimed (MMTk_jvmti_oops_do)) JvmtiExport::oops_do (&cl);
327
333
if (UseAOT && !_root_tasks->is_task_claimed (MMTk_aot_oops_do)) AOTLoader::oops_do (&cl);
328
- if (!_root_tasks->is_task_claimed (MMTk_SystemDictionary_oops_do)) SystemDictionary::roots_oops_do (&cl, &cl);
334
+ if (!_root_tasks->is_task_claimed (MMTk_SystemDictionary_oops_do)) SystemDictionary::oops_do ( &cl);
329
335
if (!_root_tasks->is_task_claimed (MMTk_CodeCache_oops_do)) CodeCache::blobs_do (&cb_cl);
330
336
331
- StringTable::possibly_parallel_oops_do (&cl);
337
+ OopStorage::ParState<false , false > _par_state_string (StringTable::weak_storage ());
338
+ StringTable::possibly_parallel_oops_do (&_par_state_string, &cl);
332
339
333
340
// if (!_root_tasks->is_task_claimed(MMTk_ClassLoaderDataGraph_oops_do)) ClassLoaderDataGraph::roots_cld_do(&cld_cl, &cld_cl);
334
341
if (!_root_tasks->is_task_claimed (MMTk_ClassLoaderDataGraph_oops_do)) ClassLoaderDataGraph::cld_do (&cld_cl);
@@ -348,7 +355,7 @@ void MMTkHeap::scan_thread_roots(OopClosure& cl) {
348
355
if (_root_tasks->all_tasks_completed (_n_workers) == 0 ) {
349
356
nmethod::oops_do_marking_prologue ();
350
357
Threads::change_thread_claim_parity ();
351
- StringTable::clear_parallel_claimed_index ();
358
+ // StringTable::clear_parallel_claimed_index();
352
359
}
353
360
}
354
361
CodeBlobToOopClosure cb_cl (&cl, false );
@@ -375,13 +382,13 @@ void MMTkHeap::scan_roots(OopClosure& cl) {
375
382
Management::oops_do (&cl);
376
383
JvmtiExport::oops_do (&cl);
377
384
if (UseAOT) AOTLoader::oops_do (&cl);
378
- SystemDictionary::roots_oops_do (&cl, &cl);
385
+ SystemDictionary::oops_do ( &cl);
379
386
{
380
387
MutexLockerEx lock (CodeCache_lock, Mutex::_no_safepoint_check_flag);
381
388
CodeCache::blobs_do (&cb_cl);
382
389
}
383
390
if (is_parallel) {
384
- StringTable::possibly_parallel_oops_do (&cl);
391
+ StringTable::possibly_parallel_oops_do (NULL , &cl);
385
392
} else {
386
393
StringTable::oops_do (&cl);
387
394
}
0 commit comments