Esempio n. 1
0
        public async Task BeginProtocolPeriodAsync()
        {
            try
            {
                Debug.WriteLine("Beginning Protocol Period");
                Logger.LogInformation("Beginning Protocol Period");

                ProtocolTimer.Start();

                ProtocolTimerRunning = true;

                lock (_receivedAckLock)
                {
                    ReceivedAck = false;

                    SwimNode node = null;

                    lock (_nodesLock)
                    {
                        InitialNodeCount = Nodes.Count;

                        if (Nodes.TryDequeue(out node))
                        {
                            ActiveNode = node;

                            Debug.WriteLine(ActiveNode.Endpoint);

                            PingNode(ActiveNode);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine($"{e.ToString()}: {e.StackTrace}");
                Logger.LogError(e, string.Empty);
            }
        }