src/hotspot/share/jfr/recorder/storage/jfrStorageControl.cpp
changeset 59252 623722a6aeb9
parent 58863 c16ac7a2eba4
equal deleted inserted replaced
59251:4cbfa5077d68 59252:623722a6aeb9
    32   size_t compare_value;
    32   size_t compare_value;
    33   size_t exchange_value;
    33   size_t exchange_value;
    34   do {
    34   do {
    35     compare_value = *dest;
    35     compare_value = *dest;
    36     exchange_value = compare_value + value;
    36     exchange_value = compare_value + value;
    37   } while (Atomic::cmpxchg(exchange_value, dest, compare_value) != compare_value);
    37   } while (Atomic::cmpxchg(dest, compare_value, exchange_value) != compare_value);
    38   return exchange_value;
    38   return exchange_value;
    39 }
    39 }
    40 
    40 
    41 static jlong atomic_dec(size_t volatile* const dest) {
    41 static jlong atomic_dec(size_t volatile* const dest) {
    42   size_t compare_value;
    42   size_t compare_value;
    43   size_t exchange_value;
    43   size_t exchange_value;
    44   do {
    44   do {
    45     compare_value = *dest;
    45     compare_value = *dest;
    46     assert(compare_value >= 1, "invariant");
    46     assert(compare_value >= 1, "invariant");
    47     exchange_value = compare_value - 1;
    47     exchange_value = compare_value - 1;
    48   } while (Atomic::cmpxchg(exchange_value, dest, compare_value) != compare_value);
    48   } while (Atomic::cmpxchg(dest, compare_value, exchange_value) != compare_value);
    49   return exchange_value;
    49   return exchange_value;
    50 }
    50 }
    51 
    51 
    52 const size_t max_lease_factor = 2;
    52 const size_t max_lease_factor = 2;
    53 JfrStorageControl::JfrStorageControl(size_t global_count_total, size_t in_memory_discard_threshold) :
    53 JfrStorageControl::JfrStorageControl(size_t global_count_total, size_t in_memory_discard_threshold) :
   135 }
   135 }
   136 
   136 
   137 void JfrStorageControl::set_scavenge_threshold(size_t number_of_dead_buffers) {
   137 void JfrStorageControl::set_scavenge_threshold(size_t number_of_dead_buffers) {
   138   _scavenge_threshold = number_of_dead_buffers;
   138   _scavenge_threshold = number_of_dead_buffers;
   139 }
   139 }
   140