(Illustration by Gaich Muramatsu)
On Sun, 26 Jul 1998, Jim Doyle wrote: > > This would be quite a bit of work, but the results would be quite good -- > > especially if in the future there are ports to Java, etc, where threads > > are more common-place than present-day UNIX. > > Funny. I see Pthreads as being "already everywhere". These are the > platforms that I know of that come with Pthreads, including thread-safe > libraries: Rather than the availability of threads, I meant more the use of threads -- under Java, threads are an inherrent part of program design -- if you use AWT, you use threads. If you use networking, you use threads. In many (most?) UNIXes, threads appear to be an afterthought. Consider the semantics of fork() -- Solaris has two versions that describe different possible desired semantics (fork only the current thread active, or fork the entire process? What about signal delivery to other threads? How should lock requests be handled in the child? Pthreads does not address all issues involved in threading, so you can still hit on ambiguous cross-platform issues). The traditional concept of "fork" does not mix well with user-land threading. Java support classes, on the other hand, were really designed with threading in mind. Threading is widely available under UNIX -- I just suspect it is not as widely used as in other architectures. On the other hand, I'd love to see pthreads support in Coda, I just suspect that fixing the current-day concurrency problems is not going to be an easy task. I believe RPC2 current can handle preemptive multi-threading by virtue of a single critical section contaning all RPC2 code; there is a preemption package in LWP that RPC2 supposedly can coexist with. However, I have not actually confirmed that this works. Does Coda currently use blocking DNS calls? I suspect it just calls the libc gethostbyname/etc, which (without using native threading) can result in considerable blocking. One key issue in going to native threads might be whether RVM also can handle preemption. Robert N Watson Carnegie Mellon University http://www.cmu.edu/ TIS Labs at Network Associates, Inc. http://www.tis.com/ SafePort Network Services http://www.safeport.com/ robert@fledge.watson.org http://www.watson.org/~robert/Received on 1998-07-27 08:28:53