summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/inline.el
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2024-02-06 17:52:33 +0800
committerPo Lu <luangruo@yahoo.com>2024-02-06 17:53:23 +0800
commit42db7292c3e05920bc9f2fa5c3478eb2ba835c5c (patch)
tree7683bc7a9595f48734b43e5ee6c0eac660fdc39a /lisp/emacs-lisp/inline.el
parent0d2b7120783255fbb0f8e98717573c35425f4df6 (diff)
downloademacs-42db7292c3e05920bc9f2fa5c3478eb2ba835c5c.tar.gz
emacs-42db7292c3e05920bc9f2fa5c3478eb2ba835c5c.tar.bz2
emacs-42db7292c3e05920bc9f2fa5c3478eb2ba835c5c.zip
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 'lisp/emacs-lisp/inline.el')
0 files changed, 0 insertions, 0 deletions