While the paper on Linux's spinlock semantics was very interesting, it remains 
the fact that this is not the case in Windows in this particular instance.

A lot of ReactOS code *is* missing calls such as KeMemoryBarrier() and 
(volatile), and only works by chance, so the argument that "otherwise our code 
wouldn't work" is a bit of a fallacy.

You also need to think outside the strict-ordering x86 box. Most of ReactOS' 
code is totally borked on IA64, PPC or ARM (and semi-broken on x64 too, which 
has looser ordering).

Of course, feel free to ignore the suggestion.

--
Best regards,
Alex Ionescu

On 2011-06-03, at 8:08 AM, Timo Kreuzer wrote:

> Am 03.06.2011 13:24, schrieb Alex Ionescu:
>> Ah, I didn't see the caller.
>> 
>> There's still the issue of the missing volatile. It's required to make sure 
>> there is strict ordering between the spinlock acquisition and the 
>> increment/decrement.
>> 
> Ordering is guaranteed, since the spinlock functions act as memory barriers, 
> otherwise a lot of our code wouldn't work.
> Suggested reading: 
> http://kernel.org/doc/Documentation/volatile-considered-harmful.txt
> 
> Regards,
> Timo
> 
> 
> _______________________________________________
> Ros-dev mailing list
> [email protected]
> http://www.reactos.org/mailman/listinfo/ros-dev


_______________________________________________
Ros-dev mailing list
[email protected]
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to