CARTA Backend
The backend component of CARTA
Loading...
Searching...
No Matches
carta::queuing_rw_mutex Class Reference

#include <Concurrency.h>

Collaboration diagram for carta::queuing_rw_mutex:
[legend]

Public Member Functions

 queuing_rw_mutex ()
 
 ~queuing_rw_mutex ()
 
void reader_enter ()
 
void writer_enter ()
 
void reader_leave ()
 
void writer_leave ()
 

Private Member Functions

void queue_writer (std::unique_lock< std::mutex > &mtx)
 
void dequeue_one_writer ()
 

Private Attributes

std::mutex _mtx
 
std::condition_variable _readers_cv
 
std::list< std::condition_variable * > _writers_cv_list
 
short _reader_count
 
short _writer_count
 

Constructor & Destructor Documentation

◆ queuing_rw_mutex()

carta::queuing_rw_mutex::queuing_rw_mutex ( )
inline

◆ ~queuing_rw_mutex()

carta::queuing_rw_mutex::~queuing_rw_mutex ( )
inline
Here is the call graph for this function:

Member Function Documentation

◆ dequeue_one_writer()

void carta::queuing_rw_mutex::dequeue_one_writer ( )
inlineprivate
Here is the caller graph for this function:

◆ queue_writer()

void carta::queuing_rw_mutex::queue_writer ( std::unique_lock< std::mutex > &  mtx)
inlineprivate
Here is the caller graph for this function:

◆ reader_enter()

void carta::queuing_rw_mutex::reader_enter ( )
inline
Here is the caller graph for this function:

◆ reader_leave()

void carta::queuing_rw_mutex::reader_leave ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ writer_enter()

void carta::queuing_rw_mutex::writer_enter ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ writer_leave()

void carta::queuing_rw_mutex::writer_leave ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ _mtx

std::mutex carta::queuing_rw_mutex::_mtx
private

◆ _reader_count

short carta::queuing_rw_mutex::_reader_count
private

◆ _readers_cv

std::condition_variable carta::queuing_rw_mutex::_readers_cv
private

◆ _writer_count

short carta::queuing_rw_mutex::_writer_count
private

◆ _writers_cv_list

std::list<std::condition_variable*> carta::queuing_rw_mutex::_writers_cv_list
private

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