bool Associative Array Synchronized
John Colvin
john.loughran.colvin at gmail.com
Thu Mar 20 10:58:14 PDT 2014
On Thursday, 20 March 2014 at 17:43:58 UTC, Etienne wrote:
> I'd like to "cowboy it" on an AA that looks like this:
>
> __gshared bool[string] m_mutex;
>
> I think it'll be much faster for my code because this AA could
> need to be checked and switched possibly millions of times per
> second and I wouldn't want to slow it down with a mutex
> protecting it.
>
> I'm thinking the bool would be synchronized at the hardware
> level anyway, since it's just a bit being flipped or returned.
> Am I right to assume this and (maybe an assembly guru can
> answer) it safe to use?
>
> Thanks
On x86 only?
If all you do is read/write from/to each location then you are
guaranteed atomicity. Adding/removing members? Forget it
Also, atomicity is not a strong enough guarantee for implementing
a mutex, which is what I assume you are trying to do. You need
ordering guarantees as well.
Watch both of these:
http://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2
http://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-2-of-2
and then look at core.atomic
and then give up and use a lock :p
More information about the Digitalmars-d-learn
mailing list