Ejemplo n.º 1
0
        public void Close()
        {
            Enumerable
            .Range(0, PartitionCount)
            .SelectMany(PartitionTable)
            .OfType <DynamicRemoteStorage>()
            .ForEach(s =>
            {
                try
                {
                    int id = GetInstanceId(s.ReplicaInformation.Id);
                    using (var request = new StorageInformationWriter(MyPartitionId, m_nameservice.InstanceId))
                    { m_module.NotifyRemoteStorageOnLeaving(id, request); }
                }
                catch { }
            });

            m_cancelSrc.Cancel();

            m_backupctl.Dispose();
            m_taskexec.Dispose();
            m_partitioner.Dispose();
            m_healthmon.Dispose();
            m_cloudidx.Dispose();
            m_persistent_storage.Dispose();

            m_nameservice.Dispose();
            m_chunktable.Dispose();
            m_taskqueue.Dispose();
            m_healthmanager.Dispose();
            m_backupmgr.Dispose();
        }
Ejemplo n.º 2
0
        public async Task Stop(bool checkForSubscriptions)
        {
            List <TopicWriter>  writersList;
            List <Subscription> subscriptionsList;

            lock (writersSync)
            {
                lock (subscriptionsSync)
                {
                    stopping          = true;
                    subscriptionsList = subscriptions.Values.ToList();

                    if (checkForSubscriptions && subscriptionsList.Count > 0)
                    {
                        throw new TopicManagementException($"Cannot stop topic with subscriptions");
                    }
                }

                writersList = writers.ToList();
            }

            foreach (var w in writersList)
            {
                await w.DisposeAsync();
            }

            foreach (var s in subscriptionsList)
            {
                await s.DisposeAsync();
            }

            cancellationTokenSource.Cancel();

            await await persistenceLoopTask;
            await await cleanupLoopTask;
            await await subscriptionPointersFlushLoopTask;

            PersistenceAction();
            CleanupAction();
            SubscriptionPointersFlushAction();

            persistentStorage.Dispose();
            subscriptionPointersStorage.Dispose();
        }
Ejemplo n.º 3
0
 public void Dispose()
 {
     dataStorage?.Dispose();
     linearIndex?.Dispose();
 }
 public void Dispose()
 {
     persistentStorage?.Dispose();
 }
Ejemplo n.º 5
0
 public void Dispose()
 {
     dataStorage?.Dispose();
 }
Ejemplo n.º 6
0
 public virtual void Dispose()
 {
     _persistentStorage.Dispose();
 }
 public void Dispose()
 {
     storage?.Dispose();
 }
Ejemplo n.º 8
0
 public void Dispose()
 {
     FlushBuffer();
     persistentStorage?.Dispose();
 }