160
161 // Update the index after we have set up the entry correctly since
162 // GCTaskThread::print_task_time_stamps() may read this value concurrently.
163 _time_stamp_index++;
164 }
165 } else {
166 // idle tasks complete outside the normal accounting
167 // so that a task can complete without waiting for idle tasks.
168 // They have to be terminated separately.
169 IdleGCTask::destroy((IdleGCTask*)task);
170 set_is_working(true);
171 }
172
173 // Check if we should release our inner resources.
174 if (manager()->should_release_resources(which())) {
175 manager()->note_release(which());
176 break;
177 }
178 }
179 }
180 }
|
160
161 // Update the index after we have set up the entry correctly since
162 // GCTaskThread::print_task_time_stamps() may read this value concurrently.
163 _time_stamp_index++;
164 }
165 } else {
166 // idle tasks complete outside the normal accounting
167 // so that a task can complete without waiting for idle tasks.
168 // They have to be terminated separately.
169 IdleGCTask::destroy((IdleGCTask*)task);
170 set_is_working(true);
171 }
172
173 // Check if we should release our inner resources.
174 if (manager()->should_release_resources(which())) {
175 manager()->note_release(which());
176 break;
177 }
178 }
179 }
180 NOT_PRODUCT(ShouldNotReachHere()); // should never terminate
181 }
|