0
0
mirror of https://github.com/schwabe/ics-openvpn.git synced 2024-09-20 03:52:27 +02:00

Fix concurrent access on TrafficHistory lists

This commit is contained in:
Arne Schwabe 2021-10-07 15:30:27 +02:00
parent aeae23169a
commit 706f3d28ab

View File

@ -23,9 +23,9 @@ public class TrafficHistory implements Parcelable {
public static final long PERIODS_TO_KEEP = 5;
public static final int TIME_PERIOD_MINTUES = 60 * 1000;
public static final int TIME_PERIOD_HOURS = 3600 * 1000;
private LinkedList<TrafficDatapoint> trafficHistorySeconds = new LinkedList<>();
private LinkedList<TrafficDatapoint> trafficHistoryMinutes = new LinkedList<>();
private LinkedList<TrafficDatapoint> trafficHistoryHours = new LinkedList<>();
private final LinkedList<TrafficDatapoint> trafficHistorySeconds = new LinkedList<>();
private final LinkedList<TrafficDatapoint> trafficHistoryMinutes = new LinkedList<>();
private final LinkedList<TrafficDatapoint> trafficHistoryHours = new LinkedList<>();
private TrafficDatapoint lastSecondUsedForMinute;
private TrafficDatapoint lastMinuteUsedForHours;
@ -93,16 +93,16 @@ public class TrafficHistory implements Parcelable {
}
public LinkedList<TrafficDatapoint> getHours() {
return trafficHistoryHours;
public synchronized LinkedList<TrafficDatapoint> getHours() {
return new LinkedList<>(trafficHistoryHours);
}
public LinkedList<TrafficDatapoint> getMinutes() {
return trafficHistoryMinutes;
public synchronized LinkedList<TrafficDatapoint> getMinutes() {
return new LinkedList<>(trafficHistoryMinutes);
}
public LinkedList<TrafficDatapoint> getSeconds() {
return trafficHistorySeconds;
public synchronized LinkedList<TrafficDatapoint> getSeconds() {
return new LinkedList<>(trafficHistorySeconds);
}
public static LinkedList<TrafficDatapoint> getDummyList() {
@ -162,7 +162,7 @@ public class TrafficHistory implements Parcelable {
return diff;
}
private void addDataPoint(TrafficDatapoint tdp) {
private synchronized void addDataPoint(TrafficDatapoint tdp) {
trafficHistorySeconds.add(tdp);
if (lastSecondUsedForMinute == null) {