void SendReadyMessage(bool startup)
        {
            if (ControlQueue == null)
                return;

            IMessage[] messages;
            if (startup)
            {
                messages = new IMessage[EndpointTransport.NumberOfWorkerThreads];
                for (var i = 0; i < EndpointTransport.NumberOfWorkerThreads; i++)
                {
                    var rm = new ReadyMessage
                    {
                        ClearPreviousFromThisAddress = (i == 0)
                    };

                    messages[i] = rm;
                }
            }
            else
            {
                messages = new IMessage[] {new ReadyMessage()};
            }

            EndpointBus.Send(ControlQueue, messages);
        }
        private void Handle(ReadyMessage message, Address returnAddress)
        {
            Configurer.Logger.Info("Server available: " + returnAddress);

            if (message.ClearPreviousFromThisAddress) //indicates worker started up
                WorkerAvailabilityManager.ClearAvailabilityForWorker(returnAddress);

            WorkerAvailabilityManager.WorkerAvailable(returnAddress);
        }
        /// <summary>
        /// Sends a ready message to the distributor
        /// </summary>
        /// <param name="startup"></param>
        public void SendReadyMessage(bool startup)
        {
            if (DistributorControlAddress == null)
                return;

            if (!canSendReadyMessages)
                return;

            IMessage[] messages;
            if (startup)
            {
                messages = new IMessage[Transport.NumberOfWorkerThreads];
                for (var i = 0; i < Transport.NumberOfWorkerThreads; i++)
                {
                    var rm = new ReadyMessage
                    {
                        ClearPreviousFromThisAddress = (i == 0)
                    };

                    messages[i] = rm;
                }
            }
            else
            {
                messages = new IMessage[1];
                messages[0] = new ReadyMessage();
            }

            Bus.Send(DistributorControlAddress, messages);
        }