[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Poison


> I'm interested in the OUG-10 article on Graceful Termination.
> I do not have the OUG-10 proceedings.
> Can someone send me the article in a printable format?

I'm looking for an electronic version :-( ... will send you hard copy if
I can't find it.

> I would expect something like: Poison can be sent via any channel.
> To make a process gracefully terminate, one sends poison down a channel.
> On reception of poison via an input channel, the process automatically
> distributes Poison to all output channels.  One waits until poison
> has been received on all input channels, and exits "gracefully".

:) Easy, isn't it!  Took me a whole paper to get to that and you say it
in 5 lines ... grrr!!

Important point: after reciept of poison, the onward distribution and waiting
for poison on all other channels must all be done in PAR - otherwise deadlock
may happen.

Key property: anyone inside or outside a system can gracefully terminate it.
Those decisions need no coordination - they can happen in parallel.

The paper had a version of this (graceful resetting) that shows how either
to terminate a sub-network or to reset all the processes in that sub-network
(which could, of course, be the whole network) to a known state.  Same
algorithm - distribute a RESET signal and instead of *exiting* gracefully,
just go into your reset state.  The guarantee is that the first communications
you then perform on any channels will be the first communications of the
processes you are communicating with, following their resets.