8373253: Re-work InjectGCWorkerCreationFailure for future changes

This commit is contained in:
Leo Korinth 2025-12-09 13:29:20 +01:00
parent 713de231a6
commit d45ea8817a

View File

@ -94,9 +94,6 @@ void WorkerThreads::initialize_workers() {
}
WorkerThread* WorkerThreads::create_worker(uint name_suffix) {
if (is_init_completed() && InjectGCWorkerCreationFailure) {
return nullptr;
}
WorkerThread* const worker = new WorkerThread(_name, name_suffix, &_dispatcher);
@ -117,6 +114,13 @@ uint WorkerThreads::set_active_workers(uint num_workers) {
"Invalid number of active workers %u (should be 1-%u)",
num_workers, _max_workers);
if (_created_workers > 0 && InjectGCWorkerCreationFailure) {
assert(is_init_completed(), "Would be interesting to see if this ever happens");
log_error(gc, task)("Failed to create worker thread (InjectGCWorkerCreationFailure)");
_active_workers = MIN2(_created_workers, num_workers);
return _active_workers;
}
while (_created_workers < num_workers) {
WorkerThread* const worker = create_worker(_created_workers);
if (worker == nullptr) {