< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahNMethod.hpp

Print this page
rev 59811 : 8247670: Shenandoah: deadlock during class unloading OOME

@@ -195,6 +195,20 @@
   void nmethods_do_begin();
   void nmethods_do(NMethodClosure* cl);
   void nmethods_do_end();
 };
 
+// This locker aborts acquiring per-nmethod lock if heap encountered OOM.
+class ShenandoahAbortableNMethodLocker : public StackObj {
+private:
+  ShenandoahHeap*          const _heap;
+  ShenandoahReentrantLock* const _lock;
+  bool                     _aborted;
+
+public:
+  ShenandoahAbortableNMethodLocker(ShenandoahReentrantLock* lock);
+  ~ShenandoahAbortableNMethodLocker();
+
+  bool aborted() const { return _aborted; }
+};
+
 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHNMETHOD_HPP
< prev index next >