GNUnet  0.11.x
Data Fields
OperationQueue Struct Reference

Queue of operations where we can only support a certain number of concurrent operations of a particular type. More...

Collaboration diagram for OperationQueue:
[legend]

Data Fields

struct QueueEntrywq_head
 DLL head for the wait queue. More...
 
struct QueueEntrywq_tail
 DLL tail for the wait queue. More...
 
struct QueueEntryrq_head
 DLL head for the ready queue. More...
 
struct QueueEntryrq_tail
 DLL tail for the ready queue. More...
 
struct QueueEntryaq_head
 DLL head for the active queue. More...
 
struct QueueEntryaq_tail
 DLL tail for the active queue. More...
 
struct QueueEntrynq_head
 DLL head for the inactive queue. More...
 
struct QueueEntrynq_tail
 DLL tail for the inactive queue. More...
 
struct FeedbackCtxfctx
 Feedback context; only relevant for adaptive operation queues. More...
 
enum OperationQueueType type
 The type of this opeartion queue. More...
 
unsigned int active
 Number of operations that are currently active in this queue. More...
 
unsigned int max_active
 Max number of operations which can be active at any time in this queue. More...
 
unsigned int overload
 The number of resources occupied by failed operations in the current shot. More...
 
unsigned int expired
 Is this queue marked for expiry? More...
 

Detailed Description

Queue of operations where we can only support a certain number of concurrent operations of a particular type.

Definition at line 162 of file testbed_api_operations.c.

Field Documentation

◆ wq_head

struct QueueEntry* OperationQueue::wq_head

DLL head for the wait queue.

Operations which are waiting for this operation queue are put here

Definition at line 168 of file testbed_api_operations.c.

Referenced by change_state(), is_queue_empty(), recheck_waiting(), and remove_queue_entry().

◆ wq_tail

struct QueueEntry* OperationQueue::wq_tail

DLL tail for the wait queue.

Definition at line 173 of file testbed_api_operations.c.

Referenced by change_state(), and remove_queue_entry().

◆ rq_head

struct QueueEntry* OperationQueue::rq_head

DLL head for the ready queue.

Operations which are in this operation queue and are in ready state are put here

Definition at line 179 of file testbed_api_operations.c.

Referenced by change_state(), GNUNET_TESTBED_operation_queue_reset_max_active_(), is_queue_empty(), and remove_queue_entry().

◆ rq_tail

struct QueueEntry* OperationQueue::rq_tail

DLL tail for the ready queue.

Definition at line 184 of file testbed_api_operations.c.

Referenced by change_state(), and remove_queue_entry().

◆ aq_head

struct QueueEntry* OperationQueue::aq_head

DLL head for the active queue.

Operations which are in this operation queue and are currently active are put here

Definition at line 190 of file testbed_api_operations.c.

Referenced by change_state(), is_queue_empty(), and remove_queue_entry().

◆ aq_tail

struct QueueEntry* OperationQueue::aq_tail

DLL tail for the active queue.

Definition at line 195 of file testbed_api_operations.c.

Referenced by change_state(), and remove_queue_entry().

◆ nq_head

struct QueueEntry* OperationQueue::nq_head

DLL head for the inactive queue.

Operations which are inactive and can be evicted if the queues it holds are maxed out and another operation begins to wait on them.

Definition at line 202 of file testbed_api_operations.c.

Referenced by change_state(), decide_capacity(), is_queue_empty(), and remove_queue_entry().

◆ nq_tail

struct QueueEntry* OperationQueue::nq_tail

DLL tail for the inactive queue.

Definition at line 207 of file testbed_api_operations.c.

Referenced by change_state(), and remove_queue_entry().

◆ fctx

struct FeedbackCtx* OperationQueue::fctx

Feedback context; only relevant for adaptive operation queues.

NULL for fixed operation queues

Definition at line 213 of file testbed_api_operations.c.

Referenced by adapt_parallelism(), adaptive_queue_set_max_active(), assign_timeslot(), cleanup_tslots(), decide_capacity(), GNUNET_TESTBED_operation_queue_create_(), queue_destroy(), and update_tslots().

◆ type

enum OperationQueueType OperationQueue::type

The type of this opeartion queue.

Definition at line 218 of file testbed_api_operations.c.

Referenced by assign_timeslot(), decide_capacity(), GNUNET_TESTBED_operation_queue_create_(), process_rq_task(), and queue_destroy().

◆ active

unsigned int OperationQueue::active

Number of operations that are currently active in this queue.

Definition at line 223 of file testbed_api_operations.c.

Referenced by check_readiness(), decide_capacity(), defer(), GNUNET_TESTBED_operation_queue_reset_max_active_(), and GNUNET_TESTBED_operation_release_().

◆ max_active

unsigned int OperationQueue::max_active

Max number of operations which can be active at any time in this queue.

This value can be changed either by calling GNUNET_TESTBED_operation_queue_reset_max_active_() or by the adaptive algorithm if this operation queue is of type OPERATION_QUEUE_TYPE_ADAPTIVE

Definition at line 231 of file testbed_api_operations.c.

Referenced by adapt_parallelism(), cleanup_tslots(), decide_capacity(), GNUNET_TESTBED_operation_queue_create_(), GNUNET_TESTBED_operation_queue_reset_max_active_(), and update_tslots().

◆ overload

unsigned int OperationQueue::overload

The number of resources occupied by failed operations in the current shot.

This is only relavant if the operation queue is of type OPERATION_QUEUE_TYPE_ADAPTIVE

Definition at line 238 of file testbed_api_operations.c.

Referenced by decide_capacity(), GNUNET_TESTBED_operation_queue_reset_max_active_(), and update_tslots().

◆ expired

unsigned int OperationQueue::expired

Is this queue marked for expiry?

Definition at line 243 of file testbed_api_operations.c.

Referenced by GNUNET_TESTBED_operation_queue_destroy_().


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