Data Fields
circuitmux_s Struct Reference

Data Fields

unsigned int n_circuits
unsigned int n_active_circuits
unsigned int n_cells
chanid_circid_muxinfo_map_t * chanid_circid_map
destroy_cell_queue_t destroy_cell_queue
unsigned int last_cell_was_destroy: 1
int64_t destroy_ctr
const circuitmux_policy_tpolicy

Detailed Description

Definition at line 109 of file circuitmux.c.

Field Documentation

◆ destroy_cell_queue

destroy_cell_queue_t circuitmux_s::destroy_cell_queue

List of queued destroy cells

Definition at line 122 of file circuitmux.c.

Referenced by circuitmux_free_(), circuitmux_get_first_active_circuit(), circuitmux_mark_destroyed_circids_usable(), and MOCK_IMPL().

◆ destroy_ctr

int64_t circuitmux_s::destroy_ctr

Destroy counter: increment this when a destroy gets queued, decrement when we unqueue it, so we can test to make sure they don't starve.

Definition at line 135 of file circuitmux.c.

Referenced by circuitmux_free_(), and circuitmux_notify_xmit_destroy().

◆ last_cell_was_destroy

unsigned int circuitmux_s::last_cell_was_destroy

Boolean: True iff the last cell to circuitmux_get_first_active_circuit returned the destroy queue. Used to force alternation between destroy/non-destroy cells.

XXXX There is no reason to think that alternating is a particularly good approach – it's just designed to prevent destroys from starving other cells completely.

Definition at line 131 of file circuitmux.c.

Referenced by circuitmux_get_first_active_circuit().

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