From: Vladimir T. <vtz...@gm...> - 2008-11-17 20:53:56
|
Hi, On Nov 17, 2008, at 9:28 PM, Sam Steingold wrote: > I plan to create the thread2 branch after I switch to gnulib > threadlib/lock/cond to get solaris and win32 "for free". > > Objections? Not real objections - but few concerns. The xmutex_t should be recursive (for consistency - critical section on Win32 are recursive - and gnulib uses them as well). The cond implementation in gnulib uses malloc() while the current clisp implementation uses the stack. In a long running process this may cause unexpected behavior. Also this is especially true for SPVW_PURE - where the malloc-ed areas can easily mix with the lisp heap (looks to me). I just looked on the gnulib and do not see "realy fast" spinlocks (may be I am wrong - have not looked too hard). In the current clisp spinlocks are inlined assembly instructions. Every heap allocation is guarded with a spinlock - so any overhead may cause significant decrease in performance. Vladimir |