From ab4d54cc85c0135db600506f30c7a5480a8f8bcb Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sun, 23 Oct 2022 18:01:20 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D1=8C=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20HeavyCalc=20=D0=BA=D0=B0?= =?UTF-8?q?=D0=BA=20singleton?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/HeavyCalc.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/core/HeavyCalc.js b/server/core/HeavyCalc.js index a12f31e..2c08891 100644 --- a/server/core/HeavyCalc.js +++ b/server/core/HeavyCalc.js @@ -86,10 +86,17 @@ class CalcThread { } } +//singleton +let instance = null; + class HeavyCalc { constructor(opts = {}) { + const singleton = opts.singleton || false; + + if (singleton && instance) + return instance; + this.threads = opts.threads || 1; - this.singleton = opts.singleton || false; this.terminated = false; this.workers = []; @@ -99,6 +106,10 @@ class HeavyCalc { this.workers.push(worker); this.load.push(0); } + + if (singleton) { + instance = this; + } } async run(params) {