< prev index next >

src/hotspot/share/gc/z/zNMethodTable.hpp

Print this page




  24 #ifndef SHARE_GC_Z_ZNMETHODTABLE_HPP
  25 #define SHARE_GC_Z_ZNMETHODTABLE_HPP
  26 
  27 #include "gc/z/zArray.hpp"
  28 #include "gc/z/zGlobals.hpp"
  29 #include "gc/z/zLock.hpp"
  30 #include "gc/z/zNMethodTableEntry.hpp"
  31 #include "memory/allocation.hpp"
  32 
  33 class ZWorkers;
  34 
  35 class ZNMethodTableEntryClosure {
  36 public:
  37   virtual void do_nmethod_entry(ZNMethodTableEntry entry) = 0;
  38 };
  39 
  40 class ZNMethodTable : public AllStatic {
  41 private:
  42   static ZNMethodTableEntry* _table;
  43   static size_t              _size;
  44   static ZLock               _iter_lock;
  45   static ZNMethodTableEntry* _iter_table;
  46   static size_t              _iter_table_size;
  47   static ZArray<void*>       _iter_deferred_deletes;
  48   static size_t              _nregistered;
  49   static size_t              _nunregistered;
  50   static volatile size_t     _claimed ATTRIBUTE_ALIGNED(ZCacheLineSize);
  51 
  52   static ZNMethodTableEntry create_entry(nmethod* nm);
  53 
  54   static size_t first_index(const nmethod* nm, size_t size);
  55   static size_t next_index(size_t prev_index, size_t size);
  56 
  57   static void wait_until_iteration_done();
  58 
  59   static bool register_entry(ZNMethodTableEntry* table, size_t size, ZNMethodTableEntry entry);
  60   static void unregister_entry(ZNMethodTableEntry* table, size_t size, nmethod* nm);
  61 
  62   static void rebuild(size_t new_size);
  63   static void rebuild_if_needed();
  64 




  24 #ifndef SHARE_GC_Z_ZNMETHODTABLE_HPP
  25 #define SHARE_GC_Z_ZNMETHODTABLE_HPP
  26 
  27 #include "gc/z/zArray.hpp"
  28 #include "gc/z/zGlobals.hpp"
  29 #include "gc/z/zLock.hpp"
  30 #include "gc/z/zNMethodTableEntry.hpp"
  31 #include "memory/allocation.hpp"
  32 
  33 class ZWorkers;
  34 
  35 class ZNMethodTableEntryClosure {
  36 public:
  37   virtual void do_nmethod_entry(ZNMethodTableEntry entry) = 0;
  38 };
  39 
  40 class ZNMethodTable : public AllStatic {
  41 private:
  42   static ZNMethodTableEntry* _table;
  43   static size_t              _size;

  44   static ZNMethodTableEntry* _iter_table;
  45   static size_t              _iter_table_size;
  46   static ZArray<void*>       _iter_deferred_deletes;
  47   static size_t              _nregistered;
  48   static size_t              _nunregistered;
  49   static volatile size_t     _claimed ATTRIBUTE_ALIGNED(ZCacheLineSize);
  50 
  51   static ZNMethodTableEntry create_entry(nmethod* nm);
  52 
  53   static size_t first_index(const nmethod* nm, size_t size);
  54   static size_t next_index(size_t prev_index, size_t size);
  55 
  56   static void wait_until_iteration_done();
  57 
  58   static bool register_entry(ZNMethodTableEntry* table, size_t size, ZNMethodTableEntry entry);
  59   static void unregister_entry(ZNMethodTableEntry* table, size_t size, nmethod* nm);
  60 
  61   static void rebuild(size_t new_size);
  62   static void rebuild_if_needed();
  63 


< prev index next >