[Isolate-interest] JSR-121 aggregates and links (strawman 10)
Godmar Back
gback@cs.vt.edu
Tue, 28 Sep 2004 21:56:56 -0400
On Tue, 28 Sep 2004 21:34:31 -0400, Pete Soper <pete@soper.us> wrote:
> All these things that
> > traditional capability channel go into great length to describe and
> > define and that I didn't see in the JSR spec I looked at.
>
> Sorry. Is there a particular example that we could look at as a good model?
>
I'm not sure if it's a good model, but a model that provides an
obvious parallel is Unix's way of passing file descriptors between
processes using such mechanisms as cmsg(3)+SCM_RIGHTS. This mechanism
declares that the received file descriptors "behave as though they
have been created using dup(2)".
There is no dup() in Java, so it appears we don't have a similarly
universal comparison vehicle to fall back on in our definition. I
assume that a single process implementation on top of Unix should be
able to use dup(2) (that's what I did in KaffeOS), so the semantics
JSR-121 would need to define should be compatible with dup(2) for
these environments.
On the other hand, allowing all capability-carrying objects to be
copied 1:1 with dup-like semantics has implications on what a
cluster-based implementation can or cannot do. Do we assume that such
an implementation has to provide a strict single system image view?
For instance, if a ServerSocket is transferred after a bind/listen,
should it retain its InetAddress? What if it's transferred after bind
and before listen? For each possible semantics there are different
implementation options.
- Godmar