Skip to content

Commit

Permalink
Fixes cases where the getEngine method in the EngineProvider class re…
Browse files Browse the repository at this point in the history
…turns null when called concurrently.
  • Loading branch information
王旭 authored and frankfliu committed Feb 26, 2024
1 parent 7959c27 commit 4ae2dd1
Show file tree
Hide file tree
Showing 9 changed files with 18 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
public class LgbmEngineProvider implements EngineProvider {

private volatile Engine engine; // NOPMD
private volatile boolean initialized; // NOPMD

/** {@inheritDoc} */
@Override
Expand All @@ -36,10 +35,9 @@ public int getEngineRank() {
/** {@inheritDoc} */
@Override
public Engine getEngine() {
if (!initialized) {
if (engine == null) {
synchronized (LgbmEngineProvider.class) {
if (!initialized) {
initialized = true;
if (engine == null) {
engine = LgbmEngine.newInstance();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
public class XgbEngineProvider implements EngineProvider {

private volatile Engine engine; // NOPMD
private volatile boolean initialized; // NOPMD

/** {@inheritDoc} */
@Override
Expand All @@ -36,10 +35,9 @@ public int getEngineRank() {
/** {@inheritDoc} */
@Override
public Engine getEngine() {
if (!initialized) {
if (engine == null) {
synchronized (XgbEngineProvider.class) {
if (!initialized) {
initialized = true;
if (engine == null) {
engine = XgbEngine.newInstance();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
public class MxEngineProvider implements EngineProvider {

private volatile Engine engine; // NOPMD
private volatile boolean initialized; // NOPMD

/** {@inheritDoc} */
@Override
Expand All @@ -36,10 +35,9 @@ public int getEngineRank() {
/** {@inheritDoc} */
@Override
public Engine getEngine() {
if (!initialized) {
if (engine == null) {
synchronized (MxEngineProvider.class) {
if (!initialized) {
initialized = true;
if (engine == null) {
engine = MxEngine.newInstance();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
public class OrtEngineProvider implements EngineProvider {

private volatile Engine engine; // NOPMD
private volatile boolean initialized; // NOPMD

/** {@inheritDoc} */
@Override
Expand All @@ -36,10 +35,9 @@ public int getEngineRank() {
/** {@inheritDoc} */
@Override
public Engine getEngine() {
if (!initialized) {
if (engine == null) {
synchronized (OrtEngineProvider.class) {
if (!initialized) {
initialized = true;
if (engine == null) {
engine = OrtEngine.newInstance();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
public class PpEngineProvider implements EngineProvider {

private volatile Engine engine; // NOPMD
private volatile boolean initialized; // NOPMD

/** {@inheritDoc} */
@Override
Expand All @@ -36,10 +35,9 @@ public int getEngineRank() {
/** {@inheritDoc} */
@Override
public Engine getEngine() {
if (!initialized) {
if (engine == null) {
synchronized (PpEngineProvider.class) {
if (!initialized) {
initialized = true;
if (engine == null) {
engine = PpEngine.newInstance();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
public class PtEngineProvider implements EngineProvider {

private volatile Engine engine; // NOPMD
private volatile boolean initialized; // NOPMD

/** {@inheritDoc} */
@Override
Expand All @@ -36,10 +35,9 @@ public int getEngineRank() {
/** {@inheritDoc} */
@Override
public Engine getEngine() {
if (!initialized) {
if (engine == null) {
synchronized (PtEngineProvider.class) {
if (!initialized) {
initialized = true;
if (engine == null) {
engine = PtEngine.newInstance();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
public class TfEngineProvider implements EngineProvider {

private volatile Engine engine; // NOPMD
private volatile boolean initialized; // NOPMD

/** {@inheritDoc} */
@Override
Expand All @@ -36,10 +35,9 @@ public int getEngineRank() {
/** {@inheritDoc} */
@Override
public Engine getEngine() {
if (!initialized) {
if (engine == null) {
synchronized (TfEngineProvider.class) {
if (!initialized) {
initialized = true;
if (engine == null) {
engine = TfEngine.newInstance();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
public class TrtEngineProvider implements EngineProvider {

private volatile Engine engine; // NOPMD
private volatile boolean initialized; // NOPMD

/** {@inheritDoc} */
@Override
Expand All @@ -36,10 +35,9 @@ public int getEngineRank() {
/** {@inheritDoc} */
@Override
public Engine getEngine() {
if (!initialized) {
if (engine == null) {
synchronized (TrtEngineProvider.class) {
if (!initialized) {
initialized = true;
if (engine == null) {
engine = TrtEngine.newInstance();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
public class TfLiteEngineProvider implements EngineProvider {

private volatile Engine engine; // NOPMD
private volatile boolean initialized; // NOPMD

/** {@inheritDoc} */
@Override
Expand All @@ -36,10 +35,9 @@ public int getEngineRank() {
/** {@inheritDoc} */
@Override
public Engine getEngine() {
if (!initialized) {
if (engine == null) {
synchronized (TfLiteEngineProvider.class) {
if (!initialized) {
initialized = true;
if (engine == null) {
engine = TfLiteEngine.newInstance();
}
}
Expand Down

0 comments on commit 4ae2dd1

Please sign in to comment.