+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_DETAILS_NONCOPYABLE_H
-#define __CDS_DETAILS_NONCOPYABLE_H
-
-#include <boost/noncopyable.hpp>
-
-//@cond
-namespace cds { namespace details {
- using boost::noncopyable;
-}} // namespace cds::details
-//@endcond
-
-#endif // __CDS_DETAILS_NONCOPYABLE_H
-
#include <cds/gc/hzp/details/hp_alloc.h>
-#include <cds/details/noncopyable.h>
-
#if CDS_COMPILER == CDS_COMPILER_MSVC
# pragma warning(push)
// warning C4251: 'cds::gc::hzp::GarbageCollector::m_pListHead' : class 'cds::cxx11_atomic::atomic<T>'
on the start of each thread that uses HRC GC. Before terminating the thread linked to HRC GC it is necessary to call
cds::threading \p Manager::detachThread().
*/
- class ThreadGC: cds::details::noncopyable
+ class ThreadGC
{
GarbageCollector& m_gc ; ///< master garbage collector
details::thread_descriptor * m_pDesc ; ///< descriptor of GC data for the thread
: m_gc( GarbageCollector::instance() )
, m_pDesc( nullptr )
{}
+
+ ThreadGC( ThreadGC const& ) = delete;
+
~ThreadGC()
{
fini();
#ifndef __CDS_GC_HZP_HZP_H
#define __CDS_GC_HZP_HZP_H
+#include <vector>
#include <cds/cxx11_atomic.h>
#include <cds/os/thread.h>
#include <cds/gc/exception.h>
-
#include <cds/gc/hzp/details/hp_fwd.h>
#include <cds/gc/hzp/details/hp_alloc.h>
#include <cds/gc/hzp/details/hp_retired.h>
-#include <vector>
-#include <cds/details/noncopyable.h>
-
#if CDS_COMPILER == CDS_COMPILER_MSVC
# pragma warning(push)
// warning C4251: 'cds::gc::hzp::GarbageCollector::m_pListHead' : class 'cds::cxx11_atomic::atomic<T>'
on the start of each thread that uses HP GC. Before terminating the thread linked to HP GC it is necessary to call
\ref cds_threading "cds::threading::Manager::detachThread()".
*/
- class ThreadGC: cds::details::noncopyable
+ class ThreadGC
{
GarbageCollector& m_HzpManager ; ///< Hazard Pointer GC singleton
details::HPRec * m_pHzpRec ; ///< Pointer to thread's HZP record
: m_HzpManager( GarbageCollector::instance() ),
m_pHzpRec( nullptr )
{}
+
+ ThreadGC( ThreadGC const& ) = delete;
+
~ThreadGC()
{
fini();
#include <cds/gc/details/retired_ptr.h>
#include <cds/details/aligned_allocator.h>
#include <cds/details/allocator.h>
-#include <cds/details/noncopyable.h>
#include <cds/lock/spinlock.h>
#if CDS_COMPILER == CDS_COMPILER_MSVC
};
/// Uninitialized guard
- class guard: public cds::details::noncopyable
+ class guard
{
friend class ThreadGC;
protected:
: m_pGuard( nullptr )
{}
+ guard( guard const& ) = delete;
+
/// Object destructor, does nothing
~guard()
{}
dtor returns the guards allocated back to the pool.
*/
template <size_t Count>
- class GuardArray: public cds::details::noncopyable
+ class GuardArray
{
details::guard m_arr[Count] ; ///< array of guard
ThreadGC& m_gc ; ///< ThreadGC object of current thread
/// Allocates array of guards from \p gc which must be the ThreadGC object of current thread
GuardArray( ThreadGC& gc ) ; // inline below
+ GuardArray() = delete;
+ GuardArray( GuardArray const& ) = delete;
+
/// Returns guards allocated back to pool
~GuardArray() ; // inline below
\li Free guard list: the list of thread-local free guards (linked by \p pNextFree field)
Free guard list is a subset of thread guard list.
*/
- class ThreadGC: public cds::details::noncopyable
+ class ThreadGC
{
GarbageCollector& m_gc ; ///< reference to GC singleton
details::guard_data * m_pList ; ///< Local list of guards owned by the thread
, m_pFree( nullptr )
{}
+ ThreadGC( ThreadGC const& ) = delete;
+
/// Dtor calls fini()
~ThreadGC()
{
#include <cds/os/thread.h>
#include <cds/algo/backoff_strategy.h>
-#include <cds/details/noncopyable.h>
-
namespace cds {
/// Synchronization primitives
namespace lock {
<ClInclude Include="..\..\..\cds\details\is_aligned.h" />\r
<ClInclude Include="..\..\..\cds\details\make_const_type.h" />\r
<ClInclude Include="..\..\..\cds\details\marked_ptr.h" />\r
- <ClInclude Include="..\..\..\cds\details\noncopyable.h" />\r
<ClInclude Include="..\..\..\cds\impl\queue_base.h" />\r
<ClInclude Include="..\..\..\cds\details\trivial_assign.h" />\r
<ClInclude Include="..\..\..\cds\details\type_padding.h" />\r
<ClInclude Include="..\..\..\cds\details\marked_ptr.h">\r
<Filter>Header Files\cds\details</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\..\..\cds\details\noncopyable.h">\r
- <Filter>Header Files\cds\details</Filter>\r
- </ClInclude>\r
<ClInclude Include="..\..\..\cds\impl\queue_base.h">\r
<Filter>Header Files\cds\details</Filter>\r
</ClInclude>\r