Unfortunately, that was based on a mis-understanding of the current meaning of the stop_at parameter. The problem is in DCQS::get_completed_buffer, which contains
if (_n_completed_buffers <= stop_at) {
_process_completed = false;
return NULL;
}
With the old green_zone value for stop_at, any concurrent refinement thread would only stop here when the the number of completed buffers fell to green_zone, at which point _process_completed would be set false, which is used by the primary refinement thread to determine whether it should be active.
- relates to
-
JDK-8150134 Simplify concurrent refinement thread deactivation
-
- Resolved
-
-
JDK-8133051 Concurrent refinement threads may be activated and deactivated at random
-
- Closed
-