[fpc-pascal] getting started with threads

Dariusz Mazur darekm at emadar.com
Fri Sep 18 21:30:07 CEST 2009


Jonas Maebe pisze:
>
> On 18 Sep 2009, at 16:24, Dariusz Mazur wrote:
>
>> I use own lockfree FIFO http://www.emadar.com/fpc/lockfree.htm to 
>> distribute task between threads
>> its much faster and well scaling on multicore.
>
> Note that it won't work as is on non-x86 machines, because it's 
> missing memory barriers (and I think that you may actually need memory 
> barriers on x86 too). Atomic operations are not memory barriers by 
> themselves, and the fact that you perform an atomic operation does not 
> mean that afterwards all cpu's will immediately see this new value.
I don't know other machines. On x86 used atomic operation, as Intel 
said,  all needed cache are resolved.
I've made very stress test on several computers. it works good.
Algorithm is very simple, need only 32bit CAS, thus implement it is 
possible on most platforms.
One thing is needed: multiplatform threadswich.

I use sleep(0) ,but its not best solution (I think).


-- 
  Darek







More information about the fpc-pascal mailing list