From 9feadd3c6d71c1c48f7825d024ccf95d5d82606d Mon Sep 17 00:00:00 2001 From: Jack Cosgrove <59040827+jcosgrovehoppr@users.noreply.github.com> Date: Thu, 19 Mar 2020 07:21:20 -0500 Subject: [PATCH] fix: Only permit web workers to be initialized once. (#1535) --- platform/viewer/src/utils/initWebWorkers.js | 9 +++++++-- platform/viewer/src/utils/initWebWorkers.test.js | 11 +++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/platform/viewer/src/utils/initWebWorkers.js b/platform/viewer/src/utils/initWebWorkers.js index 6e8fb9107..8bbfa28d9 100644 --- a/platform/viewer/src/utils/initWebWorkers.js +++ b/platform/viewer/src/utils/initWebWorkers.js @@ -1,6 +1,8 @@ import cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader'; -export default function initWebWorkers() { +let initialized = false; + +export default function initWebWorkers() { const config = { maxWebWorkers: Math.max(navigator.hardwareConcurrency - 1, 1), startWebWorkersOnDemand: true, @@ -13,5 +15,8 @@ export default function initWebWorkers() { }, }; - cornerstoneWADOImageLoader.webWorkerManager.initialize(config); + if (!initialized) { + cornerstoneWADOImageLoader.webWorkerManager.initialize(config); + initialized = true; + } } diff --git a/platform/viewer/src/utils/initWebWorkers.test.js b/platform/viewer/src/utils/initWebWorkers.test.js index ae6743eaf..cbd554a79 100644 --- a/platform/viewer/src/utils/initWebWorkers.test.js +++ b/platform/viewer/src/utils/initWebWorkers.test.js @@ -10,3 +10,14 @@ describe('initWebWorkers', () => { ).toHaveBeenCalled(); }); }); + +describe('initWebWorkers', () => { + it("initializes cornerstoneWADOImageLoader's web workers only once", () => { + initWebWorkers(); + initWebWorkers(); + + expect( + cornerstoneWADOImageLoader.webWorkerManager.initialize + ).toHaveBeenCalledTimes(1); + }); +});