Exemple #1
0
        protected override Yield Stop(Result result)
        {
            _expirationEntries.Dispose();
            _expirationEntries.EntryExpired -= OnDelete;
            _expirationEntries = null;
            _path = null;
            yield return(Coroutine.Invoke(base.Stop, new Result()));

            result.Return();
        }
        public void Can_dispose_set()
        {
            var expired = new ManualResetEvent(false);
            var changed = new ManualResetEvent(false);
            var i       = 42;
            var ttl     = TimeSpan.FromSeconds(1);

            ExpiringHashSet <int> .Entry entry = null;
            var set = new ExpiringHashSet <int>(TaskTimerFactory.Current);

            set.EntryExpired      += (s, e) => { entry = e.Entry; expired.Set(); };
            set.CollectionChanged += (s, e) => changed.Set();
            set.SetExpiration(i, ttl);
            set.Dispose();
            Assert.IsTrue(changed.WaitOne(2000));
            Assert.IsFalse(expired.WaitOne(2000));
        }
        public void Disposing_set_expires_all_items_before_dispose_returns_but_does_not_trigger_collection_changed()
        {
            var expired        = false;
            var changed        = false;
            var expiredEntries = new List <int>();
            var ttl            = TimeSpan.FromSeconds(1);
            var set            = new ExpiringHashSet <int>(TaskTimerFactory.Current);

            set.EntryExpired      += (s, e) => { expiredEntries.Add(e.Entry.Value); expired = true; };
            set.CollectionChanged += (s, e) => { changed = true; };
            set.SetOrUpdate(12, ttl);
            set.SetOrUpdate(21, ttl);
            Assert.IsFalse(expired, "expired was triggered");
            Assert.IsTrue(changed, "changed wasn't triggered");
            changed = false;
            set.Dispose();
            Assert.IsFalse(changed, "changed was triggered");
            Assert.IsTrue(expired, "expired wasn't triggered");
            Assert.AreEqual(new[] { 12, 21 }, expiredEntries.OrderBy(x => x).ToArray());
        }
Exemple #4
0
 /// <summary>
 /// See <see cref="IDisposable.Dispose"/>.
 /// </summary>
 public void Dispose()
 {
     _expirationEntries.EntryExpired -= OnDelete;
     _expirationEntries.Dispose();
 }
 public void Can_dispose_set()
 {
     var expired = new ManualResetEvent(false);
     var changed = new ManualResetEvent(false);
     var i = 42;
     var ttl = TimeSpan.FromSeconds(1);
     ExpiringHashSet<int>.Entry entry = null;
     var set = new ExpiringHashSet<int>(TaskTimerFactory.Current);
     set.EntryExpired += (s, e) => { entry = e.Entry; expired.Set(); };
     set.CollectionChanged += (s, e) => changed.Set();
     set.SetExpiration(i, ttl);
     set.Dispose();
     Assert.IsTrue(changed.WaitOne(2000));
     Assert.IsFalse(expired.WaitOne(2000));
 }
 public void Disposing_set_expires_all_items_before_dispose_returns_but_does_not_trigger_collection_changed()
 {
     var expired = false;
     var changed = false;
     var expiredEntries = new List<int>();
     var ttl = TimeSpan.FromSeconds(1);
     var set = new ExpiringHashSet<int>(TaskTimerFactory.Current);
     set.EntryExpired += (s, e) => { expiredEntries.Add(e.Entry.Value); expired = true; };
     set.CollectionChanged += (s, e) => { changed = true; };
     set.SetExpiration(12, ttl);
     set.SetExpiration(21, ttl);
     Assert.IsFalse(expired, "expired was triggered");
     Assert.IsTrue(changed, "changed wasn't triggered");
     changed = false;
     set.Dispose();
     Assert.IsFalse(changed,"changed was triggered");
     Assert.IsTrue(expired, "expired wasn't triggered");
     Assert.AreEqual(new[] { 12, 21 },expiredEntries.OrderBy(x =>x).ToArray());
 }
Exemple #7
0
 public void Dispose()
 {
     _expirations.EntryExpired -= OnExpiration;
     _expirations.Dispose();
 }