public List<Long> getExecutionDelaySamples(TaskPriority priority) { if (priority == null) { return getExecutionDelaySamples(); } return new ArrayList<>(getExecutionDelaySamplesInternal(priority)); }
public List<Long> getExecutionDelaySamples(TaskPriority priority) { if (priority == null) { return getExecutionDelaySamples(); } return new ArrayList<>(getExecutionDelaySamplesInternal(priority)); }
public void resetCollectedStats() { for (TaskPriority p : TaskPriority.values()) { getExecutionDelaySamplesInternal(p).clear(); getExecutionDurationSamplesInternal(p).clear(); } }
public void resetCollectedStats() { for (TaskPriority p : TaskPriority.values()) { getExecutionDelaySamplesInternal(p).clear(); getExecutionDurationSamplesInternal(p).clear(); } }
@Override public TaskWrapper workerIdle(Worker worker) { TaskWrapper result = super.workerIdle(worker); // may not be a wrapper for internal tasks like shutdown if (result != null && result.getContainedRunnable() instanceof TaskStatWrapper) { long taskDelay = Clock.lastKnownForwardProgressingMillis() - result.getPureRunTime(); TaskStatWrapper statWrapper = (TaskStatWrapper)result.getContainedRunnable(); ConcurrentArrayList<Long> priorityStats = statsManager.getExecutionDelaySamplesInternal(statWrapper.priority); synchronized (priorityStats.getModificationLock()) { priorityStats.add(taskDelay); statsManager.trimWindow(priorityStats); } } return result; } }
@Override protected TaskWrapper getNextReadyTask() { TaskWrapper result = super.getNextReadyTask(); // may not be a wrapper for internal tasks like shutdown if (result != null && result.getContainedRunnable() instanceof TaskStatWrapper) { long taskDelay = Clock.lastKnownForwardProgressingMillis() - result.getPureRunTime(); TaskStatWrapper statWrapper = (TaskStatWrapper)result.getContainedRunnable(); ConcurrentArrayList<Long> priorityStats = statsManager.getExecutionDelaySamplesInternal(statWrapper.priority); synchronized (priorityStats.getModificationLock()) { priorityStats.add(taskDelay); statsManager.trimWindow(priorityStats); } } return result; } }
@Override protected TaskWrapper getNextReadyTask() { TaskWrapper result = super.getNextReadyTask(); // may not be a wrapper for internal tasks like shutdown if (result != null && result.getContainedRunnable() instanceof TaskStatWrapper) { long taskDelay = Clock.lastKnownForwardProgressingMillis() - result.getPureRunTime(); TaskStatWrapper statWrapper = (TaskStatWrapper)result.getContainedRunnable(); ConcurrentArrayList<Long> priorityStats = statsManager.getExecutionDelaySamplesInternal(statWrapper.priority); synchronized (priorityStats.getModificationLock()) { priorityStats.add(taskDelay); statsManager.trimWindow(priorityStats); } } return result; } }
@Override public TaskWrapper workerIdle(Worker worker) { TaskWrapper result = super.workerIdle(worker); // may not be a wrapper for internal tasks like shutdown if (result != null && result.getContainedRunnable() instanceof TaskStatWrapper) { long taskDelay = Clock.lastKnownForwardProgressingMillis() - result.getPureRunTime(); TaskStatWrapper statWrapper = (TaskStatWrapper)result.getContainedRunnable(); ConcurrentArrayList<Long> priorityStats = statsManager.getExecutionDelaySamplesInternal(statWrapper.priority); synchronized (priorityStats.getModificationLock()) { priorityStats.add(taskDelay); statsManager.trimWindow(priorityStats); } } return result; } }