<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Hi,<DIV><BR><DIV><DIV>On Sep 8, 2006, at 3:26, Camp, TracyX E wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"> <DIV class="Section1"><P class="MsoNormal"><FONT size="2" face="Arial"><SPAN style="font-size:10.0pt; font-family:Arial">I’ve worked on a forked variant of spread in the recent past.  I’m planning on posting a few of the more useful bits of the variant fairly soon.  Anyways we did have a watchdog facility in our variant.  It worked by having an API that scheduled a timed event to the main client event loop (i.e. an E_queue() call).  The callback the API specified would send a heartbeat message to the local spread daemon and schedule another upcall.  The spread-daemon had an aliveness counter for each socket that if it wasn’t updated in a certain number of seconds would cause various things to happen.  In our case we took the entire spread daemon down, but in your case it could simply do a sess_kill() on the offended socket, which would in turn cause membership to change.<O:P></O:P></SPAN></FONT></P></DIV></BLOCKQUOTE>Interesting, that sounds like it would work perfectly.  Thanks for the info!<BR></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Alec</DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR></DIV></BODY></HTML>