(Illustration by Gaich Muramatsu)
On Tue, Aug 03, 1999 at 01:19:05AM -0600, Lou Langholtz wrote: > Sorry about this question, I imagine I've just missed some obvious > pre-processor or makefile directive for this.... > > It seems like Coda uses its own threads implemention as seen in > lib-src/mlwp/*. These files seem to be referenced as OLDLWP and there's > nothing more than a macro define that I can find for a > NEWLWP (libnewlwp.a in the lib-src/mlwp/Makefile.in). Can the LWP API be > re-written to use existing threads libraries like posix threads instead? > Wouldn't that make the code easier to port? > > Thoughts? Comments? RTFM suggestions with the right page to read? Ideas? > Thanks! Already done that, the biggest problem is that Coda assumes co-routines, and has problems with true preemptive/concurrent threads, I put a lwp-compatible layer on top of pthreads, with a run_mutex etc. Context switching is about 10x slower (50us vs 5us), debugging is a little bit easier because gdb can switch to a different thread, and it actually is less portable because there is no pthread library for Windows ;) Maybe there is a slight performance/responsiveness win when some threads such as the RPC2/SFTP SocketListeners and the rvm_truncation thread are rewritten to be fully concurrent. Last weekend I also looked at a possible `hybrid' solution, where the LWP package would be running on top of 1 pthread. But that failed miserably because thread specific data is placed on the stack, and LWP tends to mess around with the stacks. JanReceived on 1999-08-03 11:28:16