mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-17 01:24:33 +02:00
8214202: DirtyCardQueueSet::get_completed_buffer should not clear _process_completed
Remove flag clearing and simplify get_completed-buffer. Reviewed-by: tschatzl, sjohanss
This commit is contained in:
parent
5d725a98c8
commit
5c99d95a63
2 changed files with 11 additions and 12 deletions
|
@ -221,23 +221,22 @@ bool DirtyCardQueueSet::mut_process_buffer(BufferNode* node) {
|
||||||
|
|
||||||
|
|
||||||
BufferNode* DirtyCardQueueSet::get_completed_buffer(size_t stop_at) {
|
BufferNode* DirtyCardQueueSet::get_completed_buffer(size_t stop_at) {
|
||||||
BufferNode* nd = NULL;
|
|
||||||
MutexLockerEx x(_cbl_mon, Mutex::_no_safepoint_check_flag);
|
MutexLockerEx x(_cbl_mon, Mutex::_no_safepoint_check_flag);
|
||||||
|
|
||||||
if (_n_completed_buffers <= stop_at) {
|
if (_n_completed_buffers <= stop_at) {
|
||||||
_process_completed = false;
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_completed_buffers_head != NULL) {
|
assert(_n_completed_buffers > 0, "invariant");
|
||||||
nd = _completed_buffers_head;
|
assert(_completed_buffers_head != NULL, "invariant");
|
||||||
assert(_n_completed_buffers > 0, "Invariant");
|
assert(_completed_buffers_tail != NULL, "invariant");
|
||||||
_completed_buffers_head = nd->next();
|
|
||||||
_n_completed_buffers--;
|
BufferNode* nd = _completed_buffers_head;
|
||||||
if (_completed_buffers_head == NULL) {
|
_completed_buffers_head = nd->next();
|
||||||
assert(_n_completed_buffers == 0, "Invariant");
|
_n_completed_buffers--;
|
||||||
_completed_buffers_tail = NULL;
|
if (_completed_buffers_head == NULL) {
|
||||||
}
|
assert(_n_completed_buffers == 0, "Invariant");
|
||||||
|
_completed_buffers_tail = NULL;
|
||||||
}
|
}
|
||||||
DEBUG_ONLY(assert_completed_buffer_list_len_correct_locked());
|
DEBUG_ONLY(assert_completed_buffer_list_len_correct_locked());
|
||||||
return nd;
|
return nd;
|
||||||
|
|
|
@ -327,7 +327,7 @@ void PtrQueueSet::merge_bufferlists(PtrQueueSet *src) {
|
||||||
|
|
||||||
void PtrQueueSet::notify_if_necessary() {
|
void PtrQueueSet::notify_if_necessary() {
|
||||||
MutexLockerEx x(_cbl_mon, Mutex::_no_safepoint_check_flag);
|
MutexLockerEx x(_cbl_mon, Mutex::_no_safepoint_check_flag);
|
||||||
assert(_process_completed_threshold >= 0, "_process_completed is negative");
|
assert(_process_completed_threshold >= 0, "_process_completed_threshold is negative");
|
||||||
if (_n_completed_buffers >= (size_t)_process_completed_threshold || _max_completed_queue == 0) {
|
if (_n_completed_buffers >= (size_t)_process_completed_threshold || _max_completed_queue == 0) {
|
||||||
_process_completed = true;
|
_process_completed = true;
|
||||||
if (_notify_when_complete)
|
if (_notify_when_complete)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue