aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--android/src/Bridge.java1
-rw-r--r--src/Main.cxx9
2 files changed, 10 insertions, 0 deletions
diff --git a/android/src/Bridge.java b/android/src/Bridge.java
index dc487fe30..537343b56 100644
--- a/android/src/Bridge.java
+++ b/android/src/Bridge.java
@@ -26,4 +26,5 @@ import android.content.Context;
*/
public class Bridge {
public static native void run(Context context);
+ public static native void shutdown();
}
diff --git a/src/Main.cxx b/src/Main.cxx
index d8384abfb..e41489688 100644
--- a/src/Main.cxx
+++ b/src/Main.cxx
@@ -696,6 +696,7 @@ int mpd_main(int argc, char *argv[])
#endif
delete instance->event_loop;
delete instance;
+ instance = nullptr;
#ifndef ANDROID
daemonize_finish();
#endif
@@ -727,4 +728,12 @@ Java_org_musicpd_Bridge_run(JNIEnv *env, jclass, jobject _context)
Environment::Deinitialise(env);
}
+gcc_visibility_default
+JNIEXPORT void JNICALL
+Java_org_musicpd_Bridge_shutdown(JNIEnv *, jclass)
+{
+ if (instance != nullptr)
+ instance->event_loop->Break();
+}
+
#endif