Added stripped classes for uRCU implementations
authorkhizmax <khizmax@gmail.com>
Wed, 22 Jun 2016 10:40:59 +0000 (13:40 +0300)
committerkhizmax <khizmax@gmail.com>
Wed, 22 Jun 2016 10:40:59 +0000 (13:40 +0300)
with default template args for reducing debug info
and gdb output

20 files changed:
cds/urcu/details/gpb.h
cds/urcu/details/gpi.h
cds/urcu/details/gpt.h
cds/urcu/details/sig_buffered.h
cds/urcu/details/sig_threaded.h
cds/urcu/general_buffered.h
cds/urcu/general_instant.h
cds/urcu/general_threaded.h
cds/urcu/signal_buffered.h
cds/urcu/signal_threaded.h
test/unit/set/michael_lazy_rcu_gpb.cpp
test/unit/set/michael_lazy_rcu_gpi.cpp
test/unit/set/michael_lazy_rcu_gpt.cpp
test/unit/set/michael_lazy_rcu_shb.cpp
test/unit/set/michael_lazy_rcu_sht.cpp
test/unit/set/michael_michael_rcu_gpb.cpp
test/unit/set/michael_michael_rcu_gpi.cpp
test/unit/set/michael_michael_rcu_gpt.cpp
test/unit/set/michael_michael_rcu_shb.cpp
test/unit/set/michael_michael_rcu_sht.cpp

index 05b64ae..f16eaab 100644 (file)
@@ -254,6 +254,17 @@ namespace cds { namespace urcu {
         }
     };
 
+    /// User-space general-purpose RCU with deferred (buffered) reclamation (stripped version)
+    /**
+        @headerfile cds/urcu/general_buffered.h
+
+        This short version of \p general_buffered is intended for stripping debug info.
+        If you use \p %general_buffered with default template arguments you may use
+        this stripped version. All functionality of both classes are identical.
+    */
+    class general_buffered_stripped: public general_buffered<>
+    {};
+
 }} // namespace cds::urcu
 
 #endif // #ifndef CDSLIB_URCU_DETAILS_GPB_H
index 92db8f3..7abbfb3 100644 (file)
@@ -101,6 +101,7 @@ namespace cds { namespace urcu {
         //@cond
         general_instant()
         {}
+
         ~general_instant()
         {}
 
@@ -191,6 +192,17 @@ namespace cds { namespace urcu {
         //@endcond
     };
 
+    /// User-space general-purpose RCU with immediate reclamation (stripped version)
+    /**
+        @headerfile cds/urcu/general_instant.h
+
+        This short version of \p general_instant is intended for stripping debug info.
+        If you use \p %general_instant with default template arguments you may use
+        this stripped version. All functionality of both classes are identical.
+    */
+    class general_instant_stripped: public general_instant<>
+    {};
+
 }} // namespace cds::urcu
 
 #endif // #ifndef CDSLIB_URCU_DETAILS_GPI_H
index 0d7e5e9..5c55008 100644 (file)
@@ -265,6 +265,18 @@ namespace cds { namespace urcu {
             return m_nCapacity;
         }
     };
+
+    /// User-space general-purpose RCU with deferred threaded reclamation (stripped version)
+    /**
+        @headerfile cds/urcu/general_threaded.h
+
+        This short version of \p general_threaded is intended for stripping debug info.
+        If you use \p %general_threaded with default template arguments you may use
+        this stripped version. All functionality of both classes are identical.
+    */
+    class general_threaded_stripped: public general_threaded<>
+    {};
+
 }} // namespace cds::urcu
 
 #endif // #ifndef CDSLIB_URCU_DETAILS_GPT_H
index 0f73ba3..4c4e8c9 100644 (file)
@@ -266,6 +266,18 @@ namespace cds { namespace urcu {
         }
     };
 
+
+    /// User-space signal-handled RCU with deferred (buffered) reclamation (stripped version)
+    /**
+        @headerfile cds/urcu/signal_buffered.h
+
+        This short version of \p signal_buffered is intended for stripping debug info.
+        If you use \p %signal_buffered with default template arguments you may use
+        this stripped version. All functionality of both classes are identical.
+    */
+    class signal_buffered_stripped: public signal_buffered<>
+    {};
+
 }} // namespace cds::urcu
 
 #endif // #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
index b08357c..8f0cce7 100644 (file)
@@ -270,6 +270,19 @@ namespace cds { namespace urcu {
             return base_class::signal_no();
         }
     };
+
+
+    /// User-space signal-handled RCU with deferred threaded reclamation (stripped version)
+    /**
+        @headerfile cds/urcu/signal_threaded.h
+
+        This short version of \p signal_threaded is intended for stripping debug info.
+        If you use \p %signal_threaded with default template arguments you may use
+        this stripped version. All functionality of both classes are identical.
+    */
+    class signal_threaded_stripped: public signal_threaded<>
+    {};
+
 }} // namespace cds::urcu
 
 #endif // #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
index 59702c1..c63e379 100644 (file)
@@ -180,6 +180,12 @@ namespace cds { namespace urcu {
         }
     };
 
+    //@cond
+    template<>
+    class gc< general_buffered_stripped >: public gc< general_buffered<>>
+    {};
+    //@endcond
+
 }} // namespace cds::urcu
 
 #endif // #ifndef CDSLIB_URCU_GENERAL_BUFFERED_H
