|
JanosVM v1.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.lang.isolate.AggregateStateManager
A global map of aggregate-wide Isolate state.
All globally useful state related to an isolate is kept here, in
IsolateStatus
objects. The IsolateStatus
is Exportable
(exported under the isolate's GUID). All
this state may continue to exist after an isolate has terminated
(any active handle on the isolate may query this or may create an
EventLink to the isolate).
The parent isolate will advance a new isolate from 'INVALID' to 'NEWBORN' to 'STARTING'. The main thread of the isolate will advance it to 'RUNNING'. The IsolateBackEnd in the isolate will advance it to 'DYING' and 'DEAD'. Thus we avoid race conditions.
XXX: Kernel entry/exit on each method is really verbose and ugly.
Inner Class Summary | |
(package private) static class |
AggregateStateManager.EventStatusHandle
A handle on an IsolateStatus used by an EventLink (enables state tracking in the IsolateStatus). |
private static class |
AggregateStateManager.IsolateStatus
Global state for a single isolate. |
(package private) static class |
AggregateStateManager.IsolateStatusHandle
A handle on an IsolateStatus for use by an Isolate object. |
Field Summary | |
private static java.lang.String |
EXIT_ON_LAST
|
private int |
isolateCount
|
private java.lang.Object |
lock
|
Constructor Summary | |
(package private) |
AggregateStateManager()
|
Method Summary | |
(package private) void |
isolateDied(IsolateBackEnd ibe)
Invoked by IsolateBackEnd.event(edu.utah.janosvm.sys.EventTeamHandle, edu.utah.janosvm.sys.TeamReservation, edu.utah.janosvm.sys.TeamEvent) to indicate when
the given isolate has died. |
(package private) AggregateStateManager.EventStatusHandle |
newEventHandleOn(java.lang.Long targetGUID)
|
(package private) AggregateStateManager.IsolateStatusHandle |
newHandleOn(java.lang.Long targetGUID)
Create a new handle on the given Isolate's IsolateState |
(package private) AggregateStateManager.IsolateStatusHandle |
newHandleOn(java.lang.Long targetGUID,
IsolateServer isoServer)
Create a new handle on the given Isolate's IsolateState |
(package private) AggregateStateManager.IsolateStatusHandle |
registerNewIsolate(java.lang.Long targetGUID)
|
(package private) AggregateStateManager.IsolateStatusHandle |
registerNewIsolate(java.lang.Long targetGUID,
IsolateServer isoServer)
Register a new isolate with the aggregate. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait, wait0 |
Field Detail |
private static final java.lang.String EXIT_ON_LAST
private final java.lang.Object lock
private int isolateCount
Constructor Detail |
AggregateStateManager()
Method Detail |
AggregateStateManager.IsolateStatusHandle registerNewIsolate(java.lang.Long targetGUID)
AggregateStateManager.IsolateStatusHandle registerNewIsolate(java.lang.Long targetGUID, IsolateServer isoServer)
AggregateStateManager.IsolateStatusHandle newHandleOn(java.lang.Long targetGUID)
AggregateStateManager.IsolateStatusHandle newHandleOn(java.lang.Long targetGUID, IsolateServer isoServer)
AggregateStateManager.EventStatusHandle newEventHandleOn(java.lang.Long targetGUID)
void isolateDied(IsolateBackEnd ibe)
IsolateBackEnd.event(edu.utah.janosvm.sys.EventTeamHandle, edu.utah.janosvm.sys.TeamReservation, edu.utah.janosvm.sys.TeamEvent)
to indicate when
the given isolate has died.
Warning: Invoked in the context of an arbitrary team
|
JanosVM v1.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |