< prev index next >

src/hotspot/share/gc/g1/g1StringDedup.cpp

Print this page




 193 
 194 G1StringDedupUnlinkOrOopsDoClosure::~G1StringDedupUnlinkOrOopsDoClosure() {
 195   assert(!is_resizing() || !is_rehashing(), "Can not both resize and rehash");
 196   if (is_resizing()) {
 197     G1StringDedupTable::finish_resize(_resized_table);
 198   } else if (is_rehashing()) {
 199     G1StringDedupTable::finish_rehash(_rehashed_table);
 200   }
 201 }
 202 
 203 // Atomically claims the next available queue for exclusive access by
 204 // the current thread. Returns the queue number of the claimed queue.
 205 size_t G1StringDedupUnlinkOrOopsDoClosure::claim_queue() {
 206   return Atomic::add((size_t)1, &_next_queue) - 1;
 207 }
 208 
 209 // Atomically claims the next available table partition for exclusive
 210 // access by the current thread. Returns the table bucket number where
 211 // the claimed partition starts.
 212 size_t G1StringDedupUnlinkOrOopsDoClosure::claim_table_partition(size_t partition_size) {
 213   return (size_t)Atomic::add(partition_size, &_next_bucket) - partition_size;
 214 }


 193 
 194 G1StringDedupUnlinkOrOopsDoClosure::~G1StringDedupUnlinkOrOopsDoClosure() {
 195   assert(!is_resizing() || !is_rehashing(), "Can not both resize and rehash");
 196   if (is_resizing()) {
 197     G1StringDedupTable::finish_resize(_resized_table);
 198   } else if (is_rehashing()) {
 199     G1StringDedupTable::finish_rehash(_rehashed_table);
 200   }
 201 }
 202 
 203 // Atomically claims the next available queue for exclusive access by
 204 // the current thread. Returns the queue number of the claimed queue.
 205 size_t G1StringDedupUnlinkOrOopsDoClosure::claim_queue() {
 206   return Atomic::add((size_t)1, &_next_queue) - 1;
 207 }
 208 
 209 // Atomically claims the next available table partition for exclusive
 210 // access by the current thread. Returns the table bucket number where
 211 // the claimed partition starts.
 212 size_t G1StringDedupUnlinkOrOopsDoClosure::claim_table_partition(size_t partition_size) {
 213   return Atomic::add(partition_size, &_next_bucket) - partition_size;
 214 }
< prev index next >