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); } }); } }
public void WriteMemoryManagerUnsafe(MemoryManager memoryManager) { AssertReadOnly("write memory manager"); _memoryManagerStream.Position = 0; MemoryManagerSerializer.Serialize(_memoryManagerStream, memoryManager); _memoryManagerStream.Flush(); }
public override int Count() { var count = 0; LockMemoryManager(() => { count = !UseUnsafeMemoryManager ? MemoryManagerSerializer.DeserializeCount(_memoryManagerStream) : _memoryManager.Allocations.Count; }); return(count); }
public MemoryManager ReadMemoryManagerUnsafe() { _memoryManagerStream.Position = 0; return(MemoryManagerSerializer.Deserialize(_memoryManagerStream, _stream)); }