Esempio n. 1
0
        public void CommitMemoryManager()
        {
            AssertReadOnly("commit memory manager");
            _isCommitted = true;

            if (UseUnsafeMemoryManager)
            {
                LockMemoryManager(() =>
                {
                    // Inlined because the memory _memoryManagerStream may be
                    // closed at this point.
                    if (_memoryManagerStream == null)
                    {
                        using (var s = CreateMemoryManagerStream())
                        {
                            MemoryManagerSerializer.Serialize(s, _memoryManager);
                        }
                    }
                    else if (_memoryManagerStream.CanWrite)
                    {
                        _memoryManagerStream.Position = 0;
                        MemoryManagerSerializer.Serialize(_memoryManagerStream, _memoryManager);
                    }
                });
            }
        }
Esempio n. 2
0
 public void WriteMemoryManagerUnsafe(MemoryManager memoryManager)
 {
     AssertReadOnly("write memory manager");
     _memoryManagerStream.Position = 0;
     MemoryManagerSerializer.Serialize(_memoryManagerStream, memoryManager);
     _memoryManagerStream.Flush();
 }
Esempio n. 3
0
        public override int Count()
        {
            var count = 0;

            LockMemoryManager(() =>
            {
                count = !UseUnsafeMemoryManager ? MemoryManagerSerializer.DeserializeCount(_memoryManagerStream) : _memoryManager.Allocations.Count;
            });

            return(count);
        }
Esempio n. 4
0
        public MemoryManager ReadMemoryManagerUnsafe()
        {
            _memoryManagerStream.Position = 0;

            return(MemoryManagerSerializer.Deserialize(_memoryManagerStream, _stream));
        }