from java.util.concurrent import Executors, TimeUnit from java.lang import System from ini.trakem2.persistence import Loader from ini.trakem2 import Project from ini.trakem2.utils import CachingThread import sys, traceback # 4096x4096 RGBA IMAGE_SIZE = pow(4096, 2) * 4 # bytes RELEASE_EVERY = 60 # seconds exe = Executors.newScheduledThreadPool(1) def free(): #Loader.releaseAllCaches() #System.out.println("Released all") # # Instead of releasing all, release half of all loaded images try: image_n_bytes = IMAGE_SIZE projects = Project.getProjects() if 0 == projects.size(): return loader = projects[0].getLoader() f = Loader.getDeclaredField("mawts") f.setAccessible(True) mawts = f.get(loader) n_cached_images = mawts.size() n_bytes_released = 0 if n_cached_images > 0:
def __init__(self, thread_name): self.thread_pool_name = thread_name self.thread_pool = Executors.newScheduledThreadPool(MAX_CONCURRENT) self.futures = []
# Logging # component.logService.loggerName = 'web-requests' # # StatusService # component.statusService = DelegatedStatusService() # # Executor # executor = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors() * 2 + 1) component.context.attributes['com.threecrickets.prudence.executor'] = executor tasks = [] # # Scheduler # scheduler = Scheduler() component.context.attributes['com.threecrickets.prudence.scheduler'] = scheduler # # Cache # cache = ChainCache()