Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!rpi!bu.edu!snorkelwacker!bloom-beacon!pae From: pae@athena.mit.edu (Philip Earnhardt) Newsgroups: comp.protocols.misc Subject: Re: RPC Technologies Summary: Must Threads be Preemptive? Keywords: NCS Threads Preemption Message-ID: <1990Sep5.194621.11656@athena.mit.edu> Date: 5 Sep 90 19:46:21 GMT Sender: daemon@athena.mit.edu (Mr Background) Followup-To: Phil Earnhardt (onecom!wldrdg!pae) Organization: Netwise, Inc. Lines: 24 >> Finally, are the multiple threads of a NCS2.0 implementation cooperative >> -- do current implementations need a preemptive multi-threading package? > Preemption is required if servers are going to have threads (including > threads running some client's call) that are not going to voluntarily > yield (or terminate) within a relatively short period of time, e.g., > 30 seconds. This is because the server has a thread created by the NCS > implementation that listens for "ping" messages from the client (which > is trying to determine the server's liveness). If this thread doesn't > get a chance to run for long enough, the client will think the server > has died. (Note that the client automatically reduces the ping frequency > during the duration of a single call.) Again, let me paraphrase to see if I understand what you're saying here: "A multi-threaded implementation of NCS must use preemptive threads." The alternative to this is to impose the semantic limitation that the user's appliction code must not run for "too long". This would qualify as a pretty arbitrary limitation to put on a distributed applications programmer. Phil Earnhardt Netwise, Inc. 2477 55th St. Boulder, CO 80301 Phone:303-442-8280 UUCP: onecom!wldrdg!pae My opinions do not reflect any official position of Netwise.