Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }