Mercurial > hg > Database > jungle-sharp
view Main/jungle-main/transaction/AtomicReference.cs @ 41:bd44baa491a9 default tip
add TestJungleCore.cs
author | Kazuma Takeda |
---|---|
date | Thu, 23 Feb 2017 17:19:55 +0900 |
parents | 1f99e150f336 |
children |
line wrap: on
line source
using System.Threading; public class AtomicReference <T> where T : class { private T value; public AtomicReference(T value) { this.value = value; } public bool CompareAndSet(T newValue, T prevValue) { T oldValue = value; if (oldValue == prevValue) { Interlocked.CompareExchange (ref value, newValue, prevValue); return true; } else { return false; } } public T Get() { return value; } }