Print this page
rev 6902 : 8062036: ConcurrentMarkThread::slt may be invoked before ConcurrentMarkThread::makeSurrogateLockerThread causing intermittent crashes
Summary: Suppress gc_alot during VM init, improve error for SLT uninitialized.
Reviewed-by: jmasa, brutisso, tschatzl

Split Split Close
Expand all
Collapse all
          --- old/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp
          +++ new/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp
↓ open down ↓ 85 lines elided ↑ open up ↑
  86   86    };
  87   87   private:
  88   88    // the following are shared with the CMSThread
  89   89    SLT_msg_type  _buffer;  // communication buffer
  90   90    Monitor       _monitor; // monitor controlling buffer
  91   91    BasicLock     _basicLock; // used for PLL locking
  92   92  
  93   93   public:
  94   94    static SurrogateLockerThread* make(TRAPS);
  95   95  
       96 +  // Terminate VM with error message that SLT needed but not yet created.
       97 +  static void report_missing_slt();
       98 +
  96   99    SurrogateLockerThread();
  97  100  
  98  101    bool is_hidden_from_external_view() const     { return true; }
  99  102  
 100  103    void loop(); // main method
 101  104  
 102  105    void manipulatePLL(SLT_msg_type msg);
 103  106  
 104  107  };
 105  108  
 106  109  #endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_CONCURRENTGCTHREAD_HPP
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX