![]()  | 
  
    MySQL 8.0.44
    
   Source Code Documentation 
   | 
 
Implements atomic ops on BgcTicket object. More...
#include <atomic_bgc_ticket.h>
Public Member Functions | |
| virtual | ~AtomicBgcTicket ()=default | 
| AtomicBgcTicket (AtomicBgcTicket const &)=delete | |
| AtomicBgcTicket (AtomicBgcTicket &&)=delete | |
| AtomicBgcTicket & | operator= (AtomicBgcTicket const &)=delete | 
| AtomicBgcTicket & | operator= (AtomicBgcTicket &&)=delete | 
| AtomicBgcTicket (const BgcTicket &src) | |
| Copying ctor.  More... | |
| AtomicBgcTicket (const BgcTicket::ValueType &src) | |
| Copying ctor.  More... | |
| AtomicBgcTicketGuard | scoped_lock (bool inc_next_before_release=false) | 
| Creates the "lock" that is held for the returned AtomicBgcTicketGuard object lifetime.  More... | |
| AtomicBgcTicketGuard | scoped_lock (const BgcTicket &next_value) | 
| Creates the "lock" that is held for the returned AtomicBgcTicketGuard object lifetime.  More... | |
| void | store (const BgcTicket &value) | 
| Ticket mutator, atomic store op.  More... | |
| BgcTicket | load () const | 
| Ticket accessor, atomic load op.  More... | |
Protected Member Functions | |
| std::pair< BgcTicket, BgcTicket > | set_in_use (bool inc_next_before_acquire=false, bool inc_next_before_release=false) | 
| Sets ticket synchronization value to "in use".  More... | |
| void | set_used (const BgcTicket &next_value) | 
| Sets ticket synchronization value to "used/free".  More... | |
Protected Attributes | |
| memory::Aligned_atomic< BgcTicket::ValueType > | m_ticket | 
| internal ticket representation  More... | |
Friends | |
| class | AtomicBgcTicketGuard | 
| class | BgcTicket | 
| std::ostream & | operator<< (std::ostream &os, const AtomicBgcTicket &arg) | 
| Stream operator impl for AtomicBgcTicket class.  More... | |
Implements atomic ops on BgcTicket object.
Impl based on Aligned_atomic
      
  | 
  virtualdefault | 
      
  | 
  delete | 
      
  | 
  delete | 
| binlog::AtomicBgcTicket::AtomicBgcTicket | ( | const BgcTicket & | src | ) | 
Copying ctor.
| [in] | src | Pattern to copy from | 
AtomicBgcTicket is created based on src BgcTicket object
      
  | 
  explicit | 
Copying ctor.
| [in] | src | Pattern to copy from | 
AtomicBgcTicket is created based on src ValueType object
| BgcTicket binlog::AtomicBgcTicket::load | ( | ) | const | 
Ticket accessor, atomic load op.
      
  | 
  delete | 
      
  | 
  delete | 
| AtomicBgcTicketGuard binlog::AtomicBgcTicket::scoped_lock | ( | bool | inc_next_before_release = false | ) | 
Creates the "lock" that is held for the returned AtomicBgcTicketGuard object lifetime.
| [in] | inc_next_before_release | Before "release" operation, ticket value is set to the value+1 in case inc_next_before_acquire is equal false and inc_next_before_release is equal to true | 
| AtomicBgcTicketGuard binlog::AtomicBgcTicket::scoped_lock | ( | const BgcTicket & | next_value | ) | 
Creates the "lock" that is held for the returned AtomicBgcTicketGuard object lifetime.
      
  | 
  protected | 
Sets ticket synchronization value to "in use".
Only one thread is allowed to get into the critical section that starts with the "set_in_use" op and ends with the "set_used"
| [in] | inc_next_before_acquire | During the "acquire" operation, ticket value is set to the value+1 in case inc_next_before_acquire is equal to true. | 
| [in] | inc_next_before_release | Before "release" operation, ticket value is set to the value+1 in case inc_next_before_acquire is equal false. | 
      
  | 
  protected | 
Sets ticket synchronization value to "used/free".
Only one thread is allowed to get into the critical section that starts with the "set_in_use" op and ends with the "set_used"
| [in] | next_value | Next ticket value set during the "release" op. | 
| void binlog::AtomicBgcTicket::store | ( | const BgcTicket & | value | ) | 
Ticket mutator, atomic store op.
| [in] | value | Sets atomically m_ticket internal variable to "value" | 
      
  | 
  friend | 
      
  | 
  friend | 
      
  | 
  friend | 
Stream operator impl for AtomicBgcTicket class.
| [in] | os | Reference to stream obj | 
| [in] | arg | Constant reference to AtomicBgcTicket object | 
      
  | 
  protected | 
internal ticket representation