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 |
592 // Support for object pinning. This is used by JNI Get*Critical() |
593 // Release*Critical() family of functions. A GC may either use the GCLocker |
593 // and Release*Critical() family of functions. If supported, the GC |
594 // protocol to ensure no critical arrays are in-use when entering |
594 // must guarantee that pinned objects never move. |
595 // a GC pause, or it can implement pinning, which must guarantee that |
595 virtual bool supports_object_pinning() const; |
596 // the object does not move while pinned. |
596 virtual oop pin_object(JavaThread* thread, oop obj); |
597 virtual oop pin_object(JavaThread* thread, oop o); |
597 virtual void unpin_object(JavaThread* thread, oop obj); |
598 |
|
599 virtual void unpin_object(JavaThread* thread, oop o); |
|
600 |
598 |
601 // Non product verification and debugging. |
599 // Non product verification and debugging. |
602 #ifndef PRODUCT |
600 #ifndef PRODUCT |
603 // Support for PromotionFailureALot. Return true if it's time to cause a |
601 // Support for PromotionFailureALot. Return true if it's time to cause a |
604 // promotion failure. The no-argument version uses |
602 // promotion failure. The no-argument version uses |