private int doSend(final long nowNs) { int bytesSent = 0; final NetworkPublication[] publications = this.networkPublications; final int length = publications.length; int startingIndex = roundRobinIndex++; if (startingIndex >= length) { roundRobinIndex = startingIndex = 0; } for (int i = startingIndex; i < length; i++) { bytesSent += publications[i].send(nowNs); } for (int i = 0; i < startingIndex; i++) { bytesSent += publications[i].send(nowNs); } totalBytesSent.getAndAddOrdered(bytesSent); return bytesSent; } }
public int doWork() { int workCount = commandQueue.drain(Runnable::run, Configuration.COMMAND_DRAIN_LIMIT); final int bytesReceived = dataTransportPoller.pollTransports(); totalBytesReceived.getAndAddOrdered(bytesReceived); final long nowNs = nanoClock.nanoTime(); final ArrayList<PublicationImage> publicationImages = this.publicationImages; for (int lastIndex = publicationImages.size() - 1, i = lastIndex; i >= 0; i--) { final PublicationImage image = publicationImages.get(i); if (image.hasActivityAndNotEndOfStream(nowNs)) { workCount += image.sendPendingStatusMessage(); workCount += image.processPendingLoss(); workCount += image.initiateAnyRttMeasurements(nowNs); } else { ArrayListUtil.fastUnorderedRemove(publicationImages, i, lastIndex--); image.removeFromDispatcher(); } } checkPendingSetupMessages(nowNs); return workCount + bytesReceived; }
public long getAndAddOrdered(long increment) { return value.getAndAddOrdered(increment); }
public long getAndAddOrdered(long increment) { return value.getAndAddOrdered(increment); }
private int doSend(final long nowNs) { int bytesSent = 0; final NetworkPublication[] publications = this.networkPublications; final int length = publications.length; int startingIndex = roundRobinIndex++; if (startingIndex >= length) { roundRobinIndex = startingIndex = 0; } for (int i = startingIndex; i < length; i++) { bytesSent += publications[i].send(nowNs); } for (int i = 0; i < startingIndex; i++) { bytesSent += publications[i].send(nowNs); } totalBytesSent.getAndAddOrdered(bytesSent); return bytesSent; } }
private int doSend(final long nowNs) { int bytesSent = 0; final NetworkPublication[] publications = this.networkPublications; final int length = publications.length; int startingIndex = roundRobinIndex++; if (startingIndex >= length) { roundRobinIndex = startingIndex = 0; } for (int i = startingIndex; i < length; i++) { bytesSent += publications[i].send(nowNs); } for (int i = 0; i < startingIndex; i++) { bytesSent += publications[i].send(nowNs); } totalBytesSent.getAndAddOrdered(bytesSent); return bytesSent; } }
private AtomicCounter fakeCounter() { final AtomicLong value = new AtomicLong(); final AtomicCounter atomicCounter = mock(AtomicCounter.class); final Answer<Long> get = inv -> value.get(); final Answer<?> set = inv -> { value.set(inv.getArgument(0)); return null; }; final Answer<?> add = (inv) -> value.getAndAdd(inv.getArgument(0)); when(atomicCounter.get()).then(get); when(atomicCounter.getWeak()).then(get); doAnswer(set).when(atomicCounter).set(anyLong()); doAnswer(set).when(atomicCounter).setOrdered(anyLong()); doAnswer(set).when(atomicCounter).setWeak(anyLong()); when(atomicCounter.getAndAdd(anyLong())).then(add); when(atomicCounter.getAndAddOrdered(anyLong())).then(add); return atomicCounter; }
public int doWork() { int workCount = commandQueue.drain(Runnable::run, Configuration.COMMAND_DRAIN_LIMIT); final int bytesReceived = dataTransportPoller.pollTransports(); totalBytesReceived.getAndAddOrdered(bytesReceived); final long nowNs = nanoClock.nanoTime(); final ArrayList<PublicationImage> publicationImages = this.publicationImages; for (int lastIndex = publicationImages.size() - 1, i = lastIndex; i >= 0; i--) { final PublicationImage image = publicationImages.get(i); if (image.hasActivityAndNotEndOfStream(nowNs)) { workCount += image.sendPendingStatusMessage(); workCount += image.processPendingLoss(); workCount += image.initiateAnyRttMeasurements(nowNs); } else { ArrayListUtil.fastUnorderedRemove(publicationImages, i, lastIndex--); image.removeFromDispatcher(); } } checkPendingSetupMessages(nowNs); return workCount + bytesReceived; }
public int doWork() { int workCount = commandQueue.drain(Runnable::run, Configuration.COMMAND_DRAIN_LIMIT); final int bytesReceived = dataTransportPoller.pollTransports(); totalBytesReceived.getAndAddOrdered(bytesReceived); final long nowNs = nanoClock.nanoTime(); final ArrayList<PublicationImage> publicationImages = this.publicationImages; for (int lastIndex = publicationImages.size() - 1, i = lastIndex; i >= 0; i--) { final PublicationImage image = publicationImages.get(i); if (image.hasActivityAndNotEndOfStream(nowNs)) { workCount += image.sendPendingStatusMessage(); workCount += image.processPendingLoss(); workCount += image.initiateAnyRttMeasurements(nowNs); } else { ArrayListUtil.fastUnorderedRemove(publicationImages, i, lastIndex--); image.removeFromDispatcher(); } } checkPendingSetupMessages(nowNs); return workCount + bytesReceived; }
bytesInBuffer.getAndAddOrdered(-written);