DoConnect() private method

private DoConnect ( ) : bool
return bool
Beispiel #1
0
            public bool Iterate()
            {
                bool result = false;

                if (!parent.IsStarted)
                {
                    return(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);
            }