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); } }