Apache.NMS.ActiveMQ.Transport.Failover.FailoverTransport.FailoverTask.Iterate C# (CSharp) Method

Iterate() public method

public Iterate ( ) : bool
return bool
            public bool Iterate()
            {
                bool result = false;
                bool buildBackup = true;
                bool doReconnect = !parent.disposed && parent.connectionFailure == null;
                try
                {
                    parent.backupMutex.WaitOne();
                    if(parent.ConnectedTransport == null && doReconnect)
                    {
                        result = parent.DoConnect();
                        buildBackup = false;
                    }
                }
                finally
                {
                    parent.backupMutex.ReleaseMutex();
                }

                if(buildBackup)
                {
                    parent.BuildBackups();
                }
                else
                {
                    //build backups on the next iteration
                    result = true;
                    try
                    {
                        parent.reconnectTask.Wakeup();
                    }
                    catch(ThreadInterruptedException)
                    {
                        Tracer.Debug("Reconnect task has been interrupted.");
                    }
                }
                return result;
            }
FailoverTransport.FailoverTask