diff --git a/engines/pytorch/pytorch-engine/src/main/java/ai/djl/pytorch/engine/PtEngineProvider.java b/engines/pytorch/pytorch-engine/src/main/java/ai/djl/pytorch/engine/PtEngineProvider.java index 1b9cdd0ab19..42ca3c5b8a5 100644 --- a/engines/pytorch/pytorch-engine/src/main/java/ai/djl/pytorch/engine/PtEngineProvider.java +++ b/engines/pytorch/pytorch-engine/src/main/java/ai/djl/pytorch/engine/PtEngineProvider.java @@ -18,6 +18,8 @@ /** {@code PtEngineProvider} is the PyTorch implementation of {@link EngineProvider}. */ public class PtEngineProvider implements EngineProvider { + private static volatile Engine engine; // NOPMD + /** {@inheritDoc} */ @Override public String getEngineName() { @@ -33,10 +35,13 @@ public int getEngineRank() { /** {@inheritDoc} */ @Override public Engine getEngine() { - return InstanceHolder.INSTANCE; - } - - private static class InstanceHolder { - static final Engine INSTANCE = PtEngine.newInstance(); + if (engine == null) { + synchronized (PtEngineProvider.class) { + if (engine == null) { + engine = PtEngine.newInstance(); + } + } + } + return engine; } }