Removed wrong assertion
[libcds.git] / cds / intrusive / mspriority_queue.h
index 2788fa3a282bde9bc2d82dc1daeacea45d883170..5ba498ab1b10c12bf16aff059eaa9cfa26084242 100644 (file)
@@ -1,11 +1,11 @@
 //$$CDS-header$$
 
-#ifndef __CDS_INTRUSIVE_MSPRIORITY_QUEUE_H
-#define __CDS_INTRUSIVE_MSPRIORITY_QUEUE_H
+#ifndef CDSLIB_INTRUSIVE_MSPRIORITY_QUEUE_H
+#define CDSLIB_INTRUSIVE_MSPRIORITY_QUEUE_H
 
 #include <mutex>  // std::unique_lock
 #include <cds/intrusive/details/base.h>
-#include <cds/lock/spinlock.h>
+#include <cds/sync/spinlock.h>
 #include <cds/os/thread.h>
 #include <cds/details/bit_reverse_counter.h>
 #include <cds/intrusive/options.h>
@@ -70,16 +70,16 @@ namespace cds { namespace intrusive {
             /**
                 No default functor is provided. If the option is not specified, the \p less is used.
             */
-            typedef opt::none           compare;
+            typedef opt::none       compare;
 
             /// Specifies binary predicate used for priority comparing.
             /**
                 Default is \p std::less<T>.
             */
-            typedef opt::none           less;
+            typedef opt::none       less;
 
             /// Type of mutual-exclusion lock
-            typedef lock::Spin          lock_type;
+            typedef cds::sync::spin lock_type;
 
             /// Back-off strategy
             typedef backoff::yield      back_off;
@@ -102,7 +102,7 @@ namespace cds { namespace intrusive {
             - \p opt::compare - priority compare functor. No default functor is provided.
                 If the option is not specified, the \p opt::less is used.
             - \p opt::less - specifies binary predicate used for priority compare. Default is \p std::less<T>.
-            - \p opt::lock_type - lock type. Default is \p cds::lock::Spin.
+            - \p opt::lock_type - lock type. Default is \p cds::sync::spin
             - \p opt::back_off - back-off strategy. Default is \p cds::backoff::yield
             - \p opt::stat - internal statistics. Available types: \p mspriority_queue::stat, \p mspriority_queue::empty_stat (the default, no overhead)
         */
@@ -233,14 +233,14 @@ namespace cds { namespace intrusive {
         /**
             If the priority queue is full, the function returns \p false,
             no item has been added.
-            Otherwise, the function inserts the copy of \p val into the heap
+            Otherwise, the function inserts the pointer to \p val into the heap
             and returns \p true.
 
-            The function use copy constructor to create new heap item from \p val.
+            The function does not make a copy of \p val.
         */
         bool push( value_type& val )
         {
-            tag_type const curId = cds::OS::getCurrentThreadId();
+            tag_type const curId = cds::OS::get_current_thread_id();
 
             // Insert new item at bottom of the heap
             m_Lock.lock();
@@ -272,8 +272,6 @@ namespace cds { namespace intrusive {
         /**
             If the priority queue is empty, the function returns \p nullptr.
             Otherwise, it returns the item extracted.
-
-            The item returned may be disposed immediately.
         */
         value_type * pop()
         {
@@ -311,8 +309,6 @@ namespace cds { namespace intrusive {
             std::swap( refTop.m_pVal, pVal );
             refTop.m_nTag = tag_type( Available );
 
-            assert( nBottom > 1 );
-
             // refTop will be unlocked inside heapify_after_pop
             heapify_after_pop( 1, &refTop );
 
@@ -492,4 +488,4 @@ namespace cds { namespace intrusive {
 
 }} // namespace cds::intrusive
 
-#endif // #ifndef __CDS_INTRUSIVE_MSPRIORITY_QUEUE_H
+#endif // #ifndef CDSLIB_INTRUSIVE_MSPRIORITY_QUEUE_H