void verify_do_work_called_by(uint num_workers) {
ASSERT_EQ(Atomic::load(&_num_do_work), num_workers); // Do not need to check the _do_work_called_by array. The count is already verified // by above statement, and we already check that a given flag is only set once.
}
public: // Actual use of GCParPhasesSentinel will cause an assertion failure when trying // to add timing information - this should be disabled here.
G1TestSubTask() : G1AbstractSubTask(G1GCPhaseTimes::GCParPhasesSentinel),
_phase(0),
_num_do_work(0),
_do_work_called_by(nullptr),
_max_workers(0) {
check_and_inc_phase(0);
}
// Called by G1BatchedTask to provide information about the maximum // number of workers for all subtasks after it has been determined. void set_max_workers(uint max_workers) override {
assert(max_workers >= 1, "must be");
check_and_inc_phase(2);
_do_work_called_by = NEW_C_HEAP_ARRAY(bool, max_workers, mtInternal); for (uint i = 0; i < max_workers; i++) {
_do_work_called_by[i] = false;
}
_max_workers = max_workers;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.