GSF.IO.Unmanaged.MemoryPoolStreamCore.IncreasePageCount C# (CSharp) Method

IncreasePageCount() private method

Increases the size of the Memory Stream and updated the settings if needed
private IncreasePageCount ( int pageCount ) : void
pageCount int
return void
        private void IncreasePageCount(int pageCount)
        {
            lock (m_syncRoot)
            {
                bool cloned = false;
                Settings settings = m_settings;
                if (settings.AddingRequiresClone)
                {
                    cloned = true;
                    settings = settings.Clone();
                }

                //If there are not enough pages in the stream, add enough.
                while (pageCount > settings.PageCount)
                {
                    int pageIndex;
                    IntPtr pagePointer;
                    m_pool.AllocatePage(out pageIndex, out pagePointer);
                    Memory.Clear(pagePointer, m_pool.PageSize);
                    settings.AddNewPage(pagePointer, pageIndex);
                }

                if (cloned)
                {
                    Thread.MemoryBarrier(); // make sure that all of the settings are saved before assigning
                    m_settings = settings;
                }
            }
        }