I've heard that LOCK INC is actually slower than a CAS loop, but have no data 
to back this up.  What I really don't like about INC however is that it doesn't 
put the new value of the incremented variable in a register, so there's no way 
of returning the new value.

On Aug 27, 2010, at 7:45 AM, David Simcha wrote:

> IIRC (maybe this has changed recently) atomic increments in core.atomic are 
> based on CAS instructions in a while loop, which is how more generic lock 
> free primitives are made.  Atomic increment should be special cased to 
> directly use lock; inc [someRegister];.  
> 
> On Fri, Aug 27, 2010 at 10:40 AM, Sean Kelly <[email protected]> wrote:
> On Aug 27, 2010, at 7:11 AM, David Simcha wrote:
> >
> >>
> >> I see you have some CAS instructions. Sean, I think it's a good time to 
> >> collaborate with David to put them into druntime or std.concurrency.
> >
> > Yeah, D needs a real atomics library.  core.atomic is a good start, but I 
> > won't use it until it can efficiently do things like atomic increment.
> 
> How could it be made more efficient?
> _______________________________________________
> phobos mailing list
> [email protected]
> http://lists.puremagic.com/mailman/listinfo/phobos
> 
> _______________________________________________
> phobos mailing list
> [email protected]
> http://lists.puremagic.com/mailman/listinfo/phobos

_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to