Four Rinda Questions

Rinda looks very interesting, but appears to differ in puzzling ways
from the Linda model descriptions of Carriero and Gelernter. Perhaps
someone has read the source and can answer these questions:

* Does Rinda support 'live' tuples, in the Gelernter sense of
containing running processes, rather than the Rinda::TupleEntry
.alive? sense of 'not cancelled and not expired'?

* Can somebody explain Tuple expiration? I mean Rinda::SimpleRenewer,
Rinda::TupleSpace.new(period), etc. Based on the docs, it sounds like
my Tuples should have vanished, but they don't seem to in practice.
Frankly I don't want part of my computational state disappearing! Why
would anybody? Can this feature be turned off/on?

* What do the 'sec' arguments in Rinda::TupleSpace .read and .take do?
They don't seem to time out requests that go to sleep waiting for an
existing Tuple.

* What do the blocks for Rinda::TupleSpace .read and .take do?

Thanks!

Rinda looks very interesting, but appears to differ in puzzling ways
from the Linda model descriptions of Carriero and Gelernter. Perhaps
someone has read the source and can answer these questions:

* Does Rinda support 'live' tuples, in the Gelernter sense of
containing running processes, rather than the Rinda::TupleEntry
.alive? sense of 'not cancelled and not expired'?

No. You could make something similar by using references to a Thread.

* Can somebody explain Tuple expiration? I mean Rinda::SimpleRenewer,
Rinda::TupleSpace.new(period), etc. Based on the docs, it sounds like
my Tuples should have vanished, but they don't seem to in practice.
Frankly I don't want part of my computational state disappearing! Why
would anybody? Can this feature be turned off/on?

nil says "This tuple never expires".

false says "This tuple is always expired".

A Numeric is treated as a TTL in seconds.

A SimpleRenewer sets a recheck interval, so the liveness will be checked every so-many seconds.

* What do the 'sec' arguments in Rinda::TupleSpace .read and .take do?
They don't seem to time out requests that go to sleep waiting for an
existing Tuple.

They should cause read/take to raise a RequestExpiredError when the tuple expires. I'm not sure why it wouldn't, I haven't used it yet.

* What do the blocks for Rinda::TupleSpace .read and .take do?

They yield the WaitTemplateEntry created for reading/taking from the TupleSpace. You could use it to cancel the action.

ยทยทยท

On Nov 20, 2005, at 1:38 PM, entropic_rune wrote:

--
Eric Hodel - drbrain@segment7.net - http://segment7.net
FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04