equal
deleted
inserted
replaced
2417 while (!has_aborted() && |
2417 while (!has_aborted() && |
2418 satb_mq_set.apply_closure_to_completed_buffer(&satb_cl)) { |
2418 satb_mq_set.apply_closure_to_completed_buffer(&satb_cl)) { |
2419 abort_marking_if_regular_check_fail(); |
2419 abort_marking_if_regular_check_fail(); |
2420 } |
2420 } |
2421 |
2421 |
|
2422 // Can't assert qset is empty here, even if not aborted. If concurrent, |
|
2423 // some other thread might be adding to the queue. If not concurrent, |
|
2424 // some other thread might have won the race for the last buffer, but |
|
2425 // has not yet decremented the count. |
|
2426 |
2422 _draining_satb_buffers = false; |
2427 _draining_satb_buffers = false; |
2423 |
|
2424 assert(has_aborted() || |
|
2425 _cm->concurrent() || |
|
2426 satb_mq_set.completed_buffers_num() == 0, "invariant"); |
|
2427 |
2428 |
2428 // again, this was a potentially expensive operation, decrease the |
2429 // again, this was a potentially expensive operation, decrease the |
2429 // limits to get the regular clock call early |
2430 // limits to get the regular clock call early |
2430 decrease_limits(); |
2431 decrease_limits(); |
2431 } |
2432 } |