From: Dave Abrahams <dave@boostpro.com>
To: emacs-devel@gnu.org
Subject: Re: Multithreading, again and again
Date: Sat, 22 Oct 2011 16:27:02 -0400 [thread overview]
Message-ID: <m2pqhoai21.fsf@pluto.luannocracy.com> (raw)
In-Reply-To: m3sjmkddt5.fsf@fleche.redhat.com
on Sat Oct 22 2011, Tom Tromey <tromey-AT-redhat.com> wrote:
>>> Anyway, I think the single-thread event driven approach is better for
>>> Emacs, like Node.js and other languages do.
>
> Yes, maybe so, but I think there are two reasons concurrency is
> desirable.
>
> One reason is that, in practice, the current event-driven approach
> sometimes falls down. E.g., ERC can time out when something in Emacs
> blocks too long. These are bugs, and worse, won't be immediately fixed
> by concurrency -- but at least could be, in the long run, in a permanent
> way.
>
> The other reason is that concurrency makes it easier to convert code to
> run in the background, without a need for a drastic rewrite. I think
> Gnus is the prime candidate here -- make 'g' work in the background by
> just inserting a (make-thread) at the appropriate juncture. Rewriting
> arbitrary code in the process-filter style is too much work, it seems to
> me.
Exactly my point. The current facilities for doing concurrency are too
hard/unnatural to use for this kind of job. If they were easier, it
might be more practical to offload more work to another process, and
more packages would do it. At least until the cost of sending the
necessary s-expressions between processes becomes prohibitive, this
seems like a natural way to go that avoids making Emacs incredibly
brittle as I expect it would be if we started trying to run
single-threaded code in multiple threads.
--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com
next prev parent reply other threads:[~2011-10-22 20:27 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-28 6:49 Multithreading, again and again Dmitry Antipov
2011-09-28 7:50 ` joakim
2011-09-28 7:55 ` Julien Danjou
2011-09-28 13:37 ` Stefan Monnier
2011-10-17 21:57 ` Juri Linkov
2011-10-18 1:18 ` Stefan Monnier
2011-10-19 15:18 ` Tom Tromey
2011-10-19 20:51 ` Dave Abrahams
2011-10-19 22:01 ` Stefan Monnier
2011-10-19 22:05 ` Dave Abrahams
2011-10-20 23:00 ` John Wiegley
2011-10-20 23:52 ` Dave Abrahams
2011-10-20 14:08 ` Richard Stallman
2011-10-20 1:12 ` SAKURAI Masashi
2011-10-20 17:09 ` Tom Tromey
2011-10-20 18:17 ` Stefan Monnier
2011-10-21 0:46 ` SAKURAI Masashi
2011-10-21 14:18 ` Nix
2011-10-21 14:48 ` Eli Zaretskii
2011-10-22 3:40 ` SAKURAI Masashi
2011-10-22 19:30 ` Tom Tromey
2011-10-22 20:27 ` Dave Abrahams [this message]
2011-10-18 8:24 ` Helmut Eller
2011-09-28 15:55 ` Helmut Eller
2011-10-19 15:14 ` Tom Tromey
2011-10-19 15:20 ` Tom Tromey
2011-10-19 18:30 ` Stefan Monnier
2011-10-19 19:00 ` Tom Tromey
2011-10-19 21:33 ` Stefan Monnier
2011-10-20 17:07 ` Tom Tromey
2011-10-20 18:33 ` Stefan Monnier
2011-10-20 20:54 ` Dave Abrahams
2011-10-20 20:57 ` Tom Tromey
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=m2pqhoai21.fsf@pluto.luannocracy.com \
--to=dave@boostpro.com \
--cc=emacs-devel@gnu.org \
/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.