Skip to content

Commit

Permalink
Fixed bug 3933 - Android, no need of the listener thread
Browse files Browse the repository at this point in the history
Sylvain

A listener thread has been added to know when the native thread would end.
But now, it is more easy to only check that after the main function has returned. It's one thread less.
  • Loading branch information
slouken committed Nov 2, 2017
1 parent 1475e69 commit 522901b
Showing 1 changed file with 6 additions and 20 deletions.
26 changes: 6 additions & 20 deletions android-project/app/src/main/java/org/libsdl/app/SDLActivity.java
Expand Up @@ -371,27 +371,8 @@ public static void handleNativeState() {
// Start up the C app thread and enable sensor input for the first time
// FIXME: Why aren't we enabling sensor input at start?

final Thread sdlThread = new Thread(new SDLMain(), "SDLThread");
mSDLThread = new Thread(new SDLMain(), "SDLThread");
mSurface.enableSensor(Sensor.TYPE_ACCELEROMETER, true);
sdlThread.start();

// Set up a listener thread to catch when the native thread ends
mSDLThread = new Thread(new Runnable() {
@Override
public void run() {
try {
sdlThread.join();
} catch (Exception e) {
// Ignore any exception
} finally {
// Native thread has finished
if (!mExitCalledFromJava) {
handleNativeExit();
}
}
}
}, "SDLThreadListener");

mSDLThread.start();
}

Expand Down Expand Up @@ -1044,6 +1025,11 @@ public void run() {
SDLActivity.nativeRunMain(library, function, arguments);

Log.v("SDL", "Finished main function");

// Native thread has finished, let's finish the Activity
if (!SDLActivity.mExitCalledFromJava) {
SDLActivity.handleNativeExit();
}
}
}

Expand Down

0 comments on commit 522901b

Please sign in to comment.