From: Eric Hodel Date: 2005-11-22T03:33:07+09:00 Subject: Re: Four Rinda Questions On Nov 20, 2005, at 1:38 PM, entropic_rune wrote: > 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. -- Eric Hodel - drbrain@segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04