public PooledMemory(IMemoryOwner <byte> owner, TestMemoryPool pool) { _owner = owner; _pool = pool; _leaser = Environment.StackTrace; _referenceCount = 1; }
public async Task ReadMultipleTimesAdvanceFreesAppropriately() { var pool = new TestMemoryPool(); CreateReader(memoryPool: pool); WriteByteArray(2000); for (var i = 0; i < 99; i++) { var readResult = await Reader.ReadAsync(); Reader.AdvanceTo(readResult.Buffer.Start, readResult.Buffer.End); } var result = await Reader.ReadAsync(); Reader.AdvanceTo(result.Buffer.End); Assert.Equal(1, pool.GetRentCount()); }
public async Task ReadMultipleTimesAdvanceFreesAppropriately() { var blockSize = 16; var pool = new TestMemoryPool(); Reader = new StreamPipeReader(MemoryStream, blockSize, pool); Write(Encoding.ASCII.GetBytes(new string('a', 10000))); for (var i = 0; i < 99; i++) { var readResult = await Reader.ReadAsync(); Reader.AdvanceTo(readResult.Buffer.Start, readResult.Buffer.End); } var result = await Reader.ReadAsync(); Reader.AdvanceTo(result.Buffer.End); Assert.Equal(1, pool.GetRentCount()); }