< prev index next >

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

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


 180 
 181   // Logging support
 182   void log_register_nmethod(nmethod* nm);
 183   void log_unregister_nmethod(nmethod* nm);
 184   void log_flush_nmethod(nmethod* nm);
 185 };
 186 
 187 class ShenandoahConcurrentNMethodIterator {
 188 private:
 189   ShenandoahNMethodTable*         const _table;
 190   ShenandoahNMethodTableSnapshot*       _table_snapshot;
 191 
 192 public:
 193   ShenandoahConcurrentNMethodIterator(ShenandoahNMethodTable* table);
 194 
 195   void nmethods_do_begin();
 196   void nmethods_do(NMethodClosure* cl);
 197   void nmethods_do_end();
 198 };
 199 














 200 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHNMETHOD_HPP


 180 
 181   // Logging support
 182   void log_register_nmethod(nmethod* nm);
 183   void log_unregister_nmethod(nmethod* nm);
 184   void log_flush_nmethod(nmethod* nm);
 185 };
 186 
 187 class ShenandoahConcurrentNMethodIterator {
 188 private:
 189   ShenandoahNMethodTable*         const _table;
 190   ShenandoahNMethodTableSnapshot*       _table_snapshot;
 191 
 192 public:
 193   ShenandoahConcurrentNMethodIterator(ShenandoahNMethodTable* table);
 194 
 195   void nmethods_do_begin();
 196   void nmethods_do(NMethodClosure* cl);
 197   void nmethods_do_end();
 198 };
 199 
 200 // This locker aborts acquiring per-nmethod lock if heap encountered OOM.
 201 class ShenandoahAbortableNMethodLocker : public StackObj {
 202 private:
 203   ShenandoahHeap*          const _heap;
 204   ShenandoahReentrantLock* const _lock;
 205   bool                     _aborted;
 206 
 207 public:
 208   ShenandoahAbortableNMethodLocker(ShenandoahReentrantLock* lock);
 209   ~ShenandoahAbortableNMethodLocker();
 210 
 211   bool aborted() const { return _aborted; }
 212 };
 213 
 214 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHNMETHOD_HPP
< prev index next >