Browse Source

Revert "Synchronize arbitrary data list removals, as it seems that SynchronizedList and SynchronizedMap aren't overriding removeIf() with a thread-safe version."

This reverts commit e5f88fe2f4.
pull/75/head
CalDescent 3 years ago
parent
commit
c65de74d13
  1. 8
      src/main/java/org/qortal/controller/arbitrary/ArbitraryDataBuildManager.java
  2. 4
      src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java
  3. 20
      src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileManager.java
  4. 4
      src/main/java/org/qortal/controller/arbitrary/ArbitraryDataRenderManager.java
  5. 4
      src/main/java/org/qortal/controller/arbitrary/ArbitraryMetadataManager.java

8
src/main/java/org/qortal/controller/arbitrary/ArbitraryDataBuildManager.java

@ -75,12 +75,8 @@ public class ArbitraryDataBuildManager extends Thread {
if (now == null) { if (now == null) {
return; return;
} }
synchronized (arbitraryDataBuildQueue) { arbitraryDataBuildQueue.entrySet().removeIf(entry -> entry.getValue().hasReachedBuildTimeout(now));
arbitraryDataBuildQueue.entrySet().removeIf(entry -> entry.getValue().hasReachedBuildTimeout(now)); arbitraryDataFailedBuilds.entrySet().removeIf(entry -> entry.getValue().hasReachedFailureTimeout(now));
}
synchronized (arbitraryDataFailedBuilds) {
arbitraryDataFailedBuilds.entrySet().removeIf(entry -> entry.getValue().hasReachedFailureTimeout(now));
}
} }
// Build queue // Build queue

4
src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java

@ -84,9 +84,7 @@ public class ArbitraryDataFileListManager {
return; return;
} }
final long requestMinimumTimestamp = now - ArbitraryDataManager.ARBITRARY_REQUEST_TIMEOUT; final long requestMinimumTimestamp = now - ArbitraryDataManager.ARBITRARY_REQUEST_TIMEOUT;
synchronized (arbitraryDataFileListRequests) { arbitraryDataFileListRequests.entrySet().removeIf(entry -> entry.getValue().getC() == null || entry.getValue().getC() < requestMinimumTimestamp);
arbitraryDataFileListRequests.entrySet().removeIf(entry -> entry.getValue().getC() == null || entry.getValue().getC() < requestMinimumTimestamp);
}
} }

20
src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileManager.java

@ -101,22 +101,14 @@ public class ArbitraryDataFileManager extends Thread {
return; return;
} }
final long requestMinimumTimestamp = now - ArbitraryDataManager.getInstance().ARBITRARY_REQUEST_TIMEOUT; final long requestMinimumTimestamp = now - ArbitraryDataManager.getInstance().ARBITRARY_REQUEST_TIMEOUT;
synchronized (arbitraryDataFileRequests) { arbitraryDataFileRequests.entrySet().removeIf(entry -> entry.getValue() == null || entry.getValue() < requestMinimumTimestamp);
arbitraryDataFileRequests.entrySet().removeIf(entry -> entry.getValue() == null || entry.getValue() < requestMinimumTimestamp);
}
final long relayMinimumTimestamp = now - ArbitraryDataManager.getInstance().ARBITRARY_RELAY_TIMEOUT; final long relayMinimumTimestamp = now - ArbitraryDataManager.getInstance().ARBITRARY_RELAY_TIMEOUT;
synchronized (arbitraryRelayMap) { arbitraryRelayMap.removeIf(entry -> entry == null || entry.getTimestamp() == null || entry.getTimestamp() < relayMinimumTimestamp);
arbitraryRelayMap.removeIf(entry -> entry == null || entry.getTimestamp() == null || entry.getTimestamp() < relayMinimumTimestamp); arbitraryDataFileHashResponses.removeIf(entry -> entry.getTimestamp() < relayMinimumTimestamp);
}
synchronized (arbitraryDataFileHashResponses) {
arbitraryDataFileHashResponses.removeIf(entry -> entry.getTimestamp() < relayMinimumTimestamp);
}
final long directConnectionInfoMinimumTimestamp = now - ArbitraryDataManager.getInstance().ARBITRARY_DIRECT_CONNECTION_INFO_TIMEOUT; final long directConnectionInfoMinimumTimestamp = now - ArbitraryDataManager.getInstance().ARBITRARY_DIRECT_CONNECTION_INFO_TIMEOUT;
synchronized (directConnectionInfo) { directConnectionInfo.removeIf(entry -> entry.getTimestamp() < directConnectionInfoMinimumTimestamp);
directConnectionInfo.removeIf(entry -> entry.getTimestamp() < directConnectionInfoMinimumTimestamp);
}
} }
@ -492,9 +484,7 @@ public class ArbitraryDataFileManager extends Thread {
} }
private void removeFromRelayMap(ArbitraryRelayInfo entry) { private void removeFromRelayMap(ArbitraryRelayInfo entry) {
synchronized (arbitraryRelayMap) { arbitraryRelayMap.removeIf(relayInfo -> relayInfo.equals(entry));
arbitraryRelayMap.removeIf(relayInfo -> relayInfo.equals(entry));
}
} }

4
src/main/java/org/qortal/controller/arbitrary/ArbitraryDataRenderManager.java

@ -56,9 +56,7 @@ public class ArbitraryDataRenderManager extends Thread {
return; return;
} }
final long minimumTimestamp = now - AUTHORIZATION_TIMEOUT; final long minimumTimestamp = now - AUTHORIZATION_TIMEOUT;
synchronized (this.authorizedResources) { this.authorizedResources.entrySet().removeIf(entry -> entry.getValue() == null || entry.getValue() < minimumTimestamp);
this.authorizedResources.entrySet().removeIf(entry -> entry.getValue() == null || entry.getValue() < minimumTimestamp);
}
} }
public boolean isAuthorized(ArbitraryDataResource resource) { public boolean isAuthorized(ArbitraryDataResource resource) {

4
src/main/java/org/qortal/controller/arbitrary/ArbitraryMetadataManager.java

@ -73,9 +73,7 @@ public class ArbitraryMetadataManager {
return; return;
} }
final long requestMinimumTimestamp = now - ArbitraryDataManager.ARBITRARY_REQUEST_TIMEOUT; final long requestMinimumTimestamp = now - ArbitraryDataManager.ARBITRARY_REQUEST_TIMEOUT;
synchronized (arbitraryMetadataRequests) { arbitraryMetadataRequests.entrySet().removeIf(entry -> entry.getValue().getC() == null || entry.getValue().getC() < requestMinimumTimestamp);
arbitraryMetadataRequests.entrySet().removeIf(entry -> entry.getValue().getC() == null || entry.getValue().getC() < requestMinimumTimestamp);
}
} }

Loading…
Cancel
Save