GCSIM
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
register_root Class Referencefinal

defines the structure of the register variable in the root-set table. Inherits from the root_set_base. More...

#include <register-root.hpp>

Public Member Functions

 register_root (header *var_ptr)
 creates the instance of the register variable
 
void set_register_variable (header *var_ptr) noexcept
 setter for the register variable
 
virtual void accept (gc_visitor &visitor) noexcept override
 accepts the gc visitor.
 
- Public Member Functions inherited from root_set_base
virtual ~root_set_base ()=default
 deletes the root_set_base object.
 

Private Member Functions

headerget_register_variable_unlocked () noexcept
 getter for the variable.
 

Private Attributes

std::mutex register_mutex
 used for register synchronization.
 
headerregister_variable
 pointer to a header of the register variable on the heap.
 

Friends

class garbage_collector
 allowing gc to access getter for the variable.
 

Detailed Description

defines the structure of the register variable in the root-set table. Inherits from the root_set_base.

Constructor & Destructor Documentation

◆ register_root()

register_root::register_root ( header var_ptr)

creates the instance of the register variable

Parameters
var_ptr- pointer to a header of the register variable on the heap.

Member Function Documentation

◆ accept()

void register_root::accept ( gc_visitor visitor)
overridevirtualnoexcept

accepts the gc visitor.

Parameters
visitor- reference to a gc visitor. Calls marking on the gc visitor for register variable element.

Implements root_set_base.

◆ get_register_variable_unlocked()

header * register_root::get_register_variable_unlocked ( )
privatenoexcept

getter for the variable.

Warning
must be called when lock is held already.
Returns
pointer to a header of the variable.

◆ set_register_variable()

void register_root::set_register_variable ( header var_ptr)
noexcept

setter for the register variable

Parameters
var_ptr- pointer to a header of the variable on the heap.
Returns
void

Friends And Related Symbol Documentation

◆ garbage_collector

friend class garbage_collector
friend

allowing gc to access getter for the variable.

Member Data Documentation

◆ register_mutex

std::mutex register_root::register_mutex
mutableprivate

used for register synchronization.

◆ register_variable

header* register_root::register_variable
private

pointer to a header of the register variable on the heap.


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