< prev index next >

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

Print this page

        

*** 27,52 **** #include "gc/z/zArray.hpp" #include "gc/z/zLock.hpp" #include "metaprogramming/removeExtent.hpp" template <typename T> ! class ZSafeDelete { private: typedef typename RemoveExtent<T>::type ItemT; ! ZLock _lock; uint64_t _enabled; ZArray<ItemT*> _deferred; bool deferred_delete(ItemT* item); void immediate_delete(ItemT* item); public: ! ZSafeDelete(); void enable_deferred_delete(); void disable_deferred_delete(); void operator()(ItemT* item); }; #endif // SHARE_GC_Z_ZSAFEDELETE_HPP --- 27,67 ---- #include "gc/z/zArray.hpp" #include "gc/z/zLock.hpp" #include "metaprogramming/removeExtent.hpp" template <typename T> ! class ZSafeDeleteImpl { private: typedef typename RemoveExtent<T>::type ItemT; ! ZLock* _lock; uint64_t _enabled; ZArray<ItemT*> _deferred; bool deferred_delete(ItemT* item); void immediate_delete(ItemT* item); public: ! ZSafeDeleteImpl(ZLock* lock); void enable_deferred_delete(); void disable_deferred_delete(); void operator()(ItemT* item); }; + template <typename T> + class ZSafeDelete : public ZSafeDeleteImpl<T> { + private: + ZLock _lock; + + public: + ZSafeDelete(); + }; + + template <typename T> + class ZSafeDeleteNoLock : public ZSafeDeleteImpl<T> { + public: + ZSafeDeleteNoLock(); + }; + #endif // SHARE_GC_Z_ZSAFEDELETE_HPP
< prev index next >