src/hotspot/share/jfr/recorder/storage/jfrStorage.cpp
changeset 58967 3c2e49d43ba3
parent 58863 c16ac7a2eba4
child 59290 97d13893ec3c
equal deleted inserted replaced
58966:6c6cce0f149d 58967:3c2e49d43ba3
   430         break;
   430         break;
   431       }
   431       }
   432       assert(oldest_age_node->identity() == NULL, "invariant");
   432       assert(oldest_age_node->identity() == NULL, "invariant");
   433       BufferPtr const buffer = oldest_age_node->retired_buffer();
   433       BufferPtr const buffer = oldest_age_node->retired_buffer();
   434       assert(buffer->retired(), "invariant");
   434       assert(buffer->retired(), "invariant");
   435       discarded_size += buffer->unflushed_size();
   435       discarded_size += buffer->discard();
       
   436       assert(buffer->unflushed_size() == 0, "invariant");
   436       num_full_post_discard = control().decrement_full();
   437       num_full_post_discard = control().decrement_full();
       
   438       mspace_release_full(oldest_age_node, _age_mspace);
   437       if (buffer->transient()) {
   439       if (buffer->transient()) {
   438         mspace_release_full(buffer, _transient_mspace);
   440         mspace_release_full(buffer, _transient_mspace);
   439         mspace_release_full(oldest_age_node, _age_mspace);
       
   440         continue;
   441         continue;
   441       } else {
       
   442         mspace_release_full(oldest_age_node, _age_mspace);
       
   443         buffer->reinitialize();
       
   444         buffer->release(); // publish
       
   445         break;
       
   446       }
   442       }
       
   443       buffer->reinitialize();
       
   444       buffer->release(); // publish
       
   445       break;
   447     }
   446     }
   448     JfrBuffer_lock->unlock();
   447     JfrBuffer_lock->unlock();
   449     const size_t number_of_discards = num_full_pre_discard - num_full_post_discard;
   448     const size_t number_of_discards = num_full_pre_discard - num_full_post_discard;
   450     if (number_of_discards > 0) {
   449     if (number_of_discards > 0) {
   451       log_discard(number_of_discards, discarded_size, num_full_post_discard);
   450       log_discard(number_of_discards, discarded_size, num_full_post_discard);