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