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
王旭 committed Feb 26, 2024
1 parent 5b4cf0e commit 78f5d2d
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 78f5d2d

Please sign in to comment.