From: HaiJun Zhang <netjune@outlook.com>
To: Eli Zaretskii <eliz@gnu.org>, Ivan Yonchovski <yyoncho@gmail.com>
Cc: 38807@debbugs.gnu.org, michael.albinus@gmx.de
Subject: bug#38807: [Feature request]: Support lisp workers like web workers.
Date: Sun, 29 Mar 2020 10:41:51 +0800 [thread overview]
Message-ID: <PS1PR03MB360622530A12C263E44EEE34B7CA0@PS1PR03MB3606.apcprd03.prod.outlook.com> (raw)
In-Reply-To: <87v9mrkmot.fsf@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1358 bytes --]
在 2020年3月27日 +0800 AM2:15,Ivan Yonchovski <yyoncho@gmail.com>,写道:
>
> Eli Zaretskii writes:
>
> > Since the user waits for this job to finish anyway, why does it help
> > to run some of this processing in a separate thread?
>
> The user might not want to wait for the completion but he/she might want
> to continue to type while the parsing is taking place. The effect is
> that the typing feels slugish. IME with latest native json parsing this
> is no longer the case for lsp-mode.
>
>
> With my limited understanding of emacs internals I see 2 potential
> solutions to allow writing of "lisp workers".
>
> 1. Start second(or multiple) elisp interpreter in the emacs process
> which has thread local copy of all of the global data(buffers, data
> allocation, etc). It may or may not have a gui attached to it. In
> addition to that, introduce primitives for moving elisp datastructure
> from the background thread to the main UI thread and vice versa
> eventually by coping the original structure to avoid bugs.
>
I’d like not expose any global data to them. Even the data allocation can be standalone. Then they pass lisp object by coping as you said.
> 2. Make the functions that create elisp datastructures threadsafe(or
> some sane subset) and expose them to the dynamic modules.
>
> Thanks,
> Ivan
[-- Attachment #2: Type: text/html, Size: 2107 bytes --]
next prev parent reply other threads:[~2020-03-29 2:41 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <aade4dc9-4992-4751-9706-9802389ff732@Spark>
2019-12-30 5:27 ` bug#38807: [Feature request]: Support lisp workers like web workers HaiJun Zhang
2019-12-30 15:23 ` Eli Zaretskii
2019-12-30 15:40 ` Dmitry Gutov
2019-12-30 16:26 ` Eli Zaretskii
2020-01-01 3:20 ` HaiJun Zhang
2020-01-01 3:37 ` Eli Zaretskii
2020-01-01 3:57 ` HaiJun Zhang
[not found] ` <39f1e59e-08db-4862-98db-c31c3bcbab06@Spark>
2020-01-01 4:02 ` HaiJun Zhang
2020-01-01 15:32 ` Eli Zaretskii
2020-01-03 2:05 ` HaiJun Zhang
2020-01-03 13:38 ` arthur miller
2020-01-04 5:59 ` HaiJun Zhang
2020-01-04 8:11 ` HaiJun Zhang
2020-01-04 9:07 ` Eli Zaretskii
2020-01-04 9:10 ` HaiJun Zhang
2020-01-01 3:06 ` HaiJun Zhang
2019-12-30 18:31 ` Michael Albinus
2019-12-30 19:19 ` Eli Zaretskii
2019-12-30 19:22 ` Eli Zaretskii
2019-12-31 0:40 ` HaiJun Zhang
2019-12-31 1:39 ` arthur miller
2020-01-01 3:47 ` HaiJun Zhang
2020-01-01 16:23 ` Eli Zaretskii
2020-01-03 3:45 ` HaiJun Zhang
2020-01-03 6:06 ` Eli Zaretskii
2020-01-04 5:47 ` HaiJun Zhang
2019-12-31 16:35 ` Eli Zaretskii
2020-01-01 2:59 ` HaiJun Zhang
2020-01-01 16:21 ` Eli Zaretskii
2020-01-03 3:18 ` HaiJun Zhang
2020-01-03 6:02 ` Eli Zaretskii
2020-01-04 5:26 ` HaiJun Zhang
2020-01-04 9:00 ` Eli Zaretskii
2020-03-21 2:24 ` HaiJun Zhang
2020-03-21 8:16 ` Eli Zaretskii
2020-03-22 1:12 ` HaiJun Zhang
2020-03-22 14:32 ` Eli Zaretskii
2020-03-24 4:22 ` HaiJun Zhang
2020-03-24 14:40 ` Eli Zaretskii
2020-03-26 13:37 ` HaiJun Zhang
2020-03-26 14:44 ` Eli Zaretskii
2020-03-26 18:14 ` Ivan Yonchovski
2020-03-29 2:41 ` HaiJun Zhang [this message]
2020-03-29 2:12 ` HaiJun Zhang
2020-03-25 16:44 ` Ivan Yonchovski
2020-03-25 17:05 ` Eli Zaretskii
2020-03-25 17:21 ` Ivan Yonchovski
2020-03-26 13:49 ` HaiJun Zhang
2020-01-04 5:55 ` HaiJun Zhang
2020-01-03 3:34 ` HaiJun Zhang
2020-01-03 14:10 ` arthur miller
2020-01-04 6:41 ` HaiJun Zhang
2020-01-01 3:16 ` HaiJun Zhang
2020-01-01 9:14 ` Michael Albinus
2020-01-03 2:52 ` HaiJun Zhang
2020-01-03 5:59 ` Eli Zaretskii
2020-01-04 5:19 ` HaiJun Zhang
2020-01-04 8:59 ` Eli Zaretskii
2020-01-04 9:33 ` HaiJun Zhang
2020-01-04 9:51 ` Eli Zaretskii
2020-01-06 5:08 ` HaiJun Zhang
2020-01-06 16:07 ` Eli Zaretskii
2020-01-01 14:52 ` arthur miller
2020-01-03 1:49 ` HaiJun Zhang
2020-01-03 13:35 ` arthur miller
2020-01-03 14:26 ` Eli Zaretskii
2020-01-03 15:14 ` arthur miller
2020-01-03 14:19 ` arthur miller
2020-01-03 14:39 ` Eli Zaretskii
2022-04-30 12:32 ` Lars Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=PS1PR03MB360622530A12C263E44EEE34B7CA0@PS1PR03MB3606.apcprd03.prod.outlook.com \
--to=netjune@outlook.com \
--cc=38807@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=michael.albinus@gmx.de \
--cc=yyoncho@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.