hotspot/src/share/vm/runtime/thread.hpp
// Requires that "collection_parity" is that of the current strong roots
// iteration. If "is_par" is false, sets the parity of "this" to
// "collection_parity", and returns "true". If "is_par" is true,
// uses an atomic instruction to set the current threads parity to
// "collection_parity", if it is not already. Returns "true" iff the
// calling thread does the update, this indicates that the calling thread
// has claimed the thread's stack as a root groop in the current
// collection.
bool claim_oops_do(bool is_par, int collection_parity) {
{- -------------------------------------------
(1) 並列処理しない場合 (= is_par 引数が false の場合)は,
(_oops_do_parity フィールドの値を collection_parity 引数に合わせた後, )
true をリターンするだけ.
並列処理する場合 (= is_par 引数が true の場合)は,
Thread::claim_oops_do_par_case() を呼び出してカレントスレッドが処理すべきかどうかを判定し,
結果をリターンする.
---------------------------------------- -}
if (!is_par) {
_oops_do_parity = collection_parity;
return true;
} else {
return claim_oops_do_par_case(collection_parity);
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.