< 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 >