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) {
return;
}
synchronized (arbitraryDataBuildQueue) {
arbitraryDataBuildQueue.entrySet().removeIf(entry -> entry.getValue().hasReachedBuildTimeout(now));
}
synchronized (arbitraryDataFailedBuilds) {
arbitraryDataFailedBuilds.entrySet().removeIf(entry -> entry.getValue().hasReachedFailureTimeout(now));
}
arbitraryDataBuildQueue.entrySet().removeIf(entry -> entry.getValue().hasReachedBuildTimeout(now));
arbitraryDataFailedBuilds.entrySet().removeIf(entry -> entry.getValue().hasReachedFailureTimeout(now));
}
// Build queue

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

@ -84,9 +84,7 @@ public class ArbitraryDataFileListManager {
return;
}
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;
}
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;
synchronized (arbitraryRelayMap) {
arbitraryRelayMap.removeIf(entry -> entry == null || entry.getTimestamp() == null || entry.getTimestamp() < relayMinimumTimestamp);
}
synchronized (arbitraryDataFileHashResponses) {
arbitraryDataFileHashResponses.removeIf(entry -> entry.getTimestamp() < relayMinimumTimestamp);
}
arbitraryRelayMap.removeIf(entry -> entry == null || entry.getTimestamp() == null || entry.getTimestamp() < relayMinimumTimestamp);
arbitraryDataFileHashResponses.removeIf(entry -> entry.getTimestamp() < relayMinimumTimestamp);
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) {
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;
}
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) {

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

@ -73,9 +73,7 @@ public class ArbitraryMetadataManager {
return;
}
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