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 05b64aed4b24a41d1e0e2f46a08208582aaa497f..f16eaabc62e812bb3ff8a4f5f9817af2f4c8f551 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 92db8f36a28b6a6c7d6891e93ce5ab84baab7590..7abbfb3916100d1f857d59e864091706c1071fe4 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 0d7e5e96e8ac5163fa3f09da3bf0cc1d343fd7eb..5c55008b9f25445e2fb39ac205def5ab77f209a6 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 0f73ba3913f7a8e481535f597d5b656994915736..4c4e8c94fac606ddfc1c884f1fdef60455de1477 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 b08357c60bf8de80580eccebfb4bddbe6da4942c..8f0cce7e1c41bb6dce1a27a8808edcdf79fc31e9 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 59702c15a994adda6115cb79008827388f16eab7..c63e37908795a4918035edb7891734c129b4d726 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 9ffd7cd755a39ea168f625f85046e0c22864c6c2..6dca6a684e6a94c16981ca4a5a464404b5fe9201 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 2db27f6889543db0862cee8e3c4b9ebd2f86d9e3..faf1e75c0dcd97e94a8a60aad1df4af4fcde9556 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 c458f2f0d933c7636ed19b98e736f0d17e86276f..03653bb889132d24e6a7ccd69c778e0b7140231d 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 e8b2272f89b0766a1e011e9174b09ad476827da8..b71e2e2a1a06c038f279ab0abb7777f5926d3b44 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 6cdf4f0afb774c9a1147c8d4798cdfecb010ece0..36efaa6adbb7fa40e88def86c5b4a3e85d42054d 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 f81152c789caccc420cb19b01085dd9ff9d76a8b..0cdd5c067dcbc38674089fea00ca4cad88e1cd0b 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 3e7e917ba7c816e5bb3169eb7e8ccba6a9d497e3..6056a6e62749e9c36d4264814cdd6bc71609904b 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 0f65501e0061a540830c03eb8ed08cfeae3256f8..0d27bf7276adf2b952bc0d72b9b596c6fb017e99 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 db2bbb56259986c6e9eb1618f169820c49744085..5ba79e1e96096cd03c3f23746c5810a9b9111742 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 9b2a1881ab47f71d00fda3f23b16f6662a500f49..4183a0c36cb4327cc8577a2c1628f1cb30c65779 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 a907d591d4eecc10b7b6bdcc9dba549f786c2ba6..fcbf03fab1b4a5e306ebc5d972a6818b3a5d54c8 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 f2a61a68d000507644f48fb5c00054beae7f44e2..1aa272a103dfb2a9140b5a6e5c66616182ee37f4 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 be7963513d2ec2f14751fb4fe2f28654b10ca93c..84f28f5521368717f4c29dbc7bc66d3a27f3ac22 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 58cf7f69e1ee4c17b5cf584ea6296d3f3e8c10ce..6a26d159608106a256e90e69c15d1699581f75d9 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