Esempio n. 1
0
 /// <summary>
 /// Disposes of or finalises the object.
 /// </summary>
 protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         _AltitudeHistoryMap.Dispose();
         _PositionHistoryMap.Dispose();
     }
 }
        protected override IEnumerator <IYield> Stop(Result result)
        {
            _packagePath          = null;
            _subscriptionLocation = null;
            foreach (var instance in _instances)
            {
                instance.Value.Dispose();
            }
            _instances.Dispose();
            _instances = null;
            yield return(Coroutine.Invoke(base.Stop, new Result()));

            result.Return();
        }
Esempio n. 3
0
        public void Can_dispose_set()
        {
            var expired = new ManualResetEvent(false);
            var changed = new ManualResetEvent(false);
            var k       = 42;
            var v       = "foo";
            var ttl     = TimeSpan.FromSeconds(1);

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

            set.EntryExpired      += (s, e) => { entry = e.Entry; expired.Set(); };
            set.CollectionChanged += (s, e) => changed.Set();
            set.Set(k, v, ttl);
            set.Dispose();
            Assert.IsTrue(changed.WaitOne(2000));
            Assert.IsFalse(expired.WaitOne(2000));
        }
Esempio n. 4
0
        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 <string>();
            var ttl            = TimeSpan.FromSeconds(1);
            var set            = new ExpiringDictionary <int, string>(TaskTimerFactory.Current);

            set.EntryExpired      += (s, e) => { expiredEntries.Add(e.Entry.Key + ":" + e.Entry.Value); expired = true; };
            set.CollectionChanged += (s, e) => { changed = true; };
            set.Set(12, "foo", ttl);
            set.Set(21, "bar", 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:foo", "21:bar" }, expiredEntries.OrderBy(x => x).ToArray());
        }
Esempio n. 5
0
 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<string>();
     var ttl = TimeSpan.FromSeconds(1);
     var set = new ExpiringDictionary<int, string>(TaskTimerFactory.Current);
     set.EntryExpired += (s, e) => { expiredEntries.Add(e.Entry.Key + ":" + e.Entry.Value); expired = true; };
     set.CollectionChanged += (s, e) => { changed = true; };
     set.Set(12, "foo", ttl);
     set.Set(21, "bar", 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:foo", "21:bar" }, expiredEntries.OrderBy(x => x).ToArray());
 }
Esempio n. 6
0
 /// <summary>
 /// Dispose all values currently in the cache.
 /// </summary>
 public void Dispose()
 {
     _isDisposed = true;
     _flushTimer.Change(TimeSpan.MaxValue, TaskEnv.None);
     _cache.Dispose();
 }
 public void TestCleanup()
 {
     Factory.RestoreSnapshot(_OriginalFactory);
     _Map.Dispose();
 }
Esempio n. 8
0
 public void Can_dispose_set()
 {
     var expired = new ManualResetEvent(false);
     var changed = new ManualResetEvent(false);
     var k = 42;
     var v = "foo";
     var ttl = TimeSpan.FromSeconds(1);
     ExpiringDictionary<int, string>.Entry entry = null;
     var set = new ExpiringDictionary<int, string>(TaskTimerFactory.Current);
     set.EntryExpired += (s, e) => { entry = e.Entry; expired.Set(); };
     set.CollectionChanged += (s, e) => changed.Set();
     set.Set(k, v, ttl);
     set.Dispose();
     Assert.IsTrue(changed.WaitOne(2000));
     Assert.IsFalse(expired.WaitOne(2000));
 }