src/share/vm/gc/g1/dirtyCardQueue.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/gc/g1/dirtyCardQueue.cpp

src/share/vm/gc/g1/dirtyCardQueue.cpp

Print this page

        

*** 164,175 **** } void DirtyCardQueueSet::initialize(CardTableEntryClosure* cl, Monitor* cbl_mon, Mutex* fl_lock, ! int process_completed_threshold, ! int max_completed_queue, Mutex* lock, DirtyCardQueueSet* fl_owner, bool init_free_ids) { _mut_process_closure = cl; PtrQueueSet::initialize(cbl_mon, --- 164,175 ---- } void DirtyCardQueueSet::initialize(CardTableEntryClosure* cl, Monitor* cbl_mon, Mutex* fl_lock, ! size_t process_completed_threshold, ! size_t max_completed_queue, Mutex* lock, DirtyCardQueueSet* fl_owner, bool init_free_ids) { _mut_process_closure = cl; PtrQueueSet::initialize(cbl_mon,
*** 205,230 **** return b; } ! BufferNode* DirtyCardQueueSet::get_completed_buffer(int stop_at) { BufferNode* nd = NULL; MutexLockerEx x(_cbl_mon, Mutex::_no_safepoint_check_flag); ! if ((int)_n_completed_buffers <= stop_at) { _process_completed = false; return NULL; } if (_completed_buffers_head != NULL) { nd = _completed_buffers_head; _completed_buffers_head = nd->next(); if (_completed_buffers_head == NULL) _completed_buffers_tail = NULL; _n_completed_buffers--; - assert(_n_completed_buffers >= 0, "Invariant"); } DEBUG_ONLY(assert_completed_buffer_list_len_correct_locked()); return nd; } --- 205,230 ---- return b; } ! BufferNode* DirtyCardQueueSet::get_completed_buffer(size_t stop_at) { BufferNode* nd = NULL; MutexLockerEx x(_cbl_mon, Mutex::_no_safepoint_check_flag); ! if ((size_t)_n_completed_buffers <= stop_at) { _process_completed = false; return NULL; } if (_completed_buffers_head != NULL) { nd = _completed_buffers_head; _completed_buffers_head = nd->next(); if (_completed_buffers_head == NULL) _completed_buffers_tail = NULL; + assert(_n_completed_buffers > 0, "Invariant"); _n_completed_buffers--; } DEBUG_ONLY(assert_completed_buffer_list_len_correct_locked()); return nd; }
*** 250,260 **** } } bool DirtyCardQueueSet::apply_closure_to_completed_buffer(CardTableEntryClosure* cl, uint worker_i, ! int stop_at, bool during_pause) { assert(!during_pause || stop_at == 0, "Should not leave any completed buffers during a pause"); BufferNode* nd = get_completed_buffer(stop_at); bool res = apply_closure_to_completed_buffer_helper(cl, worker_i, nd); if (res) Atomic::inc(&_processed_buffers_rs_thread); --- 250,260 ---- } } bool DirtyCardQueueSet::apply_closure_to_completed_buffer(CardTableEntryClosure* cl, uint worker_i, ! size_t stop_at, bool during_pause) { assert(!during_pause || stop_at == 0, "Should not leave any completed buffers during a pause"); BufferNode* nd = get_completed_buffer(stop_at); bool res = apply_closure_to_completed_buffer_helper(cl, worker_i, nd); if (res) Atomic::inc(&_processed_buffers_rs_thread);
*** 328,338 **** void DirtyCardQueueSet::concatenate_logs() { // Iterate over all the threads, if we find a partial log add it to // the global list of logs. Temporarily turn off the limit on the number // of outstanding buffers. ! int save_max_completed_queue = _max_completed_queue; _max_completed_queue = max_jint; assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); for (JavaThread* t = Threads::first(); t; t = t->next()) { DirtyCardQueue& dcq = t->dirty_card_queue(); if (dcq.size() != 0) { --- 328,338 ---- void DirtyCardQueueSet::concatenate_logs() { // Iterate over all the threads, if we find a partial log add it to // the global list of logs. Temporarily turn off the limit on the number // of outstanding buffers. ! size_t save_max_completed_queue = _max_completed_queue; _max_completed_queue = max_jint; assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); for (JavaThread* t = Threads::first(); t; t = t->next()) { DirtyCardQueue& dcq = t->dirty_card_queue(); if (dcq.size() != 0) {
src/share/vm/gc/g1/dirtyCardQueue.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File