hotspot/src/share/vm/runtime/thread.cpp
changeset 37129 af29e306e50b
parent 36405 e38c9a1ee108
child 37161 e881f320966e
equal deleted inserted replaced
37128:ea9e0371b8e6 37129:af29e306e50b
    32 #include "code/scopeDesc.hpp"
    32 #include "code/scopeDesc.hpp"
    33 #include "compiler/compileBroker.hpp"
    33 #include "compiler/compileBroker.hpp"
    34 #include "compiler/compileTask.hpp"
    34 #include "compiler/compileTask.hpp"
    35 #include "gc/shared/gcId.hpp"
    35 #include "gc/shared/gcId.hpp"
    36 #include "gc/shared/gcLocker.inline.hpp"
    36 #include "gc/shared/gcLocker.inline.hpp"
       
    37 #include "gc/shared/referencePendingListLocker.hpp"
    37 #include "gc/shared/workgroup.hpp"
    38 #include "gc/shared/workgroup.hpp"
    38 #include "interpreter/interpreter.hpp"
    39 #include "interpreter/interpreter.hpp"
    39 #include "interpreter/linkResolver.hpp"
    40 #include "interpreter/linkResolver.hpp"
    40 #include "interpreter/oopMapCache.hpp"
    41 #include "interpreter/oopMapCache.hpp"
    41 #include "jvmtifiles/jvmtiEnv.hpp"
    42 #include "jvmtifiles/jvmtiEnv.hpp"
  3648   // Note that we do not use CHECK_0 here since we are inside an EXCEPTION_MARK and
  3649   // Note that we do not use CHECK_0 here since we are inside an EXCEPTION_MARK and
  3649   // set_init_completed has just been called, causing exceptions not to be shortcut
  3650   // set_init_completed has just been called, causing exceptions not to be shortcut
  3650   // anymore. We call vm_exit_during_initialization directly instead.
  3651   // anymore. We call vm_exit_during_initialization directly instead.
  3651   SystemDictionary::compute_java_system_loader(CHECK_(JNI_ERR));
  3652   SystemDictionary::compute_java_system_loader(CHECK_(JNI_ERR));
  3652 
  3653 
  3653 #if INCLUDE_ALL_GCS
  3654   // Initialize reference pending list locker
  3654   // Support for ConcurrentMarkSweep. This should be cleaned up
  3655   bool needs_locker_thread = Universe::heap()->needs_reference_pending_list_locker_thread();
  3655   // and better encapsulated. The ugly nested if test would go away
  3656   ReferencePendingListLocker::initialize(needs_locker_thread, CHECK_JNI_ERR);
  3656   // once things are properly refactored. XXX YSR
       
  3657   if (UseConcMarkSweepGC || UseG1GC) {
       
  3658     if (UseConcMarkSweepGC) {
       
  3659       ConcurrentMarkSweepThread::makeSurrogateLockerThread(CHECK_JNI_ERR);
       
  3660     } else {
       
  3661       ConcurrentMarkThread::makeSurrogateLockerThread(CHECK_JNI_ERR);
       
  3662     }
       
  3663   }
       
  3664 #endif // INCLUDE_ALL_GCS
       
  3665 
  3657 
  3666   // Always call even when there are not JVMTI environments yet, since environments
  3658   // Always call even when there are not JVMTI environments yet, since environments
  3667   // may be attached late and JVMTI must track phases of VM execution
  3659   // may be attached late and JVMTI must track phases of VM execution
  3668   JvmtiExport::enter_live_phase();
  3660   JvmtiExport::enter_live_phase();
  3669 
  3661