< prev index next >

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

Print this page

37 
38 class frame;
39 class JavaThread;
40 
41 class ShenandoahOnStackNMethodClosure : public NMethodClosure {
42 private:
43   BarrierSetNMethod* _bs_nm;
44 
45   void do_nmethod(nmethod* nm);
46 public:
47   ShenandoahOnStackNMethodClosure();
48 };
49 
50 class ShenandoahStackWatermark : public StackWatermark {
51 private:
52   static uint32_t                      _epoch_id;
53   ShenandoahHeap* const                _heap;
54   ThreadLocalAllocStats                _stats;
55 
56   // Closures

57   ShenandoahKeepAliveClosure           _keep_alive_cl;
58   ShenandoahEvacuateUpdateRootsClosure _evac_update_oop_cl;
59   ShenandoahOnStackNMethodClosure      _nm_cl;
60 public:
61   ShenandoahStackWatermark(JavaThread* jt);
62   ThreadLocalAllocStats& stats();
63 
64   static void change_epoch_id();
65 private:
66   OopClosure* closure_from_context(void* context);
67   uint32_t epoch_id() const;
68   void start_processing_impl(void* context);
69   void process(const frame& fr, RegisterMap& register_map, void* context);
70 
71   void retire_tlab();
72 };
73 
74 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHSTACKWATERMARK_HPP

37 
38 class frame;
39 class JavaThread;
40 
41 class ShenandoahOnStackNMethodClosure : public NMethodClosure {
42 private:
43   BarrierSetNMethod* _bs_nm;
44 
45   void do_nmethod(nmethod* nm);
46 public:
47   ShenandoahOnStackNMethodClosure();
48 };
49 
50 class ShenandoahStackWatermark : public StackWatermark {
51 private:
52   static uint32_t                      _epoch_id;
53   ShenandoahHeap* const                _heap;
54   ThreadLocalAllocStats                _stats;
55 
56   // Closures
57   ShenandoahNoOpClosure                _no_op_cl;
58   ShenandoahKeepAliveClosure           _keep_alive_cl;
59   ShenandoahEvacuateUpdateRootsClosure _evac_update_oop_cl;
60   ShenandoahOnStackNMethodClosure      _nm_cl;
61 public:
62   ShenandoahStackWatermark(JavaThread* jt);
63   ThreadLocalAllocStats& stats();
64 
65   static void change_epoch_id();
66 private:
67   OopClosure* closure_from_context(void* context);
68   uint32_t epoch_id() const;
69   void start_processing_impl(void* context);
70   void process(const frame& fr, RegisterMap& register_map, void* context);
71 
72   void retire_tlab();
73 };
74 
75 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHSTACKWATERMARK_HPP
< prev index next >