src/hotspot/share/jfr/recorder/storage/jfrMemorySpace.inline.hpp
branchJEP-349-branch
changeset 57360 5d043a159d5c
parent 53244 9807daeb47c4
child 57870 00860d9caf4d
equal deleted inserted replaced
57359:4cab5edc2950 57360:5d043a159d5c
   102     deallocate(t);
   102     deallocate(t);
   103     return;
   103     return;
   104   }
   104   }
   105   assert(t->empty(), "invariant");
   105   assert(t->empty(), "invariant");
   106   assert(!t->retired(), "invariant");
   106   assert(!t->retired(), "invariant");
       
   107   assert(!t->excluded(), "invariant");
   107   assert(t->identity() == NULL, "invariant");
   108   assert(t->identity() == NULL, "invariant");
   108   if (!should_populate_cache()) {
   109   if (!should_populate_cache()) {
   109     remove_free(t);
   110     remove_free(t);
   110     assert(!_free.in_list(t), "invariant");
   111     assert(!_free.in_list(t), "invariant");
   111     deallocate(t);
   112     deallocate(t);
   344 }
   345 }
   345 
   346 
   346 template <typename Mspace>
   347 template <typename Mspace>
   347 inline bool ReleaseOp<Mspace>::process(typename Mspace::Type* t) {
   348 inline bool ReleaseOp<Mspace>::process(typename Mspace::Type* t) {
   348   assert(t != NULL, "invariant");
   349   assert(t != NULL, "invariant");
   349   if (t->retired() || t->try_acquire(_thread)) {
   350   // assumes some means of exclusive access to t
   350     if (t->transient()) {
   351   if (t->transient()) {
   351       if (_release_full) {
   352     if (_release_full) {
   352         mspace_release_full_critical(t, _mspace);
   353       mspace_release_full_critical(t, _mspace);
   353       } else {
   354     } else {
   354         mspace_release_free_critical(t, _mspace);
   355       mspace_release_free_critical(t, _mspace);
   355       }
       
   356       return true;
       
   357     }
   356     }
   358     t->reinitialize();
   357     return true;
   359     assert(t->empty(), "invariant");
   358   }
   360     t->release(); // publish
   359   t->reinitialize();
   361   }
   360   assert(t->empty(), "invariant");
       
   361   assert(!t->retired(), "invariant");
       
   362   t->release(); // publish
   362   return true;
   363   return true;
   363 }
   364 }
   364 
   365 
   365 #ifdef ASSERT
   366 #ifdef ASSERT
   366 template <typename T>
   367 template <typename T>