mirror of https://github.com/quasar/Quasar.git
Added lock object for free buffer stack in PooledBufferManager.cs
This commit is contained in:
parent
fd221f2e42
commit
ca2f4c550b
|
@ -12,6 +12,7 @@ public class PooledBufferManager
|
|||
private readonly int _bufferLength;
|
||||
private int _bufferCount;
|
||||
private Stack<byte[]> _buffers;
|
||||
private object _buffersLock = new object();
|
||||
|
||||
#region events
|
||||
/// <summary>
|
||||
|
@ -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++)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue