MySQL 26.10.0
Source Code Documentation
ib::redo::Redo_applier_registry Class Reference

Registry of per-thread Redo_applier instances, which can be all freed by calling reset(). More...

#include <log0recv.h>

Public Types

using Storage = ut::Per_thread< ut::unique_ptr< ib::redo::Redo_applier > >
 

Public Member Functions

 Redo_applier_registry ()
 
 Redo_applier_registry (const Redo_applier_registry &)=delete
 
Redo_applier_registry & operator= (const Redo_applier_registry &)=delete
 
void reset ()
 Destroy all per-thread appliers owned by this registry. More...
 
ib::redo::Redo_applier * operator-> ()
 Return the Redo_applier associated with the calling thread. More...
 

Private Attributes

ut::unique_ptr< Storage > m_storage
 

Detailed Description

Registry of per-thread Redo_applier instances, which can be all freed by calling reset().

This is used and owned by recv_sys. This wraps ut::Per_thread so recovery workers can reuse one Redo_applier per thread while keeping explicit recv_sys-controlled destruction instead of thread-exit destruction.

Member Typedef Documentation

◆ Storage

Constructor & Destructor Documentation

◆ Redo_applier_registry() [1/2]

ib::redo::Redo_applier_registry::Redo_applier_registry ( )
inline

◆ Redo_applier_registry() [2/2]

ib::redo::Redo_applier_registry::Redo_applier_registry ( const Redo_applier_registry &  )
delete

Member Function Documentation

◆ operator->()

ib::redo::Redo_applier * ib::redo::Redo_applier_registry::operator-> ( )
inline

Return the Redo_applier associated with the calling thread.

The applier is created on first access for that thread.

Returns
Redo_applier owned by this registry for the calling thread.

◆ operator=()

Redo_applier_registry & ib::redo::Redo_applier_registry::operator= ( const Redo_applier_registry &  )
delete

◆ reset()

void ib::redo::Redo_applier_registry::reset ( void  )
inline

Destroy all per-thread appliers owned by this registry.

Calling operator->() afterwards is a contract violation.

Member Data Documentation

◆ m_storage

ut::unique_ptr<Storage> ib::redo::Redo_applier_registry::m_storage
private

The documentation for this class was generated from the following file: