JanosVM v1.0 API

Package java.lang.isolate

JanosVM Isolate API Prototype

See:
          Description

Interface Summary
IsolateMessageDispatcher.Listener  
 

Class Summary
AggregateStateManager A global map of aggregate-wide Isolate state.
AggregateStateManager.EventStatusHandle A handle on an IsolateStatus used by an EventLink (enables state tracking in the IsolateStatus).
AggregateStateManager.IsolateStatus Global state for a single isolate.
AggregateStateManager.IsolateStatusHandle A handle on an IsolateStatus for use by an Isolate object.
Assert  
BidiLink_Left  
BidiLink_Neither  
BidiLink_Right  
BidirectionalLink A bidirectional connection between two Isolates.
EventLink  
EventLink_Attached  
EventLink_Unattached  
Isolate  
IsolateBackEnd Unique object (one per Isolate) that stores the state for that isolate (initial io bindings, context, etc.)
IsolateEvent XXX Use a static global exiting event, since it has no associated mutable state.
IsolateEvent.ExitReason  
IsolateEvent.Type  
IsolateGUID Globally unique 64-bit ID manager.
IsolateMessage  
IsolateMessage_ByteArray  
IsolateMessage_Composite  
IsolateMessage_DatagramSocket  
IsolateMessage_DataMessage  
IsolateMessage_Empty  
IsolateMessage_Event  
IsolateMessage_FileInputStream  
IsolateMessage_FileOutputStream  
IsolateMessage_IOMessage All IsolateMessages that wrap IO objects extend this class.
IsolateMessage_Isolate  
IsolateMessage_Link  
IsolateMessage_Serializable  
IsolateMessage_ServerSocket  
IsolateMessage_Socket  
IsolateMessage_String  
IsolateMessageDispatcher XXX Horrible polling implementation.
IsolateMessageVisitor  
IsolatePermission  
IsolateServer An IsolateServer is a TeamHandle that refers to the team containing any isolate global data (e.g.
IsolateState State of an Isolate.
Link  
MainThread The main thread for a new Isolate.
OneWayLink A unidirectional connection from one Isolate to another.
OneWayLink_Both Implementation of a OneWayLink for the case where the same Isolate is both the sender and the receiver.
OneWayLink_Both.LinkMapAccessor Per-isolate mapping of link names to link points.
OneWayLink_Both.LinkPoint The LinkPoint is the common rendezvous point for different Link objects that all point to the same Link.
OneWayLink_Both.Timeout  
OneWayLink_Neither  
OneWayLink_Receiver OneWayLink instance for the receiver end of the link.
OneWayLink_RendezvousImport Importable reference to a OneWayLink_RendezvousPoint.
OneWayLink_RendezvousPoint A rendezvous point for a one-way link.
OneWayLink_Sender  
SyncObj  
Trace Use by setting property "isolate.trace" to a string of ",| " separated string constants from the table below.
Trace.Flag  
 

Exception Summary
Assert.Error  
ClosedLinkException  
IsolateStartupException  
LinkSerializationException  
 

Error Summary
IsolateResourceError  
UnimplementedError  
 

Package java.lang.isolate Description

JanosVM Isolate API Prototype

This is a prototype implementation of the public review version of the JSR-121 Application Isolation API.

There are no implied commitments to the final form of the API from the JSR-121 expert group in this implementation. This is definitely not the formal Reference Implementation (RI) for JSR-121.

Usage

jisovm: Use the jisovm wrapper script to start the VM. This puts the jar file that contains the Isolate implementation in the CLASSPATH before starting JanosVM, and provides an isolate-specific config file (see kaffe/etc/janosvm-isolate.config).

jisoc: A wrapper for jikes/javac/kjc to put the Isolate jar on the CLASSPATH before invoking a compiler. Useful for compiling code built on the Isolate API.

Caveats

No NIO-related support. There is no implementation of NIO for Kaffe or JanosVM, so there is no support in IsolateMessage for NIO types, and no support for LinkChannel.

Polling IsolateMessageDispatcher. The IsolateMessageDispatcher is a heavy-weight constant-polling implementation. This is consistent with the requirements of the API, but its a bit too heavy.

Single-procees. Single process implementation implies no JNI isolation, nor are VM faults isolated. Also any per-process limits apply to the entire aggregate. JanosVM does support per-Team resource limits, but the appropriate properties aren't exposed.

No AWT. JanosVM doesn't have any AWT support.

Partial ExitReason/ExitCode support. If Runtime.halt() or Runtime.exit() are used, the exit code won't be recorded in isolate's exit code (and the reason will be IMPLICIT_EXIT in both cases).

Debugging

There are some examples and simple test programs in the test/janosvm/isolate directory.

Tracing. Pass "-Disolate.trace=FOO" to jisovm to turn on "foo" tracing. See Trace.java for a list of valid foos.


JanosVM v1.0 API

This documentation is Copyright (C) 2000-2003 The University of Utah. All Rights Reserved. See the documentation license for distribution terms and restrictions.
Documentation, software, and mailing lists for the JanosVM can be found at the Janos Project web page: http://www.cs.utah.edu/flux/janos/
Generated on Feb 13, 2003