all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Martin Stjernholm <mast@lysator.liu.se>
Cc: emacs-devel@gnu.org
Subject: Re: Are there plans for a multi-threaded Emacs?
Date: Fri, 05 Dec 2003 14:16:34 +0100	[thread overview]
Message-ID: <5biskv2yml.fsf@lister.roxen.com> (raw)
In-Reply-To: <4n1xrjxydt.fsf@lockgroove.bwh.harvard.edu> (Ted Zlatanov's message of "Fri, 05 Dec 2003 07:06:06 -0500")

Ted Zlatanov <tzz@lifelogs.com> wrote:

> On Fri, 05 Dec 2003, mast@lysator.liu.se wrote:
>
>> Reading or writing are blocking operations, so they would be
>> executed in parallel anyway.
>
> Right, but if the read or write don't need to block the UI thread, why
> should they?

I didn't say they should, rather the opposite. Maybe I wasn't entirely
clear: They would be executed in parallel even with the single lock
approach.

Emacs would handle each event in a different thread (using a thread
pool, probably, since starting threads often aren't cheap) so that the
main thread always remains idle and can respond to new events. Due to
the single lock, there would still be no concurrency problems in code
that isn't adapted.

It's just a matter of reviewing the most important places doing
blocking I/O and turn on unlocked operation there (if it isn't turned
on by default). Note that only the actual system call is run unlocked,
so no surrounding C or elisp code needs to be adapted with locks. What
needs to be done in the review is to add code that rechecks the state
afterwards and fails gracefully if it has changed too much.

A nice thing is that this is opt-in; there's no need to go through and
thread safe everything - even if it only is enabled in a few common
places there's an improvement in responsiveness.

  reply	other threads:[~2003-12-05 13:16 UTC|newest]

Thread overview: 133+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-16 21:46 Are there plans for a multi-threaded Emacs? Frank Schmitt
2003-11-17  0:49 ` Alex Schroeder
2003-11-17  4:06   ` Dhruva Krishnamurthy
2003-11-17  4:29     ` Miles Bader
2003-11-30 16:36       ` Kai Grossjohann
2003-11-30 18:01         ` Vinicius Jose Latorre
2003-11-30 18:39           ` Kai Grossjohann
2003-11-30 18:12         ` Benjamin Riefenstahl
2003-11-30 19:40         ` Nic Ferrier
2003-12-01 16:04         ` Ted Zlatanov
2003-12-02 14:45           ` Ted Lemon
2003-12-02 15:48             ` Per Abrahamsen
2003-12-02 17:18               ` David Kastrup
2003-12-03 12:38                 ` Per Abrahamsen
2003-12-02 17:27               ` Stefan Monnier
2003-12-02 18:53                 ` Simon Josefsson
2003-12-03 13:03                   ` Per Abrahamsen
2003-12-02 17:44             ` Ted Zlatanov
2003-12-03 17:16           ` Richard Stallman
2003-12-03 17:58             ` Ted Zlatanov
2003-12-03 23:38               ` Martin Stjernholm
2003-12-04 13:05                 ` Ted Zlatanov
2003-12-04 14:07                   ` David Kastrup
2003-12-04 14:58                     ` Nic Ferrier
2003-12-04 15:44                       ` David Kastrup
2003-12-04 16:17                     ` Kim F. Storm
2003-12-04 15:58                       ` Nic Ferrier
2003-12-04 16:26                         ` non-blocking sockets (was Re: Are there plans for a multi-threaded Emacs?) Nic Ferrier
2003-12-05 11:35                           ` Kim F. Storm
2003-12-04 19:55                       ` Are there plans for a multi-threaded Emacs? Ted Zlatanov
2003-12-04 20:30                         ` Stefan Monnier
2003-12-04 20:58                           ` Ted Zlatanov
2003-12-04 22:49                             ` Stefan Monnier
2003-12-05 12:17                               ` Ted Zlatanov
2003-12-05 13:06                                 ` Thien-Thi Nguyen
2003-12-05 14:44                                 ` David Kastrup
2003-12-07 23:55                                 ` Stefan Monnier
2003-12-08 16:54                                   ` Ted Zlatanov
2003-12-08 17:09                                     ` David Kastrup
2003-12-08 18:10                                       ` Ted Zlatanov
2003-12-08 22:02                                       ` Martin Stjernholm
2003-12-08 18:25                                     ` What's the problem? (Was: Are there plans for a multi-threaded Emacs?) Luke Gorrie
2003-12-08 19:56                                       ` Ted Zlatanov
2003-12-08 20:56                                         ` David Kastrup
2003-12-08 22:09                                           ` Martin Stjernholm
2003-12-08 21:01                                         ` Stefan Monnier
2003-12-08 19:57                                       ` What's the problem? Simon Josefsson
2003-12-09 23:45                                         ` Juri Linkov
2003-12-10  0:58                                           ` Simon Josefsson
2003-12-10  4:35                                             ` Miles Bader
2003-12-10  5:38                                               ` Simon Josefsson
2003-12-10  5:51                                                 ` Miles Bader
2003-12-10  6:34                                                   ` Simon Josefsson
2003-12-10  7:19                                                     ` Miles Bader
2003-12-11 14:12                                                       ` Stefan Monnier
2003-12-11 23:09                                                         ` Miles Bader
2003-12-12 23:55                                                         ` Richard Stallman
2003-12-13 16:11                                                           ` Eli Zaretskii
2003-12-13 17:29                                                             ` Jan D.
2003-12-13 17:35                                                             ` David Kastrup
2003-12-14  6:17                                                               ` Eli Zaretskii
2003-12-14 11:55                                                                 ` David Kastrup
2003-12-14 14:27                                                                   ` Eli Zaretskii
2003-12-14 10:18                                                             ` Richard Stallman
2003-12-10  8:18                                                     ` Eli Zaretskii
2003-12-11 14:45                                                       ` Richard Stallman
2003-12-10 15:36                                                 ` Ted Zlatanov
2003-12-11  1:46                                                   ` Miles Bader
2003-12-12 23:54                                                     ` Richard Stallman
2003-12-11 18:39                                                 ` Ted Zlatanov
2003-12-11 18:48                                                 ` Ted Zlatanov
2003-12-12  3:27                                                   ` Luke A. Olbrish
2003-12-12  3:57                                                     ` Miles Bader
2003-12-13 15:17                                                       ` Richard Stallman
2003-12-13  4:08                                                 ` Miles Bader
2003-12-13 23:14                                                   ` Richard Stallman
2003-12-14 13:12                                                   ` Emacs kill buffer Camm Maguire
2003-12-09 19:28                                       ` What's the problem? (Was: Are there plans for a multi-threaded Emacs?) Ted Zlatanov
2003-12-09 22:02                                         ` David Kastrup
2003-12-10  0:13                                           ` Stefan Monnier
2003-12-10  1:41                                             ` David Kastrup
2003-12-10  2:49                                               ` Stefan Monnier
2003-12-12  0:44                                                 ` Martin Stjernholm
2003-12-10  0:45                                           ` Martin Stjernholm
2003-12-10  2:55                                             ` Stefan Monnier
2003-12-09 19:32                                       ` Ted Zlatanov
2003-12-09 22:13                                         ` Stefan Monnier
2003-12-10 15:16                                       ` Ted Zlatanov
     [not found]                                         ` <E1AUS6B-0006KH-Hq@fencepost.gnu.org>
     [not found]                                           ` <4ny8tjryy8.fsf@collins.bwh.harvard.edu>
     [not found]                                           ` <4nn09xm68c.fsf@collins.bwh.harvard.edu>
2003-12-13 23:15                                             ` What's the problem? Richard Stallman
2003-12-14  3:21                                               ` Martin Stjernholm
2003-12-05  8:58                             ` Are there plans for a multi-threaded Emacs? Thien-Thi Nguyen
2003-12-05 11:58                               ` Ted Zlatanov
2003-12-05 12:12                               ` Ted Zlatanov
2003-12-05 20:37                                 ` Luke A. Olbrish
2003-12-05 21:45                                   ` Ted Zlatanov
2003-12-08  0:10                                   ` Stefan Monnier
2003-12-08  1:26                                     ` Luke A. Olbrish
2003-12-04 17:22                   ` Martin Stjernholm
2003-12-04 18:01                     ` David Kastrup
2003-12-04 18:31                       ` Martin Stjernholm
2003-12-04 19:26                         ` David Kastrup
2003-12-04 22:05                           ` Martin Stjernholm
2003-12-04 20:18                     ` Ted Zlatanov
2003-12-04 23:00                       ` Martin Stjernholm
2003-12-05 12:06                         ` Ted Zlatanov
2003-12-05 13:16                           ` Martin Stjernholm [this message]
2003-12-05 21:30                             ` Ted Zlatanov
2003-12-05 14:46                           ` David Kastrup
2003-12-05 15:07                             ` Martin Stjernholm
2003-12-05 13:56                       ` Benjamin Riefenstahl
2003-12-05 21:33                         ` non-blocking auto-save (was: Are there plans for a multi-threaded Emacs?) Ted Zlatanov
2003-12-03 20:01             ` Are there plans for a multi-threaded Emacs? Nic Ferrier
2003-12-03 20:29               ` Stefan Monnier
2003-12-03 21:42                 ` Robert J. Chassell
2003-12-04  7:33                   ` Richard Stallman
2003-12-04 15:37                     ` Stefan Monnier
2003-12-04 18:06                       ` Thien-Thi Nguyen
2003-12-04  7:33                 ` Richard Stallman
2003-12-04 13:14                   ` Ted Zlatanov
2003-12-04 15:41                   ` Stefan Monnier
2003-12-06 20:58       ` Kai Grossjohann
2003-12-07  0:15         ` Thien-Thi Nguyen
2003-12-07 14:52           ` Kai Grossjohann
2003-12-07 16:58             ` Thien-Thi Nguyen
2003-12-07  4:16         ` Martin Stjernholm
2003-12-07 14:53           ` Kai Grossjohann
2003-12-07 23:00             ` Martin Stjernholm
2003-11-17 19:31 ` Richard Stallman
2003-11-17 22:53   ` David Masterson
2003-11-18  5:57     ` Miles Bader
2003-11-20 19:19       ` David Masterson
2003-11-22 21:19         ` Richard Stallman
2003-11-18  6:52     ` John Wiegley

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=5biskv2yml.fsf@lister.roxen.com \
    --to=mast@lysator.liu.se \
    --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.