Non-blocking array queue.

Martin martinbbjerregaard at gmail.com
Sat Mar 8 13:16:36 PST 2014


On Saturday, 8 March 2014 at 21:12:42 UTC, Shammah Chancellor 
wrote:
> On 2014-03-08 19:58:01 +0000, Martin said:
>
>> On Saturday, 8 March 2014 at 19:02:26 UTC, Shammah Chancellor 
>> wrote:
>>> Hi,
>>> 
>>> I'm interesting in implementing a non-blocking queue.   My 
>>> thought is to use a fixed-size array, and increment back of 
>>> the queue with a integer.   I was thinking I could make this 
>>> non-blocking via an atomic increment operation before 
>>> assigning the pushed value onto the queue.   So, my question 
>>> is:   How would you do an atomic increment in a 
>>> cross-platform way in D?
>>> 
>>> 
>>> Thanks!
>>> -S.
>> 
>> I think you could use 
>> http://dlang.org/phobos/core_atomic.html, maybe?
>
> I didn't see a way to get an an increment operation.   atomicOp 
> doesn't seem to offer unitary operations.
>
> -S.

atomicOp!("+=")(value, 1);

Should work, I believe. Or is that not what you meant?


More information about the Digitalmars-d-learn mailing list