private ByteBuffer TakeBufferFromPool()
{
ByteBuffer buffer = null;
lock (_pool.SyncRoot)
{
if (_buffersInPool > 0)
{
_buffersInPool -= 1;
buffer = _pool[_buffersInPool];
}
}
if (buffer == null)
return Allocate(_defaultBufferSize);
buffer.Clear();
return buffer;
}