-
start_
HighResolutionTime<T extends HighResolutionTime<T>> start_
The current start time setting. Never null once this object's
constructor was executed.
-
actualStartTime_
AbsoluteTime actualStartTime_
The time when the first period actually started. The time of the last
period start in case the PGW has been unpaused.
-
period_
RelativeTime period_
The current period setting. Never null once this object's
constructor was executed.
-
cost_
RelativeTime cost_
The current cost setting. Never null once this object's
constructor was executed.
-
deadline_
RelativeTime deadline_
The current deadline setting. Never null once this object's
constructor was executed.
-
overrunHandler_
AsyncEventHandler overrunHandler_
The current cost overrun handler, null if none.
-
missHandler_
AsyncEventHandler missHandler_
The current deadline miss handler, null if none.
-
schedulables
javax.realtime.SchedulablesAndThreads schedulables
Set of schedulable objects and threads that are associated with this
SchedulingParameters.
-
inOverrunState
boolean inOverrunState
True if this PGP is currently in cost overrun state. Must only be
accessed from the thread that frequently checks the current cost budget.
-
hasStarted_
boolean hasStarted_
True if and only if the first release has started.
This field will be set to true on entry to the first release.
It will never be changed thereafter.
-
paused_
boolean paused_
this.paused_ is true iff cost checking is currently inactive, because this
PGP is currently not associated with Schedulables or Threads.
Class invariant (1): paused_ implies hasStarted_
Class invariant (2): paused_ iff (hasStarted_ and schedulables.isEmpty())
Class invariant (3): paused_ implies (overrunTimer_ == null)
Class invariant (4): paused_ implies (missTimer_ == null)
Class invariants (3) and (4) are crucial for preventing resource leaks.
NYI: BUG: the right-to-left implication of (2) is currently only maintained
if schedulables never contain any AsyncEventHandlers. As a result,
PGPs containing AsyncEventHandlers currently cause a resource leak:
the overrunTimer_ keeps active forever and keeps objects that it refers to
alive. See JAM-2996.
NYI: BUG: Invariant (4) is currently not maintained. As a result, there
is a resource leak when a deadline miss handler is installed: the
missTimer_ keeps active forever and keep objects that it refers to
alive. See JAM-2996.
-
costHasBeenReset_
boolean costHasBeenReset_
This field communicates to the cost sampling thread that the cost has
been reset, so that it can take the appropriate actions.
The field is set to true when setCost() gets called after the first
release. It gets reset to false by the cost sampling thread after it
has taken the appropriate actions.
Note that this field never gets set before the first release. Calls to
setCost() before the first release don't set this field to true.
Class invariant: costHasBeenReset implies hasStarted.
-
pgpe
com.aicas.jamaica.lang.ProcessingGroupParametersExtension pgpe
The instance of the class ProcessingGroupParametersExtension that is
associated with this object. This peer class provides aicas-specific
additional functionalities that are not part of the RTSJ 1.0.2.
-
overrunEntryVisitor
javax.realtime.SchedulablesAndThreads.Visitor overrunEntryVisitor
A visitor that will be applied to all members of this processing group
when a cost overrun state is entered.
This attribute is an aicas-specific extension that is not part of the
RTSJ 1.0.2.
-
overrunExitVisitor
ProcessingGroupParameters.Visitor overrunExitVisitor
A visitor that will be applied to all members of this processing group
when a cost overrun state is exited.
This attribute is an aicas-specific extension that is not part of the
RTSJ 1.0.2.
-
startPeriod_
AbsoluteTime startPeriod_
Preallocated time value for cost checking: start of current
period.
-
endPeriod_
AbsoluteTime endPeriod_
Preallocated time value for cost checking: start of next
period.
-
nextCostChecking_
AbsoluteTime nextCostChecking_
Preallocated time value for cost checking: time to check cost
next.
-
currentCost_
RelativeTime currentCost_
Preallocated temporary RelativeTimes for use by checkCostBudget:
-
remainingCost_
RelativeTime remainingCost_
-
costBudget_
RelativeTime costBudget_
The cost budget to be checked for the current release. This is a
copy of the cost from release_.cost since the release parameters
may be changed during the current release, which should have no
effect on the current release.
-
overrun_
AsyncEvent overrun_
Event to be fired when cost overrun is detected.
-
overrunTimer_
OneShotTimer overrunTimer_
Timer to be used for cost overrun detection. This timer will be
created if release parameters have an overrunHandler.
-
overrunTimerHandler_
AsyncEventHandler overrunTimerHandler_
The internal AsyncEventHandler that is associated with the overrunTimer_.
Class invariant: (overrunTimer_ != null) iff (overrunTimerHandler_ != null)
-
checkCostOnThisRelease_
boolean checkCostOnThisRelease_
Flag that indicates that cost should be checked on the next
release (the cost is not checked on the beginning of the first
release or at the end of any release that already fired an
overrun event).
-
newPeriod_
boolean newPeriod_
Flag that indicates that the next release starts a new period,
i.e., the cost needs to be reset.
-
miss_
AsyncEvent miss_
Event to be fired when deadline miss is detected.
-
missTimer_
OneShotTimer missTimer_
Timer to be used for deadline miss detection. This timer will be
created if release parameters have a missHandler_.
-
nextDeadlineChecking_
AbsoluteTime nextDeadlineChecking_
Preallocated time value for cost checking: time to check deadline
next (this is either the start of the next period or the next
deadline, inExecutionSlot will be toggle on each release).
-
inExecutionSlot_
boolean inExecutionSlot_
Flag that indicates whether we are currently allowed to execute
code.
-
getCurrentCostVisitor
javax.realtime.ProcessingGroupParameters.GetCurrentCostVisitor getCurrentCostVisitor
A visitor that computes the current cpu consumption of this processing
group within the current period.
This visitor is not thread-safe. It must only be accessed from the thread
that samples the current cpu times for this processing group.
-
resetCurrentCostVisitor
javax.realtime.ProcessingGroupParameters.ResetCurrentCostVisitor resetCurrentCostVisitor
A visitor that resets the state of all members of this processing group,
i.e., resets the current cpu consumption to 0 and resets inOverrunState to
false.
This visitor is not thread-safe. It must only be accessed from the thread
that samples the current cpu times for this processing group.