X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=cds%2Fintrusive%2Fmspriority_queue.h;h=422bdd201f29123581e73697a9c87dcee4d500a7;hb=dd86eedf13d944c7c6e7f80cbc61dfdc9c848bab;hp=457fb66aa7b2e06d70112d7724f2fb67d4ee0183;hpb=f18a70bbede4d78533b0d43c2d89b1a2f470887c;p=libcds.git diff --git a/cds/intrusive/mspriority_queue.h b/cds/intrusive/mspriority_queue.h index 457fb66a..422bdd20 100644 --- a/cds/intrusive/mspriority_queue.h +++ b/cds/intrusive/mspriority_queue.h @@ -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 // std::unique_lock #include -#include +#include #include #include #include @@ -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. */ - 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. - - \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() { @@ -326,7 +324,7 @@ namespace cds { namespace intrusive { */ void clear() { - clear_with( []( value_type const& src ) {} ); + clear_with( []( value_type const& /*src*/ ) {} ); } /// Clears the queue (not atomic) @@ -368,7 +366,7 @@ namespace cds { namespace intrusive { /// Returns current size of priority queue size_t size() const { - std::unique_lock l( m_Lock ); + std::unique_lock l( m_Lock ); size_t nSize = (size_t) m_ItemCounter.value(); return nSize; } @@ -492,4 +490,4 @@ namespace cds { namespace intrusive { }} // namespace cds::intrusive -#endif // #ifndef __CDS_INTRUSIVE_MSPRIORITY_QUEUE_H +#endif // #ifndef CDSLIB_INTRUSIVE_MSPRIORITY_QUEUE_H