< prev index next >

src/share/vm/gc/g1/workerDataArray.inline.hpp

Print this page
rev 12944 : imported patch 8178148-more-detailed-scan-rs-logging

*** 30,44 **** #include "utilities/ostream.hpp" template <typename T> WorkerDataArray<T>::WorkerDataArray(uint length, const char* title) : _title(title), ! _length(0), ! _thread_work_items(NULL) { assert(length > 0, "Must have some workers to store data for"); _length = length; _data = NEW_C_HEAP_ARRAY(T, _length, mtGC); reset(); } template <typename T> void WorkerDataArray<T>::set(uint worker_i, T value) { --- 30,46 ---- #include "utilities/ostream.hpp" template <typename T> WorkerDataArray<T>::WorkerDataArray(uint length, const char* title) : _title(title), ! _length(0) { assert(length > 0, "Must have some workers to store data for"); _length = length; _data = NEW_C_HEAP_ARRAY(T, _length, mtGC); + for (uint i = 0; i < MaxThreadWorkItems; i++) { + _thread_work_items[i] = NULL; + } reset(); } template <typename T> void WorkerDataArray<T>::set(uint worker_i, T value) {
*** 57,74 **** WorkerDataArray<T>::~WorkerDataArray() { FREE_C_HEAP_ARRAY(T, _data); } template <typename T> ! void WorkerDataArray<T>::link_thread_work_items(WorkerDataArray<size_t>* thread_work_items) { ! _thread_work_items = thread_work_items; } template <typename T> ! void WorkerDataArray<T>::set_thread_work_item(uint worker_i, size_t value) { ! assert(_thread_work_items != NULL, "No sub count"); ! _thread_work_items->set(worker_i, value); } template <typename T> void WorkerDataArray<T>::add(uint worker_i, T value) { assert(worker_i < _length, "Worker %d is greater than max: %d", worker_i, _length); --- 59,78 ---- WorkerDataArray<T>::~WorkerDataArray() { FREE_C_HEAP_ARRAY(T, _data); } template <typename T> ! void WorkerDataArray<T>::link_thread_work_items(WorkerDataArray<size_t>* thread_work_items, uint index) { ! assert(index < MaxThreadWorkItems, "Tried to access thread work item %u max %u", index, MaxThreadWorkItems); ! _thread_work_items[index] = thread_work_items; } template <typename T> ! void WorkerDataArray<T>::set_thread_work_item(uint worker_i, size_t value, uint index) { ! assert(index < MaxThreadWorkItems, "Tried to access thread work item %u max %u", index, MaxThreadWorkItems); ! assert(_thread_work_items[index] != NULL, "No sub count"); ! _thread_work_items[index]->set(worker_i, value); } template <typename T> void WorkerDataArray<T>::add(uint worker_i, T value) { assert(worker_i < _length, "Worker %d is greater than max: %d", worker_i, _length);
*** 146,156 **** } template <typename T> void WorkerDataArray<T>::reset() { set_all(uninitialized()); ! if (_thread_work_items != NULL) { ! _thread_work_items->reset(); } } #endif // SHARE_VM_GC_G1_WORKERDATAARRAY_INLINE_HPP --- 150,162 ---- } template <typename T> void WorkerDataArray<T>::reset() { set_all(uninitialized()); ! for (uint i = 0; i < MaxThreadWorkItems; i++) { ! if (_thread_work_items[i] != NULL) { ! _thread_work_items[i]->reset(); ! } } } #endif // SHARE_VM_GC_G1_WORKERDATAARRAY_INLINE_HPP
< prev index next >