< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp

Print this page
@@ -1203,17 +1203,18 @@
  
  class ShenandoahGCStatePropagatorHandshakeClosure : public HandshakeClosure {
  public:
    explicit ShenandoahGCStatePropagatorHandshakeClosure(char gc_state) :
      HandshakeClosure("Shenandoah GC State Change"),
-     _gc_state(gc_state) {}
+     _gc_state(gc_state), _gc_state_fast(ShenandoahThreadLocalData::compute_gc_state_fast(gc_state)) {}
  
    void do_thread(Thread* thread) override {
-     ShenandoahThreadLocalData::set_gc_state(thread, _gc_state);
+     ShenandoahThreadLocalData::set_gc_state(thread, _gc_state, _gc_state_fast);
    }
  private:
    char _gc_state;
+   char _gc_state_fast;
  };
  
  class ShenandoahPrepareForUpdateRefsHandshakeClosure : public HandshakeClosure {
  public:
    explicit ShenandoahPrepareForUpdateRefsHandshakeClosure(char gc_state) :
< prev index next >