Browse Source

Make ThreadSafeObjectPool actually thread safe (#8106)

* Make ThreadSafeObjectPool actually thread safe
7963-stable
Nikita Tsukanov 4 years ago
committed by Dan Walmsley
parent
commit
4f3fa13372
  1. 3
      src/Avalonia.Base/Threading/ThreadSafeObjectPool.cs

3
src/Avalonia.Base/Threading/ThreadSafeObjectPool.cs

@ -5,12 +5,11 @@ namespace Avalonia.Threading
public class ThreadSafeObjectPool<T> where T : class, new()
{
private Stack<T> _stack = new Stack<T>();
private object _lock = new object();
public static ThreadSafeObjectPool<T> Default { get; } = new ThreadSafeObjectPool<T>();
public T Get()
{
lock (_lock)
lock (_stack)
{
if(_stack.Count == 0)
return new T();

Loading…
Cancel
Save