< prev index next >
src/share/vm/gc/g1/workerDataArray.hpp
Print this page
rev 13028 : imported patch 8178148-more-detailed-scan-rs-logging
rev 13030 : imported patch 8178148-workerdata-add
@@ -31,24 +31,29 @@
class outputStream;
template <class T>
class WorkerDataArray : public CHeapObj<mtGC> {
friend class WDAPrinter;
+public:
+ static const uint MaxThreadWorkItems = 3;
+private:
T* _data;
uint _length;
const char* _title;
- WorkerDataArray<size_t>* _thread_work_items;
+ WorkerDataArray<size_t>* _thread_work_items[MaxThreadWorkItems];
public:
WorkerDataArray(uint length, const char* title);
~WorkerDataArray();
- void link_thread_work_items(WorkerDataArray<size_t>* thread_work_items);
- void set_thread_work_item(uint worker_i, size_t value);
- WorkerDataArray<size_t>* thread_work_items() const {
- return _thread_work_items;
+ void link_thread_work_items(WorkerDataArray<size_t>* thread_work_items, uint index = 0);
+ void set_thread_work_item(uint worker_i, size_t value, uint index = 0);
+ void add_thread_work_item(uint worker_i, size_t value, uint index = 0);
+ WorkerDataArray<size_t>* thread_work_items(uint index = 0) const {
+ assert(index < MaxThreadWorkItems, "Tried to access thread work item %u max %u", index, MaxThreadWorkItems);
+ return _thread_work_items[index];
}
static T uninitialized();
void set(uint worker_i, T value);
< prev index next >