540 bool unload_classes() const; 541 542 // Delete entries for dead interned string and clean up unreferenced symbols 543 // in symbol table, possibly in parallel. 544 void unload_classes_and_cleanup_tables(bool full_gc); 545 546 // ---------- Generic interface hooks 547 // Minor things that super-interface expects us to implement to play nice with 548 // the rest of runtime. Some of the things here are not required to be implemented, 549 // and can be stubbed out. 550 // 551 public: 552 AdaptiveSizePolicy* size_policy() shenandoah_not_implemented_return(NULL); 553 bool is_maximal_no_gc() const shenandoah_not_implemented_return(false); 554 555 bool is_in(const void* p) const; 556 557 size_t obj_size(oop obj) const; 558 virtual ptrdiff_t cell_header_size() const; 559 560 // All objects can potentially move 561 bool is_scavengable(oop obj) { return true; }; 562 563 void collect(GCCause::Cause cause); 564 void do_full_collection(bool clear_all_soft_refs); 565 566 // Used for parsing heap during error printing 567 HeapWord* block_start(const void* addr) const; 568 size_t block_size(const HeapWord* addr) const; 569 bool block_is_obj(const HeapWord* addr) const; 570 571 // Used for native heap walkers: heap dumpers, mostly 572 void object_iterate(ObjectClosure* cl); 573 void safe_object_iterate(ObjectClosure* cl); 574 575 // Used by RMI 576 jlong millis_since_last_gc(); 577 578 // ---------- Safepoint interface hooks 579 // 580 public: 581 void safepoint_synchronize_begin(); 582 void safepoint_synchronize_end(); | 540 bool unload_classes() const; 541 542 // Delete entries for dead interned string and clean up unreferenced symbols 543 // in symbol table, possibly in parallel. 544 void unload_classes_and_cleanup_tables(bool full_gc); 545 546 // ---------- Generic interface hooks 547 // Minor things that super-interface expects us to implement to play nice with 548 // the rest of runtime. Some of the things here are not required to be implemented, 549 // and can be stubbed out. 550 // 551 public: 552 AdaptiveSizePolicy* size_policy() shenandoah_not_implemented_return(NULL); 553 bool is_maximal_no_gc() const shenandoah_not_implemented_return(false); 554 555 bool is_in(const void* p) const; 556 557 size_t obj_size(oop obj) const; 558 virtual ptrdiff_t cell_header_size() const; 559 560 void collect(GCCause::Cause cause); 561 void do_full_collection(bool clear_all_soft_refs); 562 563 // Used for parsing heap during error printing 564 HeapWord* block_start(const void* addr) const; 565 size_t block_size(const HeapWord* addr) const; 566 bool block_is_obj(const HeapWord* addr) const; 567 568 // Used for native heap walkers: heap dumpers, mostly 569 void object_iterate(ObjectClosure* cl); 570 void safe_object_iterate(ObjectClosure* cl); 571 572 // Used by RMI 573 jlong millis_since_last_gc(); 574 575 // ---------- Safepoint interface hooks 576 // 577 public: 578 void safepoint_synchronize_begin(); 579 void safepoint_synchronize_end(); |