diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCache.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCache.java index e949c417e22..29b814e4608 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCache.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCache.java @@ -28,6 +28,7 @@ import com.sap.sailing.domain.leaderboard.ScoreCorrectionListener; import com.sap.sailing.domain.tracking.RaceChangeListener; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; import com.sap.sailing.util.impl.LockUtil; +import com.sap.sailing.util.impl.ThreadFactoryWithPriority; /** * Caches the expensive to compute {@link LeaderboardDTO} results of a @@ -70,7 +71,7 @@ public class LeaderboardDTOCache implements LeaderboardCache { private static final Executor computeLeadearboardByNameExecutor = new ThreadPoolExecutor(/* corePoolSize */ THREAD_POOL_SIZE, /* maximumPoolSize */ THREAD_POOL_SIZE, /* keepAliveTime */ 60, TimeUnit.SECONDS, - /* workQueue */ new LinkedBlockingQueue()); + /* workQueue */ new LinkedBlockingQueue(), new ThreadFactoryWithPriority(Thread.NORM_PRIORITY-1)); private final LeaderboardCacheManager leaderboardCacheManager; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractSimpleLeaderboardImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractSimpleLeaderboardImpl.java index 7ae80246d65..f4ae242db69 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractSimpleLeaderboardImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractSimpleLeaderboardImpl.java @@ -83,6 +83,7 @@ import com.sap.sailing.domain.tracking.TrackedRaceStatus; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.util.impl.RaceColumnListeners; +import com.sap.sailing.util.impl.ThreadFactoryWithPriority; /** * Base implementation for various types of leaderboards. The {@link RaceColumnListener} implementation forwards events @@ -361,7 +362,7 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race executor = new ThreadPoolExecutor(/* corePoolSize */ THREAD_POOL_SIZE, /* maximumPoolSize */ THREAD_POOL_SIZE, /* keepAliveTime */ 60, TimeUnit.SECONDS, - /* workQueue */ new LinkedBlockingQueue()); + /* workQueue */ new LinkedBlockingQueue(), new ThreadFactoryWithPriority(Thread.NORM_PRIORITY-1)); } @Override diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/util/SmartFutureCache.java b/java/com.sap.sailing.domain/src/com/sap/sailing/util/SmartFutureCache.java index 8664280dedf..b20bd3c8809 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/util/SmartFutureCache.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/util/SmartFutureCache.java @@ -22,6 +22,7 @@ import java.util.logging.Logger; import com.sap.sailing.util.SmartFutureCache.UpdateInterval; import com.sap.sailing.util.impl.LockUtil; import com.sap.sailing.util.impl.NamedReentrantReadWriteLock; +import com.sap.sailing.util.impl.ThreadFactoryWithPriority; /** * A cache for which a background update can be triggered. Readers can decide whether they want to wait for any ongoing @@ -99,7 +100,7 @@ public class SmartFutureCache> { private final static Executor recalculator = new ThreadPoolExecutor(/* corePoolSize */ THREAD_POOL_SIZE, /* maximumPoolSize */ THREAD_POOL_SIZE, /* keepAliveTime */ 60, TimeUnit.SECONDS, - /* workQueue */ new LinkedBlockingQueue()); + /* workQueue */ new LinkedBlockingQueue(), new ThreadFactoryWithPriority(Thread.NORM_PRIORITY-1)); private final CacheUpdater cacheUpdateComputer;