DotRecastNetSim/src/DotRecast.Core/AtomicFloat.cs

29 lines
617 B
C#
Raw Normal View History

2023-03-14 08:02:43 +03:00
using System.Threading;
2023-03-16 19:09:10 +03:00
namespace DotRecast.Core
{
2023-03-16 19:48:49 +03:00
public class AtomicFloat
2023-03-14 08:02:43 +03:00
{
2023-03-16 19:48:49 +03:00
private volatile float _location;
2023-03-14 08:02:43 +03:00
2023-03-16 19:48:49 +03:00
public AtomicFloat(float location)
{
_location = location;
}
2023-03-14 08:02:43 +03:00
2023-03-16 19:48:49 +03:00
public float Get()
{
return _location;
}
2023-03-14 08:02:43 +03:00
2023-03-16 19:48:49 +03:00
public float Exchange(float exchange)
{
return Interlocked.Exchange(ref _location, exchange);
}
public float CompareExchange(float value, float comparand)
{
return Interlocked.CompareExchange(ref _location, value, comparand);
}
2023-03-14 08:02:43 +03:00
}
}