< prev index next >

src/hotspot/share/gc/z/zSafeDelete.inline.hpp

Print this page




  22  */
  23 
  24 #ifndef SHARE_GC_Z_ZSAFEDELETE_INLINE_HPP
  25 #define SHARE_GC_Z_ZSAFEDELETE_INLINE_HPP
  26 
  27 #include "gc/z/zArray.inline.hpp"
  28 #include "gc/z/zSafeDelete.hpp"
  29 #include "metaprogramming/isArray.hpp"
  30 #include "utilities/debug.hpp"
  31 
  32 template <typename T>
  33 ZSafeDeleteImpl<T>::ZSafeDeleteImpl(ZLock* lock) :
  34     _lock(lock),
  35     _enabled(0),
  36     _deferred() {}
  37 
  38 template <typename T>
  39 bool ZSafeDeleteImpl<T>::deferred_delete(ItemT* item) {
  40   ZLocker<ZLock> locker(_lock);
  41   if (_enabled > 0) {
  42     _deferred.add(item);
  43     return true;
  44   }
  45 
  46   return false;
  47 }
  48 
  49 template <typename T>
  50 void ZSafeDeleteImpl<T>::immediate_delete(ItemT* item) {
  51   if (IsArray<T>::value) {
  52     delete [] item;
  53   } else {
  54     delete item;
  55   }
  56 }
  57 
  58 template <typename T>
  59 void ZSafeDeleteImpl<T>::enable_deferred_delete() {
  60   ZLocker<ZLock> locker(_lock);
  61   _enabled++;
  62 }




  22  */
  23 
  24 #ifndef SHARE_GC_Z_ZSAFEDELETE_INLINE_HPP
  25 #define SHARE_GC_Z_ZSAFEDELETE_INLINE_HPP
  26 
  27 #include "gc/z/zArray.inline.hpp"
  28 #include "gc/z/zSafeDelete.hpp"
  29 #include "metaprogramming/isArray.hpp"
  30 #include "utilities/debug.hpp"
  31 
  32 template <typename T>
  33 ZSafeDeleteImpl<T>::ZSafeDeleteImpl(ZLock* lock) :
  34     _lock(lock),
  35     _enabled(0),
  36     _deferred() {}
  37 
  38 template <typename T>
  39 bool ZSafeDeleteImpl<T>::deferred_delete(ItemT* item) {
  40   ZLocker<ZLock> locker(_lock);
  41   if (_enabled > 0) {
  42     _deferred.append(item);
  43     return true;
  44   }
  45 
  46   return false;
  47 }
  48 
  49 template <typename T>
  50 void ZSafeDeleteImpl<T>::immediate_delete(ItemT* item) {
  51   if (IsArray<T>::value) {
  52     delete [] item;
  53   } else {
  54     delete item;
  55   }
  56 }
  57 
  58 template <typename T>
  59 void ZSafeDeleteImpl<T>::enable_deferred_delete() {
  60   ZLocker<ZLock> locker(_lock);
  61   _enabled++;
  62 }


< prev index next >