From ca2f4c550b643ac65049f3bd82a3be7f70ac1948 Mon Sep 17 00:00:00 2001 From: MaxXor Date: Wed, 10 Jun 2015 16:31:14 +0200 Subject: [PATCH] Added lock object for free buffer stack in PooledBufferManager.cs --- Server/Core/Networking/PooledBufferManager.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Server/Core/Networking/PooledBufferManager.cs b/Server/Core/Networking/PooledBufferManager.cs index 13893c16..f68afa82 100644 --- a/Server/Core/Networking/PooledBufferManager.cs +++ b/Server/Core/Networking/PooledBufferManager.cs @@ -12,6 +12,7 @@ public class PooledBufferManager private readonly int _bufferLength; private int _bufferCount; private Stack _buffers; + private object _buffersLock = new object(); #region events /// @@ -128,7 +129,7 @@ public byte[] GetBuffer() { if (_buffers.Count > 0) { - lock (_buffers) + lock (_buffersLock) { if (_buffers.Count > 0) { @@ -175,7 +176,7 @@ public bool ReturnBuffer(byte[] buffer) } } - lock (_buffers) + lock (_buffersLock) { if (!_buffers.Contains(buffer)) _buffers.Push(buffer); @@ -203,7 +204,7 @@ public void IncreaseBufferCount(int buffersToAdd) newBuffers.Add(new byte[_bufferLength]); } - lock (_buffers) + lock (_buffersLock) { _bufferCount += buffersToAdd; for (int i = 0; i < buffersToAdd; i++) @@ -231,7 +232,7 @@ public int DecreaseBufferCount(int buffersToRemove) int numRemoved = 0; - lock (_buffers) + lock (_buffersLock) { for (int i = 0; i < buffersToRemove && _buffers.Count > 0; i++) {