![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
One scheduled event of the layered engine. More...
#include <line/solvers/ldes/ldes_ln_engine.h>
Public Attributes | |
| double | t = 0.0 |
| int | kind = 0 |
| 0 = host completion (who = the LINE), 1 = think completion (who = the reference customer), 2 = a task thread finished its cold start, 3 = an idle task thread's delay-off countdown expired, 4 = the next completion on a pooled host replica (who = the host slot), 5 = the next completion on a PS host replica (who = the host slot), 6 = line who finished the think time of its activity, 7 = an open arrival at entry who on replica aux of its task. | |
| std::size_t | who = 0 |
| std::size_t | aux = 0 |
| std::uint64_t | gen = 0 |
| std::uint64_t | seq = 0 |
One scheduled event of the layered engine.
Definition at line 107 of file ldes_ln_engine.h.
| std::size_t line::ldes::engine::LnEvent::aux = 0 |
Definition at line 128 of file ldes_ln_engine.h.
| std::uint64_t line::ldes::engine::LnEvent::gen = 0 |
Definition at line 129 of file ldes_ln_engine.h.
| int line::ldes::engine::LnEvent::kind = 0 |
0 = host completion (who = the LINE), 1 = think completion (who = the reference customer), 2 = a task thread finished its cold start, 3 = an idle task thread's delay-off countdown expired, 4 = the next completion on a pooled host replica (who = the host slot), 5 = the next completion on a PS host replica (who = the host slot), 6 = line who finished the think time of its activity, 7 = an open arrival at entry who on replica aux of its task.
A kind-0 event carries the line's host generation, so a preemption makes it stale.
For kinds 2 and 3 who is the task SLOT and aux the thread within it, and gen is the generation the timer was armed with: a countdown caught by an arriving request is cancelled by bumping the generation, so the event still fires but finds itself stale and does nothing. Kinds 4 and 5 use the same device per host slot, since every change of the job set moves the next completion. The event queue has no removal.
Definition at line 126 of file ldes_ln_engine.h.
Referenced by line::ldes::engine::LnEventLater::operator()().
| std::uint64_t line::ldes::engine::LnEvent::seq = 0 |
Definition at line 130 of file ldes_ln_engine.h.
Referenced by line::ldes::engine::LnEventLater::operator()().
| double line::ldes::engine::LnEvent::t = 0.0 |
Definition at line 108 of file ldes_ln_engine.h.
Referenced by line::ldes::engine::LnEventLater::operator()().
| std::size_t line::ldes::engine::LnEvent::who = 0 |
Definition at line 127 of file ldes_ln_engine.h.