Subj : RCU+SMR To : comp.programming.threads From : Joe Seigh Date : Thu Jul 07 2005 09:48 pm There's a pre-alpha prototype on http://atomic-ptr-plus.sourceforge.net/ package name fastsmr_0-0-1 It only supports 32 bit ppc OS X and 32bit intel Linux. If you want it ported to other platforms, I'll send you my shipping address. I'm particularly interested in Niagara 8 core processor or Opteron 2 core processor machines. :) I haven't finished refactoring it so the api isn't totally stable. It might be a while before another release as I'm thinking of doing a project with it to get a better feel for the issues. And I still have no idea what the project will be. In the OS X version, I intially had the test for thread run state backwards. Only I didn't notice it at first since all the threads were showing a status of not running, which is what you'd expect on a uniprocessor. It turns out that for short preemption like sched_yield or nanosleep for short periods of time, the thread is just thrown onto the run queue with "running" status even though it may be a while before the thread actually runs. Naturally, this slowed things down once I fixed the status check. I speeded up the testcase by having the threads wait longer which caused the threads to actually get suspended with a "not running" status. Fun things, these scheduler artifacts. -- Joe Seigh When you get lemons, you make lemonade. When you get hardware, you make software. .