index 9ffd7cd..6dca6a6 100644 (file)
@@ -168,6 +168,12 @@ namespace cds { namespace urcu {
         {}
     };
 
+    //@cond
+    template<>
+    class gc< general_instant_stripped >: public gc< general_instant<>>
+    {};
+    //@endcond
+
 }} // namespace cds::urcu
 
 #endif // #ifndef CDSLIB_URCU_GENERAL_INSTANT_H
index 2db27f6..faf1e75 100644 (file)
@@ -187,6 +187,12 @@ namespace cds { namespace urcu {
         }
     };
 
+    //@cond
+    template<>
+    class gc< general_threaded_stripped >: public gc< general_threaded<>>
+    {};
+    //@endcond
+
 }} // namespace cds::urcu
 
 #endif // #ifndef CDSLIB_URCU_GENERAL_THREADED_H
index c458f2f..03653bb 100644 (file)
@@ -192,6 +192,13 @@ namespace cds { namespace urcu {
         }
     };
 
+    //@cond
+    template<>
+    class gc< signal_buffered_stripped >: public gc< signal_buffered<>>
+    {};
+    //@endcond
+
+
 }} // namespace cds::urcu
 
 #endif // #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
index e8b2272..b71e2e2 100644 (file)
@@ -200,6 +200,12 @@ namespace cds { namespace urcu {
         }
     };
 
+    //@cond
+    template<>
+    class gc< signal_threaded_stripped >: public gc< signal_threaded<>>
+    {};
+    //@endcond
+
 }} // namespace cds::urcu
 
 #endif // #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
index 6cdf4f0..36efaa6 100644 (file)
@@ -35,7 +35,9 @@
 namespace {
 
     typedef cds::urcu::general_buffered<> rcu_implementation;
+    typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped;
 
 } // namespace
 
-INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, MichaelLazySet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB,          MichaelLazySet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, MichaelLazySet, rcu_implementation_stripped );
index f81152c..0cdd5c0 100644 (file)
@@ -35,7 +35,9 @@
 namespace {
 
     typedef cds::urcu::general_instant<> rcu_implementation;
+    typedef cds::urcu::general_instant_stripped rcu_implementation_stripped;
 
 } // namespace
 
-INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, MichaelLazySet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI,       MichaelLazySet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, MichaelLazySet, rcu_implementation_stripped );
index 3e7e917..6056a6e 100644 (file)
 
 namespace {
 
-    typedef cds::urcu::general_threaded<> rcu_implementation;
+    typedef cds::urcu::general_threaded<>        rcu_implementation;
+    typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped;
 
 } // namespace
 
-INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, MichaelLazySet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT,          MichaelLazySet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, MichaelLazySet, rcu_implementation_stripped );
index 0f65501..0d27bf7 100644 (file)
 
 namespace {
 
-    typedef cds::urcu::signal_buffered<> rcu_implementation;
+    typedef cds::urcu::signal_buffered<>        rcu_implementation;
+    typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped;
 
 } // namespace
 
-INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, MichaelLazySet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB,          MichaelLazySet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, MichaelLazySet, rcu_implementation_stripped );
 
 #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED
index db2bbb5..5ba79e1 100644 (file)
 
 namespace {
 
-    typedef cds::urcu::signal_threaded<> rcu_implementation;
+    typedef cds::urcu::signal_threaded<>        rcu_implementation;
+    typedef cds::urcu::signal_threaded_stripped rcu_implementation_stripped;
 
 } // namespace
 
-INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHT, MichaelLazySet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHT,          MichaelLazySet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHT_stripped, MichaelLazySet, rcu_implementation_stripped );
 
 #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED
index 9b2a188..4183a0c 100644 (file)
 
 namespace {
 
-    typedef cds::urcu::general_buffered<> rcu_implementation;
+    typedef cds::urcu::general_buffered<>        rcu_implementation;
+    typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped;
 
 } // namespace
 
-INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, MichaelSet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB,          MichaelSet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, MichaelSet, rcu_implementation_stripped );
index a907d59..fcbf03f 100644 (file)
 
 namespace {
 
-    typedef cds::urcu::general_instant<> rcu_implementation;
+    typedef cds::urcu::general_instant<>        rcu_implementation;
+    typedef cds::urcu::general_instant_stripped rcu_implementation_stripped;
 
 } // namespace
 
-INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, MichaelSet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI,          MichaelSet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, MichaelSet, rcu_implementation_stripped );
index f2a61a6..1aa272a 100644 (file)
 
 namespace {
 
-    typedef cds::urcu::general_threaded<> rcu_implementation;
+    typedef cds::urcu::general_threaded<>        rcu_implementation;
+    typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped;
 
 } // namespace
 
-INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, MichaelSet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT,          MichaelSet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, MichaelSet, rcu_implementation_stripped );
index be79635..84f28f5 100644 (file)
 
 namespace {
 
-    typedef cds::urcu::signal_buffered<> rcu_implementation;
+    typedef cds::urcu::signal_buffered<>        rcu_implementation;
+    typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped;
 
 } // namespace
 
-INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, MichaelSet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB,          MichaelSet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, MichaelSet, rcu_implementation_stripped );
 
 #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED
index 58cf7f6..6a26d15 100644 (file)
 
 namespace {
 
-    typedef cds::urcu::signal_threaded<> rcu_implementation;
+    typedef cds::urcu::signal_threaded<>        rcu_implementation;
+    typedef cds::urcu::signal_threaded_stripped rcu_implementation_stripped;
 
 } // namespace
 
-INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHT, MichaelSet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHT,          MichaelSet, rcu_implementation );
+INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHT_stripped, MichaelSet, rcu_implementation_stripped );
 
 #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED