IW4M-Admin/SharedLibraryCore/Helpers/ThreadSafe.cs

49 lines
936 B
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
2018-04-08 02:44:42 -04:00
namespace SharedLibraryCore.Helpers
{
/// <summary>
/// Excuse this monstrosity
/// </summary>
/// <typeparam name="T"></typeparam>
public class ThreadSafe<T>
{
private bool _lock;
private T instance;
public ThreadSafe(T instance)
{
this.instance = instance;
_lock = true;
}
public T Value
{
get
{
// shush
if (_lock)
return Value;
_lock = true;
return instance;
}
set
{
if (_lock)
{
Value = Value;
return;
}
instance = Value;
}
}
}
}