From 54f5062bbe13304cd7ddb24b5bc7daa514c8cdde Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Thu, 30 Jul 2015 11:40:34 +0000 Subject: [PATCH] SSDM-2153: reuse and close readers in thumbnail generation SVN: 34396 --- .../cisd/openbis/dss/etl/Hdf5ThumbnailGenerator.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/Hdf5ThumbnailGenerator.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/Hdf5ThumbnailGenerator.java index d0780e1c820..79dca385963 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/Hdf5ThumbnailGenerator.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/Hdf5ThumbnailGenerator.java @@ -575,7 +575,7 @@ public class Hdf5ThumbnailGenerator implements IHDF5WriterClient thumbnailPath, ex.getMessage())); } - private ITaskExecutor<ImageFileInfo> createThumbnailGenerator(final IHDF5ContainerWriter writer) + private ITaskExecutor<ImageFileInfo> createThumbnailGenerator(final IHDF5ContainerWriter writer, final String thumbnailGenertionSessionId) { return new ITaskExecutor<ImageFileInfo>() { @@ -595,7 +595,7 @@ public class Hdf5ThumbnailGenerator implements IHDF5WriterClient // For the purpose of reusing image readers for subsequent files if the same worker thread // is processing them - we set thread local variable on image readers indicating that // invokations with the same process ID can share readers - ImageUtil.setThreadLocalSessionId(thumbnailGenerationProcessId); + ImageUtil.setThreadLocalSessionId(thumbnailGenertionSessionId); try { // each thread will get its own buffer to avoid allocating memory for the @@ -611,23 +611,23 @@ public class Hdf5ThumbnailGenerator implements IHDF5WriterClient }; } - private static AtomicInteger thumbnailGenerationProcessId = new AtomicInteger(); + private static AtomicInteger incrementalThumbnailGenerationSessionId = new AtomicInteger(); @Override public void runWithSimpleWriter(IHDF5ContainerWriter writer) { final String thumbnailsName = " (" + thumbnailsStorageFormat.getThumbnailsFileName() + ")"; - final String processId = "THUMBNAIL_GENERATION_" + thumbnailGenerationProcessId.incrementAndGet(); + final String sessionId = "THUMBNAIL_GENERATION_" + incrementalThumbnailGenerationSessionId.incrementAndGet(); List<ImageFileInfo> images = imageDataSetStructure.getImages(); Collection<FailureRecord<ImageFileInfo>> errors = ParallelizedExecutor.process(images, - createThumbnailGenerator(writer, processId), + createThumbnailGenerator(writer, sessionId), thumbnailsStorageFormat.getAllowedMachineLoadDuringGeneration(), 100, "Thumbnails generation" + thumbnailsName, MAX_RETRY_OF_FAILED_GENERATION, true); - ImageUtil.closeSession(processId); + ImageUtil.closeSession(sessionId); if (errors.size() > 0) { -- GitLab