350 // This interface assumes that it's being called by the
351 // vm thread. It collects the heap assuming that the
352 // heap lock is already held and that we are executing in
353 // the context of the vm thread.
354 virtual void collect_as_vm_thread(GCCause::Cause cause);
355
356 virtual MetaWord* satisfy_failed_metadata_allocation(ClassLoaderData* loader_data,
357 size_t size,
358 Metaspace::MetadataType mdtype);
359
360 // Returns "true" iff there is a stop-world GC in progress. (I assume
361 // that it should answer "false" for the concurrent part of a concurrent
362 // collector -- dld).
363 bool is_gc_active() const { return _is_gc_active; }
364
365 // Total number of GC collections (started)
366 unsigned int total_collections() const { return _total_collections; }
367 unsigned int total_full_collections() const { return _total_full_collections;}
368
369 // Increment total number of GC collections (started)
370 // Should be protected but used by PSMarkSweep - cleanup for 1.4.2
371 void increment_total_collections(bool full = false) {
372 _total_collections++;
373 if (full) {
374 increment_total_full_collections();
375 }
376 }
377
378 void increment_total_full_collections() { _total_full_collections++; }
379
380 // Return the SoftRefPolicy for the heap;
381 virtual SoftRefPolicy* soft_ref_policy() = 0;
382
383 virtual MemoryUsage memory_usage();
384 virtual GrowableArray<GCMemoryManager*> memory_managers() = 0;
385 virtual GrowableArray<MemoryPool*> memory_pools() = 0;
386
387 // Iterate over all objects, calling "cl.do_object" on each.
388 virtual void object_iterate(ObjectClosure* cl) = 0;
389
390 // Keep alive an object that was loaded with AS_NO_KEEPALIVE.
|
350 // This interface assumes that it's being called by the
351 // vm thread. It collects the heap assuming that the
352 // heap lock is already held and that we are executing in
353 // the context of the vm thread.
354 virtual void collect_as_vm_thread(GCCause::Cause cause);
355
356 virtual MetaWord* satisfy_failed_metadata_allocation(ClassLoaderData* loader_data,
357 size_t size,
358 Metaspace::MetadataType mdtype);
359
360 // Returns "true" iff there is a stop-world GC in progress. (I assume
361 // that it should answer "false" for the concurrent part of a concurrent
362 // collector -- dld).
363 bool is_gc_active() const { return _is_gc_active; }
364
365 // Total number of GC collections (started)
366 unsigned int total_collections() const { return _total_collections; }
367 unsigned int total_full_collections() const { return _total_full_collections;}
368
369 // Increment total number of GC collections (started)
370 void increment_total_collections(bool full = false) {
371 _total_collections++;
372 if (full) {
373 increment_total_full_collections();
374 }
375 }
376
377 void increment_total_full_collections() { _total_full_collections++; }
378
379 // Return the SoftRefPolicy for the heap;
380 virtual SoftRefPolicy* soft_ref_policy() = 0;
381
382 virtual MemoryUsage memory_usage();
383 virtual GrowableArray<GCMemoryManager*> memory_managers() = 0;
384 virtual GrowableArray<MemoryPool*> memory_pools() = 0;
385
386 // Iterate over all objects, calling "cl.do_object" on each.
387 virtual void object_iterate(ObjectClosure* cl) = 0;
388
389 // Keep alive an object that was loaded with AS_NO_KEEPALIVE.
|