Browse Source

Make ThreadSafeObjectPool actually thread safe (#8106)

* Make ThreadSafeObjectPool actually thread safe
pull/8112/head
Nikita Tsukanov 4 years ago
committed by GitHub
parent
commit
2f1ffbd81e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  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