< prev index next >
src/share/vm/gc/cms/concurrentMarkSweepThread.cpp
Print this page
rev 11747 : [mq]: per.hotspot.patch
*** 26,36 ****
#include "classfile/systemDictionary.hpp"
#include "gc/cms/concurrentMarkSweepGeneration.inline.hpp"
#include "gc/cms/concurrentMarkSweepThread.hpp"
#include "gc/shared/gcId.hpp"
#include "gc/shared/genCollectedHeap.hpp"
- #include "gc/shared/referencePendingListLocker.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/init.hpp"
#include "runtime/interfaceSupport.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
--- 26,35 ----
*** 75,101 ****
if (BindCMSThreadToCPU && !os::bind_to_processor(CPUForCMSThread)) {
log_warning(gc)("Couldn't bind CMS thread to processor " UINTX_FORMAT, CPUForCMSThread);
}
- {
- MutexLockerEx x(CGC_lock, true);
- set_CMS_flag(CMS_cms_wants_token);
- assert(is_init_completed() && Universe::is_fully_initialized(), "ConcurrentGCThread::run() should have waited for this.");
-
- // Wait until the surrogate locker thread that will do
- // pending list locking on our behalf has been created.
- // We cannot start the SLT thread ourselves since we need
- // to be a JavaThread to do so.
- CMSLoopCountWarn loopY("CMS::run", "waiting for SLT installation", 2);
- while (!ReferencePendingListLocker::is_initialized() && !should_terminate()) {
- CGC_lock->wait(true, 200);
- loopY.tick();
- }
- clear_CMS_flag(CMS_cms_wants_token);
- }
-
while (!should_terminate()) {
sleepBeforeNextCycle();
if (should_terminate()) break;
GCIdMark gc_id_mark;
GCCause::Cause cause = _collector->_full_gc_requested ?
--- 74,83 ----
< prev index next >