using System.Threading; namespace DotRecast.Core { public class AtomicBoolean { private volatile int _location; public bool set(bool v) { return 0 != Interlocked.Exchange(ref _location, v ? 1 : 0); } public bool get() { return 0 != _location; } } }