public void TryDequeue() { using (var queue = new NetMQQueue <int>()) { int result; Assert.IsFalse(queue.TryDequeue(out result, TimeSpan.FromMilliseconds(100))); queue.Enqueue(1); Assert.IsTrue(queue.TryDequeue(out result, TimeSpan.FromMilliseconds(100))); Assert.AreEqual(1, result); } }
public void TryDequeue() { using (var queue = new NetMQQueue<int>()) { int result; Assert.IsFalse(queue.TryDequeue(out result, TimeSpan.FromMilliseconds(100))); queue.Enqueue(1); Assert.IsTrue(queue.TryDequeue(out result, TimeSpan.FromMilliseconds(100))); Assert.AreEqual(1, result); } }
private async Task ProcessDeltaAsync(CancellationToken cancellationToken) { while (true) { PeerSetDelta delta; while (!_deltas.TryDequeue(out delta, TimeSpan.FromMilliseconds(100))) { await Task.Delay(100, cancellationToken); } Peer sender = delta.Sender; PublicKey senderKey = sender.PublicKey; if (!_peers.ContainsKey(sender) && _peers.Keys.All(p => senderKey != p.PublicKey)) { delta = new PeerSetDelta( delta.Sender, delta.Timestamp, delta.AddedPeers.Add(sender), delta.RemovedPeers, delta.ExistingPeers ); } _logger.Debug($"Received the delta[{delta}]."); using (await _receiveMutex.LockAsync(cancellationToken)) { DeltaReceived.Reset(); _logger.Debug($"Trying to apply the delta[{delta}]..."); await ApplyDelta(delta, cancellationToken); LastReceived = delta.Timestamp; LastSeenTimestamps[delta.Sender] = delta.Timestamp; DeltaReceived.Set(); } _logger.Debug($"The delta[{delta}] has been applied."); } }