CPPMyth
Library to interoperate with MythTV server
Loading...
Searching...
No Matches
NSROOT::OS::Latch Class Reference
Collaboration diagram for NSROOT::OS::Latch:

Data Structures

struct  TNode

Public Member Functions

 Latch (bool _px)
void lock ()
void unlock ()
void lock_shared ()
void unlock_shared ()
bool try_lock_shared ()
 Latch (const Latch &other)=delete
Latch & operator= (const Latch &other)=delete

Private Member Functions

void spin_lock ()
void spin_unlock ()
void init ()
TNodefind_node (const thread_t &id)
TNodenew_node (const thread_t &id)
void free_node (TNode *n)

Private Attributes

Atomic s_spin
thread_t x_owner
int x_wait
int x_flag
mutex_t x_gate_lock
condition_t x_gate
mutex_t s_gate_lock
condition_t s_gate
bool px
TNodes_freed
TNodes_nodes

Detailed Description

Definition at line 32 of file latch.h.

Constructor & Destructor Documentation

◆ Latch() [1/2]

Latch::Latch ( )

Definition at line 112 of file latch.cpp.

◆ Latch() [2/2]

Latch::Latch ( bool _px)

Definition at line 124 of file latch.cpp.

◆ ~Latch()

Latch::~Latch ( )

Definition at line 136 of file latch.cpp.

Member Function Documentation

◆ find_node()

Latch::TNode * Latch::find_node ( const thread_t & id)
private

Definition at line 46 of file latch.cpp.

◆ free_node()

void Latch::free_node ( TNode * n)
private

Definition at line 86 of file latch.cpp.

◆ init()

void Latch::init ( )
private

Definition at line 32 of file latch.cpp.

◆ lock()

void Latch::lock ( )

Definition at line 176 of file latch.cpp.

◆ lock_shared()

void Latch::lock_shared ( )

Definition at line 283 of file latch.cpp.

◆ new_node()

Latch::TNode * Latch::new_node ( const thread_t & id)
private

Definition at line 56 of file latch.cpp.

◆ spin_lock()

void NSROOT::OS::Latch::spin_lock ( )
inlineprivate

Definition at line 88 of file latch.h.

◆ spin_unlock()

void NSROOT::OS::Latch::spin_unlock ( )
inlineprivate

Definition at line 98 of file latch.h.

◆ try_lock_shared()

bool Latch::try_lock_shared ( )

Definition at line 374 of file latch.cpp.

◆ unlock()

void Latch::unlock ( )

Definition at line 249 of file latch.cpp.

◆ unlock_shared()

void Latch::unlock_shared ( )

Definition at line 335 of file latch.cpp.

Field Documentation

◆ px

bool NSROOT::OS::Latch::px
private

Definition at line 77 of file latch.h.

◆ s_freed

TNode* NSROOT::OS::Latch::s_freed
private

Definition at line 85 of file latch.h.

◆ s_gate

condition_t NSROOT::OS::Latch::s_gate
private

Definition at line 75 of file latch.h.

◆ s_gate_lock

mutex_t NSROOT::OS::Latch::s_gate_lock
private

Definition at line 74 of file latch.h.

◆ s_nodes

TNode* NSROOT::OS::Latch::s_nodes
private

Definition at line 86 of file latch.h.

◆ s_spin

Atomic NSROOT::OS::Latch::s_spin
mutableprivate

Definition at line 66 of file latch.h.

◆ x_flag

int NSROOT::OS::Latch::x_flag
private

Definition at line 70 of file latch.h.

◆ x_gate

condition_t NSROOT::OS::Latch::x_gate
private

Definition at line 73 of file latch.h.

◆ x_gate_lock

mutex_t NSROOT::OS::Latch::x_gate_lock
private

Definition at line 72 of file latch.h.

◆ x_owner

thread_t NSROOT::OS::Latch::x_owner
private

Definition at line 67 of file latch.h.

◆ x_wait

int NSROOT::OS::Latch::x_wait
private

Definition at line 69 of file latch.h.


The documentation for this class was generated from the following files:
  • /home/jlb/src/janbar/PVR/cppmythlib/cppmyth/src/private/os/threads/latch.h
  • /home/jlb/src/janbar/PVR/cppmythlib/cppmyth/src/private/os/threads/latch.cpp