diff options
author | Po Lu <luangruo@yahoo.com> | 2024-02-06 17:52:33 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2024-02-06 17:53:23 +0800 |
commit | 42db7292c3e05920bc9f2fa5c3478eb2ba835c5c (patch) | |
tree | 7683bc7a9595f48734b43e5ee6c0eac660fdc39a /configure.ac | |
parent | 0d2b7120783255fbb0f8e98717573c35425f4df6 (diff) | |
download | emacs-42db7292c3e05920bc9f2fa5c3478eb2ba835c5c.tar.gz |
Implement Lisp threading on Android
Much like the NS port, only the main thread receives input from
the user interface, which is fortunately not a major problem for
packages such as lsp-mode that create Lisp threads.
* configure.ac: Enable with_threads under Android.
* src/android.c (android_init_events): Set `main_thread_id' to
the ID of the main thread.
(setEmacsParams): Set new global variable `android_jvm' to the
JVM object, for the purpose of attaching Lisp threads to the
JVM.
(android_select): [THREADS_ENABLED]: If the caller isn't the
main thread, resort to pselect. Don't check query before select
returns.
(android_check_query): Export.
* src/android.h (_ANDROID_H_): Define new macro and update
prototypes.
* src/process.c (android_select_wrapper): New function.
(wait_reading_process_output): If THREADS_ENABLED, call
thread_select through the Android select wrapper.
* src/thread.c (post_acquire_global_lock): Call
android_check_query; replace android_java_env with the incoming
Lisp thread's.
(run_thread): Attach and detach the thread created to the JVM.
(init_threads): Set the main thread's JNI environment object.
* src/thread.h (struct thread_state) <java_env>: New field.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index fa8b04ec685..901980c4d8e 100644 --- a/configure.ac +++ b/configure.ac @@ -1231,6 +1231,7 @@ package will likely install on older systems but crash on startup.]) passthrough="$passthrough --with-mailutils=$with_mailutils" passthrough="$passthrough --with-pop=$with_pop" passthrough="$passthrough --with-harfbuzz=$with_harfbuzz" + passthrough="$passthrough --with-threads=$with_png" # Now pass through some checking options. emacs_val="--enable-check-lisp-object-type=$enable_check_lisp_object_type" @@ -1321,6 +1322,7 @@ if test "$ANDROID" = "yes"; then with_pop=no with_harfbuzz=no with_native_compilation=no + with_threads=no fi with_rsvg=no @@ -1331,7 +1333,6 @@ if test "$ANDROID" = "yes"; then with_gpm=no with_dbus=no with_gsettings=no - with_threads=no with_ns=no # zlib is available in android. |