typedef base_class::thread_gc thread_gc ; ///< Thread-side RCU part
typedef typename thread_gc::scoped_lock scoped_lock ; ///< Access lock class
- static bool const c_bBuffered = true ; ///< This RCU buffers disposed elements
+ //@cond
+ static bool const c_bBuffered = true ; ///< Bufferized RCU
+ //@endcond
protected:
//@cond
}
}
- // Return: true - synchronize has been called, false - otherwise
+ // Return: \p true - synchronize has been called, \p false - otherwise
bool push_buffer( epoch_retired_ptr&& ep )
{
bool bPushed = m_Buffer.push( ep );
When the buffer becomes full \ref synchronize function is called
to wait for the end of grace period and then to free all pointers from the buffer.
*/
- virtual void retire_ptr( retired_ptr& p )
+ virtual void retire_ptr( retired_ptr& p ) override
{
if ( p.m_p )
push_buffer( epoch_retired_ptr( p, m_nCurEpoch.load( atomics::memory_order_relaxed )));
typedef typename base_class::thread_gc thread_gc ; ///< Thread-side RCU part
typedef typename thread_gc::scoped_lock scoped_lock ; ///< Access lock class
- static bool const c_bBuffered = false ; ///< This RCU does not buffer disposed elements
+ //@cond
+ static bool const c_bBuffered = false ; ///< No buffers
+ //@endcond
protected:
//@cond
The method calls \p synchronize() to wait for the end of grace period
and calls \p p disposer.
*/
- virtual void retire_ptr( retired_ptr& p )
+ virtual void retire_ptr( retired_ptr& p ) override
{
synchronize();
if ( p.m_p )
typedef base_class::thread_gc thread_gc ; ///< Access lock class
typedef typename thread_gc::scoped_lock scoped_lock ; ///< Access lock class
- static bool const c_bBuffered = true ; ///< This RCU buffers disposed elements
+ //@cond
+ static bool const c_bBuffered = true ; ///< Bufferized RCU
+ //@endcond
protected:
//@cond
to wait for the end of grace period and then
a message is sent to the reclamation thread.
*/
- virtual void retire_ptr( retired_ptr& p )
+ virtual void retire_ptr( retired_ptr& p ) override
{
if ( p.m_p )
push_buffer( epoch_retired_ptr( p, m_nCurEpoch.load( atomics::memory_order_acquire )));
typedef base_class::thread_gc thread_gc ; ///< Thread-side RCU part
typedef typename thread_gc::scoped_lock scoped_lock ; ///< Access lock class
- static bool const c_bBuffered = true ; ///< This RCU buffers disposed elements
+ //@cond
+ static bool const c_bBuffered = true ; ///< Bufferized RCU
+ //@endcond
protected:
//@cond
When the buffer becomes full \ref synchronize function is called
to wait for the end of grace period and then to free all pointers from the buffer.
*/
- virtual void retire_ptr( retired_ptr& p )
+ virtual void retire_ptr( retired_ptr& p ) override
{
if ( p.m_p )
push_buffer( epoch_retired_ptr( p, m_nCurEpoch.load( atomics::memory_order_relaxed )));