587 // concurrent marking) for an intermittent non-GC safepoint. |
587 // concurrent marking) for an intermittent non-GC safepoint. |
588 // If this method returns NULL, SafepointSynchronize will |
588 // If this method returns NULL, SafepointSynchronize will |
589 // perform cleanup tasks serially in the VMThread. |
589 // perform cleanup tasks serially in the VMThread. |
590 virtual WorkGang* get_safepoint_workers() { return NULL; } |
590 virtual WorkGang* get_safepoint_workers() { return NULL; } |
591 |
591 |
|
592 // Support for object pinning. This is used by JNI's Get*Critical() and |
|
593 // Release*Critical() family of functions. A GC may either use the GCLocker |
|
594 // protocol to ensure no critical arrays are in-use when entering |
|
595 // a GC pause, or it can implement pinning, which must guarantee that |
|
596 // the object does not move while pinned. |
|
597 virtual oop pin_object(JavaThread* thread, oop o); |
|
598 |
|
599 virtual void unpin_object(JavaThread* thread, oop o); |
|
600 |
592 // Non product verification and debugging. |
601 // Non product verification and debugging. |
593 #ifndef PRODUCT |
602 #ifndef PRODUCT |
594 // Support for PromotionFailureALot. Return true if it's time to cause a |
603 // Support for PromotionFailureALot. Return true if it's time to cause a |
595 // promotion failure. The no-argument version uses |
604 // promotion failure. The no-argument version uses |
596 // this->_promotion_failure_alot_count as the counter. |
605 // this->_promotion_failure_alot_count as the counter. |