src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp
changeset 59249 29b0d0b61615
parent 59139 302c4d2e7b3a
equal deleted inserted replaced
59248:e92153ed8bdc 59249:29b0d0b61615
   259   }
   259   }
   260 
   260 
   261   virtual void work(uint worker_id) {
   261   virtual void work(uint worker_id) {
   262     size_t const actual_chunk_size = MAX2(chunk_size(), _page_size);
   262     size_t const actual_chunk_size = MAX2(chunk_size(), _page_size);
   263     while (true) {
   263     while (true) {
   264       char* touch_addr = Atomic::add(actual_chunk_size, &_cur_addr) - actual_chunk_size;
   264       char* touch_addr = Atomic::add(&_cur_addr, actual_chunk_size) - actual_chunk_size;
   265       if (touch_addr < _start_addr || touch_addr >= _end_addr) {
   265       if (touch_addr < _start_addr || touch_addr >= _end_addr) {
   266         break;
   266         break;
   267       }
   267       }
   268       char* end_addr = touch_addr + MIN2(actual_chunk_size, pointer_delta(_end_addr, touch_addr, sizeof(char)));
   268       char* end_addr = touch_addr + MIN2(actual_chunk_size, pointer_delta(_end_addr, touch_addr, sizeof(char)));
   269       os::pretouch_memory(touch_addr, end_addr, _page_size);
   269       os::pretouch_memory(touch_addr, end_addr, _page_size);