public AmqpPrimitivesWriter(ArrayPool <byte> bufferPool,
                                    ObjectPoolArray <ReusableTempWriter> memStreamPool)
        {
            _bufferPool = bufferPool ?? ArrayPool <byte> .Create(BufferSize, 5);

            if (memStreamPool == null)
            {
                memStreamPool = new ObjectPoolArray <ReusableTempWriter>(() =>
                {
                    if (LogAdapter.ExtendedLogEnabled)
                    {
                        LogAdapter.LogDebug(LogSource, "Creating new writer");
                    }

                    return(new ReusableTempWriter(ArrayPool <byte> .Create(BufferSize, 5), _memStreamPool));
                }, 6, preInitialize: false);
            }
            _memStreamPool = memStreamPool;
        }