Queue of operations where we can only support a certain number of concurrent operations of a particular type. More...
Data Fields | |
struct QueueEntry * | wq_head |
DLL head for the wait queue. More... | |
struct QueueEntry * | wq_tail |
DLL tail for the wait queue. More... | |
struct QueueEntry * | rq_head |
DLL head for the ready queue. More... | |
struct QueueEntry * | rq_tail |
DLL tail for the ready queue. More... | |
struct QueueEntry * | aq_head |
DLL head for the active queue. More... | |
struct QueueEntry * | aq_tail |
DLL tail for the active queue. More... | |
struct QueueEntry * | nq_head |
DLL head for the inactive queue. More... | |
struct QueueEntry * | nq_tail |
DLL tail for the inactive queue. More... | |
struct FeedbackCtx * | fctx |
Feedback context; only relevant for adaptive operation queues. More... | |
enum OperationQueueType | type |
The type of this operation 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... | |
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.
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().
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().
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(), is_queue_empty(), and remove_queue_entry().
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().
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().
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().
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().
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().
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 decide_capacity().
enum OperationQueueType OperationQueue::type |
The type of this operation queue.
Definition at line 213 of file testbed_api_operations.c.
Referenced by gnunet_testing.Condition::__init__(), decide_capacity(), gnunet_testing.Condition::evaluate(), and gnunet_testing.FileExistCondition::evaluate().
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 decide_capacity(), and GNUNET_TESTBED_operation_release_().
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 decide_capacity().
unsigned int OperationQueue::overload |
The number of resources occupied by failed operations in the current shot.
This is only relevant 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().
unsigned int OperationQueue::expired |
Is this queue marked for expiry?
Definition at line 243 of file testbed_api_operations.c.