public unsafe void ReferenceCounting() { var owned = new CustomMemory(); var memory = owned.Memory; Assert.Equal(0, owned.OnZeroRefencesCount); Assert.False(owned.HasOutstandingReferences); using (memory.Reserve()) { Assert.Equal(0, owned.OnZeroRefencesCount); Assert.True(owned.HasOutstandingReferences); } Assert.Equal(1, owned.OnZeroRefencesCount); Assert.False(owned.HasOutstandingReferences); }
public unsafe void ReferenceCounting() { var owned = new CustomMemory(); var memory = owned.Buffer; Assert.Equal(0, owned.OnZeroRefencesCount); Assert.False(owned.IsRetained); using (memory.Retain()) { Assert.Equal(0, owned.OnZeroRefencesCount); Assert.True(owned.IsRetained); } Assert.Equal(1, owned.OnZeroRefencesCount); Assert.False(owned.IsRetained); }