hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp
(ここのコメントは ConcurrentMarkSweepThread::makeSurrogateLockerThread() と同じような... というかクラス名まで ConcurrentMarkSweepThread のままだが, せめてそのくらいは変えた方がいいような...)
// Note: this method, although exported by the ConcurrentMarkSweepThread,
// which is a non-JavaThread, can only be called by a JavaThread.
// Currently this is done at vm creation time (post-vm-init) by the
// main/Primordial (Java)Thread.
// XXX Consider changing this in the future to allow the CMS thread
// itself to create this thread?
void ConcurrentMarkThread::makeSurrogateLockerThread(TRAPS) {
{- -------------------------------------------
(1) (assert)
---------------------------------------- -}
assert(_slt == NULL, "SLT already created");
{- -------------------------------------------
(1) SurrogateLockerThread::make() で SurrogateLockerThread を生成し, _slt フィールドに格納する.
---------------------------------------- -}
_slt = SurrogateLockerThread::make(THREAD);
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.