public IEnumerable <QueueId> GetMyQueues()
 {
     lock (activeSiloNames)
     {
         List <QueueId> queues;
         if (resourceBalancer.GetDistribution(activeSiloNames).TryGetValue(mySiloName, out queues))
         {
             return(queues);
         }
     }
     return(Enumerable.Empty <QueueId>());
 }
        public override IEnumerable <QueueId> GetMyQueues()
        {
            BestFitBalancer <string, QueueId> balancer = GetBalancer();
            bool useIdealDistribution = this.options.IsFixed || isStarting;
            Dictionary <string, List <QueueId> > distribution = useIdealDistribution
                ? balancer.IdealDistribution
                : balancer.GetDistribution(GetActiveSilos(siloStatusOracle, immatureSilos));

            List <QueueId> myQueues;

            if (distribution.TryGetValue(siloStatusOracle.SiloName, out myQueues))
            {
                if (!useIdealDistribution)
                {
                    HashSet <QueueId> queuesOfImmatureSilos = GetQueuesOfImmatureSilos(siloStatusOracle, immatureSilos, balancer.IdealDistribution);
                    // filter queues that belong to immature silos
                    myQueues.RemoveAll(queue => queuesOfImmatureSilos.Contains(queue));
                }
                return(myQueues);
            }
            return(Enumerable.Empty <QueueId>());
        }