< prev index next >
src/hotspot/share/utilities/concurrentHashTableTasks.inline.hpp
Print this page
*** 51,61 ****
: _cht(cht), _next_to_claim(0), _task_size_log2(DEFAULT_TASK_SIZE_LOG2),
_stop_task(0), _size_log2(0), _is_mt(is_mt) {}
// Returns true if you succeeded to claim the range start -> (stop-1).
bool claim(size_t* start, size_t* stop) {
! size_t claimed = Atomic::add((size_t)1, &_next_to_claim) - 1;
if (claimed >= _stop_task) {
return false;
}
*start = claimed * (((size_t)1) << _task_size_log2);
*stop = ((*start) + (((size_t)1) << _task_size_log2));
--- 51,61 ----
: _cht(cht), _next_to_claim(0), _task_size_log2(DEFAULT_TASK_SIZE_LOG2),
_stop_task(0), _size_log2(0), _is_mt(is_mt) {}
// Returns true if you succeeded to claim the range start -> (stop-1).
bool claim(size_t* start, size_t* stop) {
! size_t claimed = Atomic::add(&_next_to_claim, (size_t)1) - 1;
if (claimed >= _stop_task) {
return false;
}
*start = claimed * (((size_t)1) << _task_size_log2);
*stop = ((*start) + (((size_t)1) << _task_size_log2));
< prev index next >