On 26/07/05, Dirk Gerrits dirk@dirkgerrits.com wrote:
Joel Reymont wrote:
I think within Erlang nodes use a keep alive message to make sure they have not been split off. Quite often, though, you cannot detect if the foreign process exists. If it's a local process id and you send it a message and it's dead then you will get a no_proc exception, not so with a foreign process.
It does seem to me that the easiest way to verify if a node is alive is to send a keep-alive message to a housekeeping process on that node and consider it split off if a reply is not received after a timeout.
Sounds perfectly reasonable to me.
Way to go! Of course, we could add a hook here. And actually, the keep-alive should itself be a option in the meta-level protocol, which is on by default (but would be off on top of, say, SNAIL).
I'm not sure if it matters if a node is dead or just split off.
Erlang doesn't make the distinction, does it?
Dunno. That's what we'll have to find out at some point.
Eric: you're paid to know before the end of summer :-)
My thinking is that if it's good enough for Erlang, it is /at least/ good enough for Erlisp stage 1. We can always reconsider later on (even though it might be more painful then ;)).
Yup.
In anycase, the process linking model is the foundation of any robust programming in Erlang. It is much more important to think about doing it properly than to any kind of object marshalling.
Joel: can you confirm? Which features of Erlang do you miss most?
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] I love deadlines. I love the whooshing sound they make as they fly by. -- Douglas Adams